Document SCL effect semantics
|Assignee:||Hannu Niemistö||% Done:|
|Velocity based estimate||-|
http://dev.simantics.org/index.php/SCL_Types#Effect_types states that
<e> is only valid in the return type of a function. This does not seem to be true: things like
while :: <a> Boolean -> <a> b -> <a> () appear in the standard library. I can guess what that does but I'd like a description how it ends up doing that, i.e., what is the semantics of
<e> x when it is not the return type of a function. http://dev.simantics.org/index.php/SCL_Tutorial mentions "the strict evaluation strategy" of SCL but evidently it's not strictly strict anymore. So what is it?
I think SCL needs a language specification that is and will be kept up to date with respect to the implementation. It should concisely and completely describe the syntax and semantics of the bare language. Library documentation can be maintained separately using the tools already in place.