using ghc with make
simonmarhaskell at gmail.com
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