
Am 01.03.21 um 17:45 schrieb Johannes Waldmann:
let's fight Int.
I'm in.
In a lot of code I write (for research, teaching, production), a lot of numbers are in fact natural numbers - because I am counting (e.g., number of elements in a collection) or pointing into what I just counted (e.g., Data.Set.elemAt).
But Haskell's "most natural" type is - Int. At least that's my impression from current usage in libraries and teaching examples (see functions length, replicate, ... ).
I've developed a horror of reading and writing "length something :: Int".
Same here.
If I want to live risky (no checks) I could use Data.Word.
I think Data.Word is not so bad. Does it come with a guarantee that maxBound=2^n-1 and all operations being treated module 2^n, for some natural number n? That would be fine for most applications I guess. It would be nice if one could change the semantics of under- or overflow for Data.Word with a compiler flag, e.g. so that it throws an exception.
That's all fine and dandy - until I call some library function...
I would support a move Int->Word in all libraries where that makes sense. But I doubt it will happen. Cheers Ben