The goal of having a human-written interface is to give the programmer the
opportunity to say (and document) just what the interface of a module is.  I
think of this as analogous to specifying a type signature for a function...
often illuminating, but should not be obligatory.  Especially when
writing abstract data types I'd like to be able to write a signature
for a module, but currently I have no way to do so that is (a) part of the
language and hence in some standard form, and (b) checked.

Machine written/read ones are fine for conveying info between compilation
units, but they don't need to be specified as part of the language.  Current
Haskell 1.2 interface files sit uneasily between the two worlds.

Simon

| From: [EMAIL PROTECTED] (F. Warren Burton)
| Date: Tue, 26 Sep 1995 16:22:34 -0700
| Simon and John,
| 
| In practice, when do you want an interface other than the automatically
| generated one?  In practice, except in the case of mutual recursive
| modules, do you ever need to modify an interface in order to get a program
| to do what you want?  In theory, to what extent can the information in an
| interface file differ from what a compiler would generate?  Do you look at
| an interface file while writing a module that uses the interface?
| 
| I have only recently realized that I am not really clear on the purpose of
| interface files!  Am I the only one on the committee who is a bit confused?
| 
| Warren
| 
| 


Reply via email to