As Phil Wadler alluded to this subject in his message today, I thought
I might as well count up what's in the .hi files for the Glasgow
Haskell compiler (written in Haskell, as you know).

Bear in mind: We've tried [none too successfully] to produce
"self-contained interfaces"; i.e., we export enough extra stuff into
an interface for module Foo so that if another module says "import
Foo", then it doesn't have to import anything else in order for the
Foo interface to "make sense".  This policy leads to bigger .hi files
and shorter lists of import declarations.

At the moment I counted, the compiler had 213 modules/interfaces.
These included:

       23 class declarations

      479 type-synonym decls

    1,126 data decls (of those, all but 197 were "abstract")

    1,772 instance declarations

    2,511 value declarations
    =====
    5,911 entities declared, in total

There were also 1,676 import declarations in the interfaces, for
original-namification purposes.

Will

Reply via email to