Propositional Logic in Haskell