@JD557 @adam_chal interesting, I'll take a look - I don't think I'd heard the term before, or at least not used like that.
Another example of wanting a loose type system is the fix point combinator, which is so much easier to write if you can sometimes return the next step in the recursion as function, sometimes the final result, without a type checker complaining about it.
@adam_chal I would argue that it really depends on:
- what you mean by "functional" (does it mean "supports functions as values" or "everything is referentialy transparent"?)
- what you're optimising for (expressivity or correction?)
I can absolutely imagine some people being happy with first class functions and being allowed to write code that a type checker must reject even though it's correct.