Implementation of (most of) the Haskell prelude in Prolog

Implementation of most of the Haskell prelude in Prolog.  String and IO are left out as I don't understand them yet; errors also because I don't really know what to do with them.

Also asTypeOf because it doesn't have an equivalent I know of yet in Prolog, and I haven't yet worked out $! either...

I'm thinking of changing the API of '$'/3 to '$'/2, where the return parameter is the last element of the second parameter instead of its own parameter.  While rewriting the later sections from the custom call for each into my '$' notation, I kept finding that intuitively I wanted to put the return as a parameter still.  Not yet decided there.