A naïve (brute force) constraint programming DSL inspired by MiniZinc, implemented as a monad in Haskell