using ghc with make

Simon Marlow simonmarhaskell at
Thu Apr 20 03:54:59 EDT 2006

Bulat Ziganshin wrote:

> 1) lazyGet/lazyPut. it's no problem to copy your implementation but i
> still don't understand how lazyGet should work - it share the same
> buffer pointer as one used in `get`. so `get` and consuming structure
> returned by lazyGet should interfere

lazyGet can only be used to read something that was written with 
lazyPut.  lazyPut writes the offset of the end of the serialised data at 
the beginning, so that lazyGet can skip over it, and subsequent gets 
start from the next item in the stream.

> btw, btw. Haskell type classes has many non-obvious peculiarities. for
> example, it was not easy for to understand that Haskell resolve all
> overloading at compile time but finds what overloaded function to call
> at runtime (well, i can't even describe this behavior). can you
> recommend me paper to read about using Haskell class system?

I recommend compiling a few programs and investigating the Core with 
-ddump-ds and -ddump-simpl to find out what GHC really does.

Overloading isn't all "resolved at compile time", most of the time 
dictionaries of functions are passed around representing class predicates.


More information about the Glasgow-haskell-users mailing list