I just checked this and got an unexpected result:
This, is OK:
viewtypedef t = () -<lin> void
var f:t = llam() => ()
val () = f()
// val () = f() // Error, evaluation is already consumed.
This, is unexpected:
fn g():<lin> void = ()
val () = g()
val () = g() // Should be an error but is not?
I though the second evaluation would trigger an error, but since an ordinary function is not an l‑value, may be it can’t be linear. But if this is the explanation, then this effect should be rejected on ordinary function. Unless I’m wrong …
`$showtype` says `g` is of type sort, not viewtype sort.