Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell98 |
This module contains the types for representing dependency graphs between kvars and constraints.
Synopsis
- data CVertex
- type CEdge = (CVertex, CVertex)
- isRealEdge :: CEdge -> Bool
- newtype KVGraph = KVGraph {}
- type Comps a = [[a]]
- type KVComps = Comps CVertex
- writeGraph :: FilePath -> KVGraph -> IO ()
- writeEdges :: FilePath -> [CEdge] -> IO ()
- type SubcId = Integer
- type KVRead = HashMap KVar [SubcId]
- type DepEdge = (SubcId, SubcId, [SubcId])
- data Slice = Slice {}
- data CGraph = CGraph {}
- type CMap a = HashMap SubcId a
- lookupCMap :: (?callStack :: CallStack) => CMap a -> SubcId -> a
- data Rank = Rank {}
- data CDeps = CDs {}
- data SolverInfo a b = SI {}
Graphs
KVar !KVar | real kvar vertex |
DKVar !KVar | dummy to ensure each kvar has a successor |
EBind !Symbol | existentially bound "ghost paramter" to solve for |
Cstr !Integer | constraint-id which creates a dependency |
Instances
isRealEdge :: CEdge -> Bool Source #
Components
Printing
Constraints
type DepEdge = (SubcId, SubcId, [SubcId]) Source #
(Constraint id, vertex key, edges to other constraints)
The vertex key is always equal to the constraint id. The redundancy
is imposed by how containers:Data.Graph
requires graphs to be created.
Slice of relevant constraints
Constraint Dependency Graphs
CGraph | |
|
Alias for Constraint Maps
lookupCMap :: (?callStack :: CallStack) => CMap a -> SubcId -> a Source #
CMap API -------------------------------------------------------------
Ranks
Ranks ---------------------------------------------------------------------
Constraint Dependencies
Constraint Dependencies ---------------------------------------------------
Solver Info
data SolverInfo a b Source #
SolverInfo
contains all the stuff needed to produce a result, and is the
the essential ingredient of the state needed by solve_