| badEscape : [x] . x -> x; | |
| dup : [a] Share a. a -> {p1 : a,p2 : a}#; | |
| dup x = {p1 = x : a,p2 = x : a} : {p1 : a,p2 : a}#; | |
| fun : [x] . x! -> Unit; | |
| fun x = Unit : Unit; | |
| test : [x] . x -> x; | |
| test x = let! (x) a = let y = (dup[x!] : x! | |
| -> {p1 : x! | |
| ,p2 : x!}#) (x : x!) : {p1 : x! | |
| ,p2 : x!}# | |
| in Unit : Unit | |
| end : Unit | |
| in x : x | |
| end : x; | |
| test2 : [a] . a -> a; | |
| test2 x = let! (x) a = (fun[a] : a! -> Unit) (x : a!) : Unit in x : a end : a; |