comparison src/elaborate.sml @ 1359:e525ad571e15

Recursive record unification errors, for more detail
author Adam Chlipala <adam@chlipala.net>
date Thu, 23 Dec 2010 11:23:31 -0500
parents 74d35d9a5d16
children dd99e1702432
comparison
equal deleted inserted replaced
1358:32c8a3509369 1359:e525ad571e15
905 NONE => findPointwise fs1 905 NONE => findPointwise fs1
906 | SOME (_, c2) => 906 | SOME (_, c2) =>
907 if consEq env loc (c1, c2) then 907 if consEq env loc (c1, c2) then
908 findPointwise fs1 908 findPointwise fs1
909 else 909 else
910 SOME (nm1, c1, c2) 910 SOME (nm1, c1, c2, (unifyCons env loc c1 c2; NONE) handle CUnify (_, _, err) => SOME err)
911 in 911 in
912 raise CUnify' (CRecordFailure (unsummarize s1, unsummarize s2, findPointwise (#fields s1))) 912 raise CUnify' (CRecordFailure (unsummarize s1, unsummarize s2, findPointwise (#fields s1)))
913 end 913 end
914 914
915 fun default () = if !mayDelay then 915 fun default () = if !mayDelay then