I’m worried that type inference (which we definitely will need to make type checking “opt-in” or gradual), will capture intend wrongly.
Lets say I return a function with arity 2 from another function. Will this be infered as a generic fun/2 type, as its actual type including argument types, or will it detect this as a Stream.t, Enumerable.t, or whatever else trait protocol is implemented for fun/2 types?
I am also worried that we might loose ability to implement some edge cases, as the type system is not able to express such a thing.






















