The BOPP paper needs a way to immediately return result from a query. The easiest way to implement this is to add a kind of return statement. However, imlementing return
literally poses two problems:
- there is a risk of name catch by the user, when the user declares a variable
return
(not a special form in Clojure). return
inside an Anglican function implemented as a call toresult-cont
will not return from the function but rather from the query which calls the function, without any way to intercept.
We would like a solution which
- does not pollute Anglican namespace by adding reserved words.
- gives control over the scope to return from.