>>24
It seems to me teaching abstraction is more important than the convenience of pattern matching, and the feature trade off here was not in Miranda's favor. I do agree with their comments about data types and ADTs over all though, I don't recall it being mentioned but I also agree with the virtues of strong static inferred typing so long as sufficient generic primitives are provided. They seem to have to some extent missed the point of having different models of computation. The point is not to approach some easy to understand view of computation but to approach powerful ways of viewing the system at hand. On lazy evaluation, it does remove special forms but this isn't without cost, reasoning about certain algorithms, especially algorithms using mutation, can be dramatically more difficult. Delayed evaluation is a useful tool for simplifying certain procedures.