Whiley v0.2.9 Released!
Well, here’s version 0.2.9. This includes numerous bug fixes, and several major feature updates:
Support for recursive algebraic datatypes
Improved support for type testing, particularly of recursive types
Syntax of function declarations has changed slightly to use
where
instead ofrequires
+ensures
. See this post for more on why.
However, there remains a long list of outstanding issues:
Compile-time checking of recursive constrained types is a problem in some cases. See this post for more.
Type inference doesn’t work in all cases either.
Boolean lists remain a problem.
At this stage, I am faced with some difficult choices. The current design is getting overly complex and, frankly, I don’t believe it will go the distance. A new design is really needed that will dramatically simplify many aspects of the process. My current thinking on this is to move towards a simplified intermediate language, similar in some ways to Java bytecode. The advantage of this is that it would significantly reduce the number of cases that need to be processed; it would also provide a nice interface between the front-end and the back-end, helping to separate them and improve overall modularity.