datatype list t = Nil | Cons of t * list t
fun handler (ls : list bool) = return
datatype wlist = WNil | Empty | WCons of bool * wlist
fun whandler' (ls : wlist) =
case ls of
WNil => Nil
| Empty => Empty
| WCons (x, ls') => {[x]} :: {whandler' ls'}
fun whandler ls = return (whandler' ls)
fun main () : transaction page = return
!
Nil
Empty
True :: False :: Empty