[Haskell-cafe] New type of ($) operator in GHC 8.0 is problematic
Joachim Durchholz
jo at durchholz.org
Tue Feb 9 17:17:37 UTC 2016
Am 09.02.2016 um 18:04 schrieb Carter Schonwald:
> I'd like to opine that I personally like that our types are getting more
> honest in reflecting how things work,
I'm pretty much in the same boat with that.
I just have a feeling that the typing is getting complicated because the
compiler isn't good enough to infer whether a type is lifted or not,
boxed or not. Essentially, there's that constant temptation to give
programmers access to machine integers.
It's a valid concern, but it complicates the type system tremendously.
I feel that this is similar to expressing value constraints in the type
system, e.g. ranges or squareness of matrixes. Yes it can be done in
Haskell's type system, yes it does typecheck beautifully, but the type
declarations behind these kinds of feats will just make any ordinary
programmer go MEGO. Even the bright ones.
I conclude that the type system isn't the right place for that kind of
checking. To be understandable, such constraints need to be expressed as
boolean assertions, not as some inductive construct. YMMV.
More information about the Haskell-Cafe
mailing list