TODO: Define user / developer
TODO: Comiler vs translator
TODO: Hardware description / model vs program
-TODO: State & pattern matches
TODO: Separate compilation / Prelude
TODO: Add case binder removal transformation
TODO: User-defined type classes (future work?)