1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
pub trait HKT<A, B> { type URI; type Target; } impl<A, B> HKT<A, B> for Option<A> { type URI = Self; type Target = Option<B>; } pub trait HKT3<A, B, C> { type Target2; } impl<A, B, C> HKT3<A, B, C> for Option<A> { type Target2 = Option<B>; }