A backtracking logic programming monad (http://code.haskell.org/~dolio/)

#4Avoid unnecessary calls of 'msplit'

I grabbed some low hanging optimizations for LogicT. All of them follow the same principal to avoid calls of msplit, which are quite costly (for the LogicT instance).

I have attached my four patches as a tar archive. You may consider including them.