summaryrefslogtreecommitdiff
path: root/src/elab.sml
diff options
context:
space:
mode:
authorGravatar Ziv Scully <ziv@mit.edu>2015-11-12 08:46:51 -0500
committerGravatar Ziv Scully <ziv@mit.edu>2015-11-12 08:46:51 -0500
commit6205c6660874af4147828e2610ca5c2feec834ad (patch)
tree3ae1ba40102d50b2e3c434a993e92d3d21d24987 /src/elab.sml
parent7b14b2f01fd0218c0bbe0a5c4071fff190c91ce1 (diff)
parentdc8c8ed99b79e4f3c3c38f131dd7563148524591 (diff)
Merge.
Diffstat (limited to 'src/elab.sml')
-rw-r--r--src/elab.sml8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/elab.sml b/src/elab.sml
index 249531f1..209d3307 100644
--- a/src/elab.sml
+++ b/src/elab.sml
@@ -138,13 +138,19 @@ and edecl' =
withtype exp = exp' located
and edecl = edecl' located
+(* We have to be careful about crawling automatically generated signatures recursively,
+ * importing all type-class instances that we find.
+ * The reason is that selfification will add signatures of anonymous structures,
+ * and it's counterintuitive for instances to escape anonymous structures! *)
+datatype import_mode = Import | Skip
+
datatype sgn_item' =
SgiConAbs of string * int * kind
| SgiCon of string * int * kind * con
| SgiDatatype of (string * int * string list * (string * int * con option) list) list
| SgiDatatypeImp of string * int * int * string list * string * string list * (string * int * con option) list
| SgiVal of string * int * con
- | SgiStr of string * int * sgn
+ | SgiStr of import_mode * string * int * sgn
| SgiSgn of string * int * sgn
| SgiConstraint of con * con
| SgiClassAbs of string * int * kind