I just uploaded a new package [1] for generalized booleans, which provides type classes with generalizations of boolean values & operations, if-then-else, Eq and Ord. These values & types come up for me with every new deep DSEL, and I think they do for others as well. The design space has some tricky trade-offs, and I'm not positive I've found the optimum yet. Users & comments are very welcome. Please direct discussion to the haskell-cafe list (rather than haskell list).
[1]: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Boolean
- Conal