Mercurial > urweb
comparison src/core_util.sml @ 796:6271f0e3c272
Fix a nasty binding bug in CoreUtil
author | Adam Chlipala <adamc@hcoop.net> |
---|---|
date | Thu, 14 May 2009 09:11:58 -0400 |
parents | 8688e01ae469 |
children | ef6de4075dc1 |
comparison
equal
deleted
inserted
replaced
795:b87e71e45536 | 796:6271f0e3c272 |
---|---|
770 case pc of | 770 case pc of |
771 PConVar _ => S.return2 pc | 771 PConVar _ => S.return2 pc |
772 | PConFfi {mod = m, datatyp, params, con, arg, kind} => | 772 | PConFfi {mod = m, datatyp, params, con, arg, kind} => |
773 S.map2 ((case arg of | 773 S.map2 ((case arg of |
774 NONE => S.return2 NONE | 774 NONE => S.return2 NONE |
775 | SOME c => S.map2 (mfc ctx c, SOME)), | 775 | SOME c => |
776 let | |
777 val k = (KType, ErrorMsg.dummySpan) | |
778 val ctx' = foldl (fn (x, ctx) => bind (ctx, RelC (x, k))) ctx params | |
779 in | |
780 S.map2 (mfc ctx' c, SOME) | |
781 end), | |
776 fn arg' => | 782 fn arg' => |
777 PConFfi {mod = m, datatyp = datatyp, params = params, | 783 PConFfi {mod = m, datatyp = datatyp, params = params, |
778 con = con, arg = arg', kind = kind}) | 784 con = con, arg = arg', kind = kind}) |
779 in | 785 in |
780 mfe | 786 mfe |