← Back to context

Comment by KolmogorovComp

9 hours ago

This is correct. But it’s not really surprising, it’s type inference.

It isn't really type inference. Each closure gets a unique type. Rather it's an automatic decision of what traits (think roughly "superclasses" I guess if you aren't familiar with traits/typeclasses) to implement for that type.

  • So you're saying... it's type inference of type classes, just like in Haskell?

    • I am not sure how Haskell works but I think what the previous poster meant is that the types get determined at compile time. Closures are akin to macros except you can't see the expanded code.