Constraint Programming over Finite Domain in Haskell