comparison src/monoize.sml @ 422:0ce90d4d9ae7

Crud2 demo
author Adam Chlipala <adamc@hcoop.net>
date Thu, 23 Oct 2008 18:45:10 -0400
parents e0e9e9eca1cb
children 024478c34f4d
comparison
equal deleted inserted replaced
421:0767d7ad0c3a 422:0ce90d4d9ae7
595 (L'.TFun ((L'.TFfi ("Basis", "string"), loc), (L'.TFfi ("Basis", "bool"), loc)), loc), 595 (L'.TFun ((L'.TFfi ("Basis", "string"), loc), (L'.TFfi ("Basis", "bool"), loc)), loc),
596 (L'.EAbs ("y", (L'.TFfi ("Basis", "string"), loc), 596 (L'.EAbs ("y", (L'.TFfi ("Basis", "string"), loc),
597 (L'.TFfi ("Basis", "bool"), loc), 597 (L'.TFfi ("Basis", "bool"), loc),
598 (L'.EBinop ("!strcmp", (L'.ERel 1, loc), (L'.ERel 0, loc)), loc)), loc)), loc), 598 (L'.EBinop ("!strcmp", (L'.ERel 1, loc), (L'.ERel 0, loc)), loc)), loc)), loc),
599 fm) 599 fm)
600 | L.ECApp ((L.EFfi ("Basis", "mkEq"), _), t) =>
601 let
602 val t = monoType env t
603 val b = (L'.TFfi ("Basis", "bool"), loc)
604 val dom = (L'.TFun (t, (L'.TFun (t, b), loc)), loc)
605 in
606 ((L'.EAbs ("f", dom, dom,
607 (L'.ERel 0, loc)), loc), fm)
608 end
600 609
601 | L.ECApp ((L.EFfi ("Basis", "zero"), _), t) => 610 | L.ECApp ((L.EFfi ("Basis", "zero"), _), t) =>
602 let 611 let
603 val t = monoType env t 612 val t = monoType env t
604 in 613 in