... | ... | @@ -7,6 +7,6 @@ These are properties or qualities of any haskell standard we would like to prese |
|
|
|
|
|
- import-safe - importing a new module can never silently change the behavior of a program, but it may cause a compile-time error. two programs that are identical except one has a superset of the imports of the other will either behave identically or at least one will fail to compile. (defaulting and [OverlappingInstances](overlapping-instances) break this)
|
|
|
|
|
|
- admits an efficient implementation. features that require large amounts of run-time support or non-trivial restrictions on the implementation method should be avoided.
|
|
|
- admits an efficient implementation. features that require large amounts of run-time support or non-trivial restrictions on the implementation method should be avoided. (this is a tradeoff and the design space of haskell implementations has not fully been explored so we should be conservative when we can)
|
|
|
|
|
|
- transformation safe. the language will not have features that cause common optimizations and transformations to become non-meaning-preserving. All lambda calculus transformations should apply. (this is broken by the [MonomorphismRestriction](monomorphism-restriction) (eta-reduction/expansion) and [ImplicitParams](implicit-params) (beta-reduction)) |