lambda-calculus
lambda-calculus copied to clipboard
Implement constants
JohanWiltink: "currently all variables can not only be shadowed but also overwritten. this might mean introducing full scoping, and might not be worth it. or is it just a matter of tagging names in the environment?"
overwritten * in the current scope
disabling overwriting need not disable shadowing, so tagging binding names would do. we already have hierarchical scopes.
this would need a syntax extension - actually a compiler directive would do just fine and be conceptually appropriate.