Trait imprint::TyFnL [] [src]

pub unsafe trait TyFnL<'a> {
    type Output;
}

Used to define type-level functions with existential parameters, intended for use with Exists.

In order to use Exists safely, we require parametricity in 'a for all implementations of TyFnL. However, I don't think it's yet possible to violate parametricity in Rust without breaking the for<'a> TyFnL<'a> constraint.

However, what is more important is that 'a must be a fictitious lifetime parameter! Otherwise, Exists could be used to smuggle references to temporary objects out of their scope.

Associated Types

Implementors