Jonathan S. Shapiro wrote:
I'm not entirely sure how to answer this, except to say that SML got
this dreadfully wrong. A type that is an internal part of an
implementation definitely should NOT be exported.
My sense is that if I export a symbol, I need to be exporting the types
associated with its signature. If the symbol is a function, this is the
argument and return types, but not anything that it has closed over.
I should have first asked the following question. When I write
(export t) ;t is some type
Does the recipient get the abstract type or the real type?
That is,
(module list
(defunion (lst 'a) Nil (Cons 'a))
(append ...)
(export lst append)
)
Can the importer of this module also do a Cons independent of the append
interface?
Also, if I have
(module list
(defunion (lst 'a) Nil (Cons 'a))
(append ...)
(define alst Nil)
(export alst) )
Does the recipient also receive the type lst automatically?
Swaroop.
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev