Copyright | (c) 2016-2024 Rudy Matela |
---|---|
License | 3-Clause BSD (see the file LICENSE) |
Maintainer | Rudy Matela <rudy@matela.com.br> |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
This module is part of Speculate.
This module reexports Express
along with some extra utilities.
Synopsis
- module Data.Express
- module Data.Express.Utils.Typeable
- compareLexicographicallyBy :: (Expr -> Expr -> Ordering) -> Expr -> Expr -> Ordering
- compareComplexityThenIndex :: [Expr] -> Expr -> Expr -> Ordering
- isConstantNamed :: Expr -> String -> Bool
- unrepeatedVars :: Expr -> Bool
- isAssignment :: Expr -> Bool
- type Binds = [(Expr, Expr)]
- unify :: Expr -> Expr -> Maybe Expr
- unification :: Expr -> Expr -> Maybe [(Expr, Expr)]
- unificationC :: [Expr] -> Expr -> Expr -> Maybe [(Expr, Expr)]
- isCanonInstanceOf :: Expr -> Expr -> Bool
- hasCanonInstanceOf :: Expr -> Expr -> Bool
- commutations :: [Expr] -> Expr -> [Expr]
Documentation
module Data.Express
module Data.Express.Utils.Typeable
Order
compareLexicographicallyBy :: (Expr -> Expr -> Ordering) -> Expr -> Expr -> Ordering Source #
Lexicographical comparison of Expr
s
where variables < constants < applications and
constants are disambiguated by the given function.
compareComplexityThenIndex :: [Expr] -> Expr -> Expr -> Ordering Source #
Comparison of Expr
s:
compareComplexity
fromExpress
lexicompareBy
index of the given list
Properties
unrepeatedVars :: Expr -> Bool Source #
isAssignment :: Expr -> Bool Source #