Extensions (2): Variant Types
e ::= ... | true | false | if e0 then e1 else e2
?bool v = if v then true else false
?bool e = ???
- Want to return both "true" and "false" to the context and use the results
- Manipulate partial continuation with "shift" & "reset" [Danvy & Finlinski 90]