diff options
author | Adam Chlipala <adam@chlipala.net> | 2011-11-02 08:39:01 -0400 |
---|---|---|
committer | Adam Chlipala <adam@chlipala.net> | 2011-11-02 08:39:01 -0400 |
commit | 1d8e2d97441ed865db87013d751b18439786de29 (patch) | |
tree | 01c6d3cb57e0d0cb94ee25567dc644af38a940a0 | |
parent | 210946aa1857eebde9b16a782cf293a83d2be008 (diff) |
Handle application in decompileCon
-rw-r--r-- | src/elaborate.sml | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/elaborate.sml b/src/elaborate.sml index 9051299a..93c15ed2 100644 --- a/src/elaborate.sml +++ b/src/elaborate.sml @@ -3441,7 +3441,12 @@ and wildifyStr env (str, sgn) = | L'.CUnit => SOME (L.CUnit, loc) | L'.CUnif (nl, _, _, _, ref (SOME c)) => decompileCon env (E.mliftConInCon nl c) - | _ => NONE + | L'.CApp (f, x) => + (case (decompileCon env f, decompileCon env x) of + (SOME f, SOME x) => SOME (L.CApp (f, x), loc) + | _ => NONE) + + | c => (Print.preface ("WTF?", p_con env (c, loc)); NONE) fun buildNeeded env sgis = #1 (foldl (fn ((sgi, loc), (nd, env')) => @@ -3507,7 +3512,9 @@ and wildifyStr env (str, sgn) = case (decompileCon env' c1, decompileCon env' c2) of (SOME c1, SOME c2) => SOME (L.DConstraint (c1, c2), loc) - | _ => NONE) (nconstraints nd) + | _ => (Print.prefaces "BAD" [("c1", p_con env' c1), + ("c2", p_con env' c2)]; + NONE)) (nconstraints nd) val ds' = case SS.listItems (nvals nd) of |