public static Future <A> narrowK <A>(this HigherKind <W, A> hkt) => (Future <A>)hkt;
public static Id <A> narrowK <A>(this HigherKind <W, A> hkt) => (Id <A>)hkt;
public HigherKind <Id.W, B> map <A, B>(HigherKind <Id.W, A> data, Func <A, B> mapper) => Id.a(mapper(data.narrowK().a));
public HigherKind <Option.W, B> map <A, B>(HigherKind <Option.W, A> data, Func <A, B> mapper) => data.narrowK().map(mapper);
public static Option <A> narrowK <A>(this HigherKind <W, A> hkt) => (Option <A>)hkt;
[PublicAPI] public static HigherKind <Witness, B> map <Witness, A, B>( this HigherKind <Witness, A> hkt, Functor <Witness> F, Func <A, B> mapper ) => F.map(hkt, mapper);
public HigherKind <Option.W, B> flatMap <A, B>( HigherKind <Option.W, A> data, Fn <A, HigherKind <Option.W, B> > mapper ) => data.narrowK().flatMap(a => mapper(a).narrowK());
public HigherKind <Option.W, B> map <A, B>(HigherKind <Option.W, A> data, Fn <A, B> mapper) => Functors.i.map(data, mapper);
public HigherKind <Id.W, B> flatMap <A, B>( HigherKind <Id.W, A> data, Fn <A, HigherKind <Id.W, B> > mapper ) => mapper(data.narrowK().a);
public HigherKind <Id.W, B> map <A, B>(HigherKind <Id.W, A> data, Func <A, B> mapper) => Functors.i.map(data, mapper);
public HigherKind <Future.W, B> map <A, B>(HigherKind <Future.W, A> data, Fn <A, B> mapper) => data.narrowK().map(mapper);