comparison src/core_util.sml @ 2241:2b1af5dc6dee

Merge.
author Ziv Scully <ziv@mit.edu>
date Sun, 19 Jul 2015 19:05:16 -0700
parents af3f5b58aed2
children
comparison
equal deleted inserted replaced
2240:88cc0f44c940 2241:2b1af5dc6dee
201 fn () => compare (s1, s2)) 201 fn () => compare (s1, s2))
202 | (CConcat _, _) => LESS 202 | (CConcat _, _) => LESS
203 | (_, CConcat _) => GREATER 203 | (_, CConcat _) => GREATER
204 204
205 | (CMap (d1, r1), CMap (d2, r2)) => 205 | (CMap (d1, r1), CMap (d2, r2)) =>
206 join (Kind.compare (d1, r2), 206 join (Kind.compare (d1, d2),
207 fn () => Kind.compare (r1, r2)) 207 fn () => Kind.compare (r1, r2))
208 | (CMap _, _) => LESS 208 | (CMap _, _) => LESS
209 | (_, CMap _) => GREATER 209 | (_, CMap _) => GREATER
210 210
211 | (CUnit, CUnit) => EQUAL 211 | (CUnit, CUnit) => EQUAL
605 case e of 605 case e of
606 EPrim _ => S.return2 eAll 606 EPrim _ => S.return2 eAll
607 | ERel _ => S.return2 eAll 607 | ERel _ => S.return2 eAll
608 | ENamed _ => S.return2 eAll 608 | ENamed _ => S.return2 eAll
609 | ECon (dk, pc, cs, NONE) => 609 | ECon (dk, pc, cs, NONE) =>
610 S.map2 (ListUtil.mapfold (mfc ctx) cs, 610 S.bind2 (mfpc ctx pc,
611 fn cs' => 611 fn pc' =>
612 (ECon (dk, pc, cs', NONE), loc))
613 | ECon (dk, n, cs, SOME e) =>
614 S.bind2 (mfe ctx e,
615 fn e' =>
616 S.map2 (ListUtil.mapfold (mfc ctx) cs, 612 S.map2 (ListUtil.mapfold (mfc ctx) cs,
617 fn cs' => 613 fn cs' =>
618 (ECon (dk, n, cs', SOME e'), loc))) 614 (ECon (dk, pc', cs', NONE), loc)))
615 | ECon (dk, pc, cs, SOME e) =>
616 S.bind2 (mfpc ctx pc,
617 fn pc' =>
618 S.bind2 (mfe ctx e,
619 fn e' =>
620 S.map2 (ListUtil.mapfold (mfc ctx) cs,
621 fn cs' =>
622 (ECon (dk, pc', cs', SOME e'), loc))))
619 | EFfi _ => S.return2 eAll 623 | EFfi _ => S.return2 eAll
620 | EFfiApp (m, x, es) => 624 | EFfiApp (m, x, es) =>
621 S.map2 (ListUtil.mapfold (mfet ctx) es, 625 S.map2 (ListUtil.mapfold (mfet ctx) es,
622 fn es' => 626 fn es' =>
623 (EFfiApp (m, x, es'), loc)) 627 (EFfiApp (m, x, es'), loc))