The aim of this project is to model the generic aspects of Constraint Programming in Haskell. Of particular interest is the solver-independent framework for composable search strategies. This project involves Peter Stuckey and Phil Wadler.
This paper presents FD-MCP, a finite domain modeling language on top of the Monadic Constraint Programming framework for Haskell. FD-MCP leverages Haskell's rich static type system and powerful abstraction mechanisms for implementing syntactic sugar, model transformations and compilation to solver backends. Two backends are provided: a basic Haskell solver and a Gecode code generator. Our benchmarks establish that FD-MCP models are much more concise than hand-coded Gecode programs, more so when using disjunction, without sacrificing performance..
We report on our Constraint Logic Programing framework for Haskell. The core concept of the framework is the search tree, which is explored by primitive search strategies. A primitive search strategy is defined by a queue datatype and can be extended by a search transformer. Moreover, multiple search transformers can be composed to obtain quite complex behavior. Note that our framework is generic in the underlying constraint solver, and in particular works for both backtracking and copying-based solvers.