Safe Haskell | Safe-Infered |
---|
An equivalence group is a graph-like structure containing type variables and type constants that should all be equivalent. The edges explain why they should be equal.
- data EquivalenceGroup info
- emptyGroup :: EquivalenceGroup info
- insertVertex :: VertexId -> VertexInfo -> EquivalenceGroup info -> EquivalenceGroup info
- insertEdge :: EdgeId -> info -> EquivalenceGroup info -> EquivalenceGroup info
- insertClique :: Clique -> EquivalenceGroup info -> EquivalenceGroup info
- combineGroups :: EquivalenceGroup info -> EquivalenceGroup info -> EquivalenceGroup info
- vertices :: EquivalenceGroup info -> [(VertexId, VertexInfo)]
- constants :: EquivalenceGroup info -> [String]
- edges :: EquivalenceGroup info -> [(EdgeId, info)]
- equalPaths :: Set VertexId -> VertexId -> [VertexId] -> EquivalenceGroup info -> TypeGraphPath info
- removeEdge :: EdgeId -> EquivalenceGroup info -> EquivalenceGroup info
- removeClique :: Clique -> EquivalenceGroup info -> EquivalenceGroup info
- splitGroup :: EquivalenceGroup info -> [EquivalenceGroup info]
- typeOfGroup :: OrderedTypeSynonyms -> EquivalenceGroup info -> Maybe Tp
- consistent :: EquivalenceGroup info -> Bool
- checkGroup :: EquivalenceGroup info -> EquivalenceGroup info
Documentation
data EquivalenceGroup info Source
Show (EquivalenceGroup info) |
emptyGroup :: EquivalenceGroup infoSource
insertVertex :: VertexId -> VertexInfo -> EquivalenceGroup info -> EquivalenceGroup infoSource
insertEdge :: EdgeId -> info -> EquivalenceGroup info -> EquivalenceGroup infoSource
insertClique :: Clique -> EquivalenceGroup info -> EquivalenceGroup infoSource
combineGroups :: EquivalenceGroup info -> EquivalenceGroup info -> EquivalenceGroup infoSource
vertices :: EquivalenceGroup info -> [(VertexId, VertexInfo)]Source
vertices in this equivalence group
constants :: EquivalenceGroup info -> [String]Source
edges :: EquivalenceGroup info -> [(EdgeId, info)]Source
(initial) edges in this equivalence group
equalPaths :: Set VertexId -> VertexId -> [VertexId] -> EquivalenceGroup info -> TypeGraphPath infoSource
removeEdge :: EdgeId -> EquivalenceGroup info -> EquivalenceGroup infoSource
removeClique :: Clique -> EquivalenceGroup info -> EquivalenceGroup infoSource
splitGroup :: EquivalenceGroup info -> [EquivalenceGroup info]Source
typeOfGroup :: OrderedTypeSynonyms -> EquivalenceGroup info -> Maybe TpSource
consistent :: EquivalenceGroup info -> BoolSource
checkGroup :: EquivalenceGroup info -> EquivalenceGroup infoSource