Safe Haskell | Safe |
---|---|
Language | Haskell98 |
- class Monad solver => Solver solver where
- type Constraint solver :: *
- type Label solver :: *
- add :: Solver solver => Constraint solver -> solver Bool
- run :: Solver solver => solver a -> a
- mark :: Solver solver => solver (Label solver)
- markn :: Solver solver => Int -> solver (Label solver)
- goto :: Solver solver => Label solver -> solver ()
- class Solver solver => Term solver term where
- type Help solver term
- newvar :: Term solver term => solver term
- help :: Term solver term => solver () -> term -> Help solver term
Documentation
class Monad solver => Solver solver where Source #
add :: Constraint solver -> solver Bool Source #
add a constraint to the current state, and return whether the resulting state is consistent
run a computation
mark :: solver (Label solver) Source #
mark the current state, and return its label
markn :: Int -> solver (Label solver) Source #
mark the current state as discontinued, yet return a label that is usable n times
goto :: Label solver -> solver () Source #
go to the state with given label
add :: Solver solver => Constraint solver -> solver Bool Source #
add a constraint to the current state, and return whether the resulting state is consistent
markn :: Solver solver => Int -> solver (Label solver) Source #
mark the current state as discontinued, yet return a label that is usable n times