diff options
author | 2015-11-12 08:46:51 -0500 | |
---|---|---|
committer | 2015-11-12 08:46:51 -0500 | |
commit | 6205c6660874af4147828e2610ca5c2feec834ad (patch) | |
tree | 3ae1ba40102d50b2e3c434a993e92d3d21d24987 /src/elab.sml | |
parent | 7b14b2f01fd0218c0bbe0a5c4071fff190c91ce1 (diff) | |
parent | dc8c8ed99b79e4f3c3c38f131dd7563148524591 (diff) |
Merge.
Diffstat (limited to 'src/elab.sml')
-rw-r--r-- | src/elab.sml | 8 |
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 |