на всякий случай, если переходите с раста, классическая ловушка джокера в том, что в хаскеле String - это не аналог String в расте, это ближе к impl IntoIterator<Item=char>
так и в хаскеле же нельзя, нужно писать name @Foo, неоднозначности исключены, будет ошибка компиляции. Чем отличается раст от хаскеля с aat+ta в этом плане?
я тоже не думаю, что это что-то опасное, просто не согласен с тем, что в расте включен аналог AllowAmbigousTypes, но даже несмотря на это, необходимость явно задавать типо-параметры в типичном коде на раст гораздо чаще возникает
Приняли design for dependent types. Любят таки нынче тяжеловесный синтаксис:
> Given that some programmers will continue to use punning, it may be necessary to explicitly tell GHC to switch syntaxes. As originally described in #281, we propose using the keyword type to tell GHC to switch to interpreting type-syntax, not term-syntax. This changes both parsing and name resolution. For example, we might say sizeof (type Bool) to allow disambiguation between a Bool in the term-level namespace and one in the type-level namespace.