|
|
|
|
|
by jorkadeen
335 days ago
|
|
What do you mean? In Flix, if a function has "Bool" as a return type then it can only return a Boolean value. That's what a type system ensures. Similarly, in Flix if a function has the "ReadsFromDB" effect then it can call operations that cause "ReadsFromDB"-- but it cannot cause any other effect. In particular, if there is also a "WriteToDb" then it cannot perform that effect. This is not just aspirational. It is an iron-clad guarantee; it is what is formally called "effect safety" and it has been proven for calculi that model the Flix type and effect system. To sum up: In Flix: - If a function is pure then it cannot perform side-effects. - If a function has the Console effect then it can only perform operations defined on Console. - If a function has the Console and Http effect then it can only perform operations defined on Console and Http. and so on. |
|