Hacker News new | ask | show | jobs
by airless_bar 3737 days ago
> [1] https://www.youtube.com/watch?v=hIZxTQP1ifo

Now we just need a Haskell compiler which actually bothers to provide the "pretty essential for sanity" for global uniqueness. Currently, I count zero compilers in common use which do.

1 comments

Not sure what you mean. Could you elaborate?
GHC gives you none of the guarantees Kmett keeps boasting about.
How so?

(EDIT: Just to forestall the inevitable: Yes, there are some weird and dangerous extensions you can enable, but mostly it's pretty clear that they're dangerous. It doesn't seem to be a problem in practice.)

> How so?

Because they never bothered to actually implement the checks to guarantee global uniqueness in GHC?

> (EDIT: Just to forestall the inevitable: Yes, there are some weird and dangerous extensions you can enable, but mostly it's pretty clear that they're dangerous. It doesn't seem to be a problem in practice.)

No weird and dangerous extensions in use. Vanilla Haskell.

> Because they never bothered to actually implement the checks to guarantee global uniqueness in GHC?

Sure they did. Orphan instances are detected by the compiler.

(Sorry, forgot password to my old account.)

Orphan warnings tell you that you defined an instance in the wrong place.

Things you don't receive warnings for:

  - Defining the same instance twice.
  - Having code which uses both instances.
Those two should be hard compiler errors, because they break data structures at runtime and make code behave incorrectly.

Sorry, orphan warnings are multiple magnitudes of escalation levels away from what should happen and are focused on something different (code hygiene vs. THIS-CODE-IS-WRONG-AND-BROKEN-AND-WILL-CORRUPT-SHIT-AT-RUNTIME-I-WILL-FAIL-TO-COMPILE-THIS).