Basically, for type Foo = i32
implicitly create a function fn Foo(x: i32) -> i32 { x }
, as if it was a newtype.
This would allow:
- making the intent clearer in some cases where using newtypes is cumbersome, e.g. when working with a library that doesn’t use a newtype
- future-proofing for when you maybe are moving toward a newtype
I’m not particularly convinced this is a good idea (therefore no pre-RFC), but just had the idea and wanted to throw it out there in case it has some merit.