Conversation

val fun: Arg => Ret def fun(Arg): Ret when you don't have a function arrow (i.e. =>) then definitely I'd go with ->. but Scala has function arrow
2
tbh this is fine? because they're all supertraits and because lifetimes, ownership, and mutability matters, you can and indeed must specify the strictness of your trait bound, which lets you accept either all closures (FnOnce) or ones that are safe to call repeatedly (Fn).
1
1
There's hints of this stuff in what Granule is doing, and I'm hoping more progress is going to be made on this in the future. It seems like stuff like this could be rather useful for systems programming, imo.
1