comparison src/urweb.grm @ 299:5f6a60b7ab00

Elaborated 'insert'
author Adam Chlipala <adamc@hcoop.net>
date Sun, 07 Sep 2008 13:47:10 -0400
parents bacd0ba869e1
children cde1ec47f3af
comparison
equal deleted inserted replaced
298:43f35291433d 299:5f6a60b7ab00
604 val loc = s (SYMBOLleft, eexp2right) 604 val loc = s (SYMBOLleft, eexp2right)
605 val e = (EVar (["Basis"], "bind"), loc) 605 val e = (EVar (["Basis"], "bind"), loc)
606 val e = (EApp (e, eexp1), loc) 606 val e = (EApp (e, eexp1), loc)
607 in 607 in
608 (EApp (e, (EAbs (SYMBOL, NONE, eexp2), loc)), loc) 608 (EApp (e, (EAbs (SYMBOL, NONE, eexp2), loc)), loc)
609 end)
610 | UNIT LARROW eexp SEMI eexp (let
611 val loc = s (UNITleft, eexp2right)
612 val e = (EVar (["Basis"], "bind"), loc)
613 val e = (EApp (e, eexp1), loc)
614 val t = (TRecord (CRecord [], loc), loc)
615 in
616 (EApp (e, (EAbs ("_", SOME t, eexp2), loc)), loc)
609 end) 617 end)
610 | eexp EQ eexp (native_op ("eq", eexp1, eexp2, s (eexp1left, eexp2right))) 618 | eexp EQ eexp (native_op ("eq", eexp1, eexp2, s (eexp1left, eexp2right)))
611 | eexp NE eexp (native_op ("ne", eexp1, eexp2, s (eexp1left, eexp2right))) 619 | eexp NE eexp (native_op ("ne", eexp1, eexp2, s (eexp1left, eexp2right)))
612 620
613 eargs : earg (earg) 621 eargs : earg (earg)