| 9 | | * Implement a declarative IO system. |
| 10 | | * Don't be afraid to use extensions (although we should probably establish a list of which ones are "safe" and which are not). |
| 11 | | * When there is more than one possible instance of a type class for one data type, use newtype wrappers for all of those instances (no instance for the unwrapped version). |
| 12 | | * Don't worry about numerous type classes as long as they are small. |
| | 8 | * Implement a declarative IO system? |
| | 9 | * Unambiguous semantics, when possible. When there is more than one possible instance of a type class for one data type, use newtype wrappers for all of those instances (no instance for the unwrapped version). |