Safe Haskell | None |
---|---|
Language | Haskell2010 |
IR.Constraint.Solve
Synopsis
- run :: Constraint -> TC ()
- emptyState :: State
- type Env = Map Identifier Variable
- type Pools = IOVector [Variable]
- data State = State {}
- solve :: Env -> Int -> Pools -> State -> Constraint -> TC State
- isGeneric :: Variable -> TC ()
- addError :: State -> Error -> State
- occurs :: State -> (Identifier, Variable) -> TC State
- generalize :: Mark -> Mark -> Int -> Pools -> TC ()
- poolToRankTable :: Mark -> Int -> [Variable] -> TC (Vector [Variable])
- adjustRank :: Mark -> Mark -> Int -> Variable -> TC Int
- adjustRankContent :: Mark -> Mark -> Int -> Content -> TC Int
- introduce :: Int -> Pools -> [Variable] -> TC ()
- typeToVariable :: Int -> Pools -> Type -> TC Variable
- typeToVar :: Int -> Pools -> Map TVarId Variable -> Type -> TC Variable
- register :: Int -> Pools -> Content -> TC Variable
- schemeToVariable :: Int -> Pools -> Map TVarId () -> Type -> TC Variable
- schemeToVar :: Int -> Pools -> Map TVarId Variable -> Type -> TC Variable
- makeCopy :: Int -> Pools -> Variable -> TC Variable
- makeCopyHelp :: Int -> Pools -> Variable -> TC Variable
- restore :: Variable -> TC ()
- restoreContent :: Content -> TC ()
- traverseFlatType :: (Variable -> TC Variable) -> FlatType -> TC FlatType
Documentation
run :: Constraint -> TC () Source #
RUN SOLVER
emptyState :: State Source #
generalize :: Mark -> Mark -> Int -> Pools -> TC () Source #
GENERALIZE
Every variable has rank less than or equal to the maxRank of the pool. This sorts variables into the young and old pools accordingly.
restoreContent :: Content -> TC () Source #