A small SMT solver in Haskell