Nearly Useful
The full influenza case study, a re-implementation of OctoFlu, is supported in this release. This proves that morloc
can be used to solve non-trivial problems. Here are the main advancements of this release:
- Infer all concrete types directly from the general type
- Allow file inputs rather than only raw JSON -- this allows large data sets to be processed without hitting argument size limits
- Better (though still far from good) debugging options and error messages
- Clean import/export system with wildcards
- Support for eta-reduction
- Many bug fixes and greatly extended test coverage
However, the language is still weak in many areas:
- No type classes
- No effect handling (e.g., exceptions, mutations, non-determinacy)
- Weak record/table/object support
- No pattern matching or sum types
- No binary operator support (I'm getting a little tired of writing
add
rather than+
) - Limited debugging features
- Limited language support
- Slow compile times (due to one specific issue in the frontend type system)
- Inefficient serialization scheme (uses JSON currently, should convert to some sort of remote procedure call system)
- No formal specification of the type-system -- the conversions from general to concrete to serial, the resolution of ambiguous trees, the propagation of types through segmentation, the threading of arguments -- all this is very involved but not yet mathematically defined. I am not confident that it is all sound.
- No shiny paladin salesperson, only a grumpy morlock who thinks only about problems