diff options
author | 2008-06-12 17:41:32 -0400 | |
---|---|---|
committer | 2008-06-12 17:41:32 -0400 | |
commit | 4bb0bbc1920b5474619cb00e278590e029cdb12a (patch) | |
tree | 0a6e5046476ae987bd823b4c03e666495559fbbf /src | |
parent | ed9e3cb10161dde86a87894155f2f74c60d28c4a (diff) |
Matching structures in signatures
Diffstat (limited to 'src')
-rw-r--r-- | src/elaborate.sml | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/elaborate.sml b/src/elaborate.sml index c61a84c1..b232a980 100644 --- a/src/elaborate.sml +++ b/src/elaborate.sml @@ -1085,7 +1085,14 @@ fun subSgn env (all1 as (sgn1, _)) (all2 as (sgn2, loc2)) = end | _ => NONE) - | _ => raise Fail "Not ready for more sig matching" + | L'.SgiStr (x, n2, sgn2) => + seek (fn sgi1All as (sgi1, _) => + case sgi1 of + L'.SgiStr (x, n1, sgn1) => + (subSgn env sgn1 sgn2; + SOME env) + | _ => NONE) + (* Add type equations between structures here some day. *) end in ignore (foldl folder env sgis2) |