You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
case_fun_server =
proc(c : ?(x : Bool). case x of { `true -> !String, `false -> {!String,!String} })
recv c (x : Bool).
case x of
`true -> send c "Hello World!"
`false ->
c{d,e}
send d "Hello".
send e "World"
However since case is not part of process but of terms the example above is rejected, instead one can write:
case_fun_server =
proc(c : ?(x : Bool). (case x of { `true -> !String, `false -> {!String,!String} }))
recv c (x : Bool).
@(case x of
`true -> proc (c) send c "Hello World!"
`false ->
proc (c)
c{d,e}
send d "Hello".
send e "World"
)(c)
Which is rejected so far with the following message:
Expected a protocol type, not:
case x of {
`false -> < {!String, !String}> ,
`true -> < !String >
}
Here the fix seems straightforward the type above should be equivalent to:
< case x of { `false -> {!String, !String} , `true -> !String } >
The text was updated successfully, but these errors were encountered:
Two kinds of dependencies should be supported at first.
Simple dependencies: indexing
(this is supported since 5657a0a)
Example:
Large-elimination over finite data types
Example:
However since
case
is not part of process but of terms the example above is rejected, instead one can write:Which is rejected so far with the following message:
Here the fix seems straightforward the type above should be equivalent to:
The text was updated successfully, but these errors were encountered: