Typed logic programming embedded in Haskell.