adamc@590: fun getOpt (t ::: Type) (o : option t) (v : t) : t =
adamc@590: case o of
adamc@590: None => v
adamc@590: | Some x => x
adamc@590:
adamc@591: cookie int : int
adamc@591: cookie float : float
adamc@592: cookie string : string
adamc@592: cookie bool : bool
adamc@591:
adamc@590: fun main () : transaction page =
adamc@590: n <- getCookie int;
adamc@591: n <- return (getOpt n 7);
adamc@591: sn <- source 6;
adamc@591:
adamc@591: f <- getCookie float;
adamc@591: f <- return (getOpt f 1.23);
adamc@591: sf <- source 4.56;
adamc@591:
adamc@592: s <- getCookie string;
adamc@592: s <- return (getOpt s "Hi");
adamc@592: ss <- source "Bye";
adamc@592:
adamc@592: b <- getCookie bool;
adamc@592: b <- return (getOpt b True);
adamc@592: sb <- source False;
adamc@592:
adamc@590: return
adamc@590: {[n]}}/>
adamc@591: CHANGE
adamc@591:
adamc@591: {[f]}}/>
adamc@591: CHANGE
adamc@592:
adamc@592: {[s]}}/>
adamc@592: CHANGE
adamc@592:
adamc@592: {[b]}}/>
adamc@592: CHANGE
adamc@590: