| | 41 | == Proposal 1 == |
| | 42 | |
| | 43 | both pattern bound and let type signature bound variables are in scope in the |
| | 44 | body of a function. only let type signature bound variables may shadow other |
| | 45 | variables and no variables are ever in scope in a let type signature, pattern |
| | 46 | bound variables do not shadow but rather refer to the same type. |
| | 47 | ExplicitQuantification is required for all expression type signatures but not |
| | 48 | let type signatures. |
| | 49 | |
| | 50 | This proposal tries to strike a balance between backwards compatability, |
| | 51 | avoiding accidental type errors, and simplicity. let type signatures always |
| | 52 | create a new scope, pattern bound ones are always in the same scope and |
| | 53 | it is clear from expression type signatures what is a scoped type var. |