An inductive form set constraint solver in Haskell