haskell Constraint manipulation ekmett/constraints