comparison src/monoize.sml @ 388:2e93d18daf44

Monoize eq_[bool|string]
author Adam Chlipala <adamc@hcoop.net>
date Tue, 21 Oct 2008 09:52:52 -0400
parents 7abb28e9d51f
children acaf9d19fbb7
comparison
equal deleted inserted replaced
387:7abb28e9d51f 388:2e93d18daf44
527 ((L'.EAbs ("x", (L'.TFfi ("Basis", "int"), loc), 527 ((L'.EAbs ("x", (L'.TFfi ("Basis", "int"), loc),
528 (L'.TFun ((L'.TFfi ("Basis", "int"), loc), (L'.TFfi ("Basis", "bool"), loc)), loc), 528 (L'.TFun ((L'.TFfi ("Basis", "int"), loc), (L'.TFfi ("Basis", "bool"), loc)), loc),
529 (L'.EAbs ("y", (L'.TFfi ("Basis", "int"), loc), 529 (L'.EAbs ("y", (L'.TFfi ("Basis", "int"), loc),
530 (L'.TFfi ("Basis", "bool"), loc), 530 (L'.TFfi ("Basis", "bool"), loc),
531 (L'.EBinop ("==", (L'.ERel 1, loc), (L'.ERel 0, loc)), loc)), loc)), loc), 531 (L'.EBinop ("==", (L'.ERel 1, loc), (L'.ERel 0, loc)), loc)), loc)), loc),
532 fm)
533 | L.EFfi ("Basis", "eq_bool") =>
534 ((L'.EAbs ("x", (L'.TFfi ("Basis", "bool"), loc),
535 (L'.TFun ((L'.TFfi ("Basis", "bool"), loc), (L'.TFfi ("Basis", "bool"), loc)), loc),
536 (L'.EAbs ("y", (L'.TFfi ("Basis", "bool"), loc),
537 (L'.TFfi ("Basis", "bool"), loc),
538 (L'.EBinop ("==", (L'.ERel 1, loc), (L'.ERel 0, loc)), loc)), loc)), loc),
539 fm)
540 | L.EFfi ("Basis", "eq_string") =>
541 ((L'.EAbs ("x", (L'.TFfi ("Basis", "string"), loc),
542 (L'.TFun ((L'.TFfi ("Basis", "string"), loc), (L'.TFfi ("Basis", "bool"), loc)), loc),
543 (L'.EAbs ("y", (L'.TFfi ("Basis", "string"), loc),
544 (L'.TFfi ("Basis", "bool"), loc),
545 (L'.EBinop ("!strcmp", (L'.ERel 1, loc), (L'.ERel 0, loc)), loc)), loc)), loc),
532 fm) 546 fm)
533 547
534 | L.ECApp ((L.EFfi ("Basis", "show"), _), t) => 548 | L.ECApp ((L.EFfi ("Basis", "show"), _), t) =>
535 let 549 let
536 val t = monoType env t 550 val t = monoType env t