Safe Haskell | None |
---|
- data Constraint
- = ConEqual [Name]
- | ConFiltered Name
- type ConstraintMap = Map Name Constraint
- type EquivClass = [Set Name]
- canonName :: EquivClass -> Name -> Name
- checkBindConstraints :: [(Name, ExpF)] -> LogFailures (ConstraintMap, EquivClass)
- getMaxSize :: ConstraintMap -> EquivClass -> [Name] -> Name -> Name
Documentation
data Constraint Source
Constraint information An equal can have multiple - eg map3 Filtered only has its source input
type ConstraintMap = Map Name ConstraintSource
type EquivClass = [Set Name]Source
canonName :: EquivClass -> Name -> NameSource
Get canonical name for given equivalence class Return original if there is none (for example, a filter with no maps applied would have none since equiv classes are only built from maps)
checkBindConstraints :: [(Name, ExpF)] -> LogFailures (ConstraintMap, EquivClass)Source
Check constraints for a single function body's bindings. The bindings must be in a-normal form.
getMaxSize :: ConstraintMap -> EquivClass -> [Name] -> Name -> NameSource