summaryrefslogtreecommitdiff
path: root/ghc/docs/NOTES.interface
diff options
context:
space:
mode:
authorpartain <unknown>1996-07-25 21:33:42 +0000
committerpartain <unknown>1996-07-25 21:33:42 +0000
commit5eb1c77c795f92ed0f4c8023847e9d4be1a4fd0d (patch)
treeadb07110e00f00b2b2ef6365e16d5f58b260ce3c /ghc/docs/NOTES.interface
parentf7ecf7234c224489be8a5e63fced903b655d92ee (diff)
downloadhaskell-5eb1c77c795f92ed0f4c8023847e9d4be1a4fd0d.tar.gz
[project @ 1996-07-25 20:43:49 by partain]
Bulk of final changes for 2.01
Diffstat (limited to 'ghc/docs/NOTES.interface')
-rw-r--r--ghc/docs/NOTES.interface54
1 files changed, 0 insertions, 54 deletions
diff --git a/ghc/docs/NOTES.interface b/ghc/docs/NOTES.interface
deleted file mode 100644
index dfe2d61b83..0000000000
--- a/ghc/docs/NOTES.interface
+++ /dev/null
@@ -1,54 +0,0 @@
-
-What gets done when printing an interface
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Basically, we do three things:
-
-A) Create the import decls. For classes and values, this is easy. We
- filter the CE and GVE for all exported objects that were not declared
- in the module. For types, this is a pain because we may have something
- which is exported and which refers to a type that isn't. For example,
- the interface
- interface C where
- ...
- f :: A -> B
- may export B, but A may be expected to come from somewhere else when
- C is imported. So, we have to go through all envs which have ranges that
- may refer to a type. This means the TCE, CE (the class op types),
- GIE_inst (instance types) and GVE (types in the sigs). AND we have to
- filter out prelude defined types from the resulting list.
-
- Finally, we print the import decls, using the conventions that the renamer
- expects (no explicit constructors/ class ops, etc.)
-
-B) Print the fixity decls for whatever constructors/ functions are exported
-
-C) Print the rest of the decls needed.
- 1) Type decls - contents of TCE with export flags
- 2) Class decls - contents of CE with export flags
- 3) Instance decls - contents of GIE_inst that refer to either
- an exported type or an exported class
- (filter then print)
- 4) Value decls - contents of GVE which are not constructors and
- which have an export flag
-
-Issues
-~~~~~~
-
-Type synonyms - to expand or not? Let's not, and complain if a type sig. is
- used but not defined
-
-Canonical form for interfaces - to get rid of perl post-processing!
-
-Deriving for an abstract data type - shall we worry about this now or later?
-
-Printing issues
-~~~~~~~~~~~~~~~
-
-It's convenient to make all ranges of environments know how to print themselves
-(they do now) and decide whether to do so by looking at the export flag
-in their Name fields. Presumably the constructors of a data type that is
-exported abstractly will decide not to print themselves, so no special code
-is needed.
-
-