Remix.run Logo
tayo42 6 hours ago

I thought the implementation here was how hindley Milner worked? I guess not?

tekknolagi 4 hours ago | parent [-]

No, HM is unification based and requires no annotations at all.

skybrian 4 hours ago | parent [-]

Apparently it only gets away without annotations if the language doesn’t support subtyping? Here’s an explanation about why bidirectional type checking is better for that:

https://www.haskellforall.com/2022/06/the-appeal-of-bidirect...

It seems to me that type-checking that relies on global constraint-solving is usually a bad idea. Annotated function types result in less confusion about what a function does.

ufo 23 minutes ago | parent [-]

Indeed. Unification-based type inference doesn't work well when the type constraints are all inequalities.