this currently works only on nightly with the type_alias_impl_trait feature enabled.