summaryrefslogtreecommitdiff
path: root/src/elab_env.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2008-08-16 16:30:07 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2008-08-16 16:30:07 -0400
commit2c64a768d33ed6cbead84259a5cefae7d9c6f4e1 (patch)
tree32a4cb02d9f51c2fd821d54e5052030c0968aefe /src/elab_env.sml
parent402112549b47a76033fa575dc9f5e620ea214cc1 (diff)
Fun with type classes and modules
Diffstat (limited to 'src/elab_env.sml')
-rw-r--r--src/elab_env.sml7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/elab_env.sml b/src/elab_env.sml
index 1b25749f..392fcf02 100644
--- a/src/elab_env.sml
+++ b/src/elab_env.sml
@@ -713,7 +713,11 @@ fun enrichClasses env classes (m1, ms) sgn =
fun default () = (classes, newClasses, sgiSeek (#1 sgi, fmap))
in
case #1 sgi of
- SgiClassAbs xn => found xn
+ SgiStr (x, _, sgn) =>
+ (enrichClasses env classes (m1, ms @ [x]) sgn,
+ newClasses,
+ sgiSeek (#1 sgi, fmap))
+ | SgiClassAbs xn => found xn
| SgiClass (x, n, _) => found (x, n)
| SgiVal (x, n, (CApp ((CNamed f, _), a), _)) =>
(case IM.find (newClasses, f) of
@@ -735,6 +739,7 @@ fun enrichClasses env classes (m1, ms) sgn =
newClasses,
fmap)
end)
+ | SgiVal _ => default ()
| _ => default ()
end)
(classes, IM.empty, (IM.empty, IM.empty, IM.empty)) sgis