> > Module cycles have supported in nhc98 since forever, by simply
> > providing a bootstrapping .hi file.
> 
> yay! Is the format of this .hi file documented somewhere?

It simply contains type signatures for exported functions, together with
datatype, class, and instance decls.  A signature for function 'foo' is
preceded by a {-# NEED foo #-} pragma; a datatype or class decl is
preceded by a similar pragma listing precisely the exported
constructors, fieldnames, or methods.

Sections of the file are introduced by
    interface ! Foo.Bar
or
    interface Foo.Bar
The former indicates re-exports from a different module.  The latter
indicates entities (types or classes only) that are required from a
different module in order to make sense of the type signatures exported
here, but the external entities are _not_ re-exported.

Regards,
    Malcolm

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to