# Documentation

class Monad solver => Solver solver whereSource

add :: Constraint solver -> solver BoolSource

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

Solver DummySolver | |

Solver OvertonFD | |

Solver CodegenGecodeSolver | |

FDSolver s => Solver (FDInstance s) | |

(Constraint s ~ GecodeConstraint s, GecodeSolver s) => Solver (GecodeWrappedSolver s) | |

(Monoid w, Solver s) => Solver (WriterT w s) | WriterT decoration of a solver useful for producing statistics during solving |

class Solver solver => Term solver term whereSource

produce a fresh constraint variable

ModelTermType t => Term DummySolver t | |

Term OvertonFD FDVar | |

Term CodegenGecodeSolver BoolVar | |

Term CodegenGecodeSolver IntVar | |

FDSolver s => Term (FDInstance s) ModelCol | |

FDSolver s => Term (FDInstance s) ModelBool | |

FDSolver s => Term (FDInstance s) ModelInt | |

(Constraint s ~ GecodeConstraint s, GecodeSolver s, Term s t) => Term (GecodeWrappedSolver s) t | |

(Monoid w, Term s t) => Term (WriterT w s) t |