links
links copied to clipboard
Untypesettable session types
The pretty printer emits session types that cannot be typesetted by the programmer, e.g.
links> fun mkChan() { fork(fun(ch) { var ch = send(42, ch); close(ch) }) };
mkChan = fun : () ~> ~!(Int).End
links> sig mkChan : () ~> ~!(Int).End fun mkChan() { fork(fun(ch) { var ch = send(42, ch); close(ch) }) };
***: Parse error: <stdin>:1
sig mkChan : () ~> ~!(Int).End fun mkChan() { fork(fun(ch) { var ch = send(42, ch); close(ch) }) };
^
links> sig mkChan : () ~> ~(!(Int).End) fun mkChan() { fork(fun(ch) { var ch = send(42, ch); close(ch) }) };
mkChan = fun : () ~> ~(!(Int).End)