I think you need to rethink the solution: Haskell is not a logic programming language.
Yes of
course, but I suspect that the problems are due to issues of scope and modularity rather than problems of a logical nature
The main equation for meets does give the appropriate results.
Pat