this post was submitted on 31 Oct 2023
4 points (100.0% liked)
Haskell
65 readers
3 users here now
**The Haskell programming language community.** Daily news and info about all things Haskell related: practical stuff, theory, types, libraries, jobs, patches, releases, events and conferences and more... ### Links - Get Started with Haskell
founded 1 year ago
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I'm not sure which options you are referring to, I had three options: a JS-style number type (with two suboptions for indexing: throwing errors or rounding), separate types, or a fixed set of classes and instances.
Your first point seems to be against the error throwing approach to array indexing with a JS-style number type. I kind of agree, but then we should also handle out of bounds indexing in a type safe way. I still don't see the problem with rounding to an integer, I think that's also what beginners intuitively expect if they write e.g.
xs !! (length xs / 2)
.Your second point seems to be against having separate types and separate instructions like
+
and+.
. I think I'd agree that semantically it is not much simpler, but programming is more than just semantics. For example, error messages will be much simpler if there's noNum
type class involved (at least the error messages that GHC gives). Perhaps it is possible to develop a better error reporting mechanism for type classes, but that would require more research.Did I interpret your comment correctly?