view tests/rpcDE.ur @ 1249:7c6fc92f6c31

Complain about DValRec; optimizations for unit-valued ECase and forgetting of path conditions across ESeq
author Adam Chlipala <adamc@hcoop.net>
date Thu, 29 Apr 2010 11:47:24 -0400
parents 3ee6bb48f6e8
children
line wrap: on
line source
datatype result = Neg | Zero | Pos

table t : {A : int}

fun main () : transaction page =
    let
        fun check () =
            r <- oneRow (SELECT SUM(t.A) AS X FROM t);
            return (if r.X < 0 then
                        Neg
                    else if r.X = 0 then
                        Zero
                    else
                        Pos)

        fun show r =
            case r of
                Neg => <xml>-</xml>
              | Zero => <xml>0</xml>
              | Pos => <xml>+</xml>
    in
        s <- source Zero;
        return <xml><body>
          <button value="Get It On!"
                  onclick={r <- check ();
                           set s r}/><br/>
          <br/>
          Current: <dyn signal={r <- signal s; return (show r)}/>
        </body></xml>
    end