On Thursday, 11 December 2014 at 15:37:27 UTC, bearophile wrote:
Nick Treleaven:
Sometimes innovative workarounds are developed that are
difficult to foresee in advance - e.g. in Rust their type
system can be restrictive, but they rely on trusted library
functions/types to make more things possible in a safe way.
Ideally a type system should be flexible enough, in practice
giving it a high flexibility has significant costs (in
compilation times, amount of code that implements the system,
bugs in such implementation, costs for the final programmer in
inventing a way to express the semantics, etc), so most
languages avoid a too much complex type system (even Haskell
does this) and accept reasonable workarounds...
Bye,
bearophile
What is important is how much expressiveness you get from the
complexity. here we get almost none. Considering complexity alone
is not going to yield good results.