Skip to content

Untypesettable session types #1180

@dhil

Description

@dhil

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)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions