public Functor(FunctorMap <X, CX, Y, CY> fmap) => this._fmap = fmap;
public Traversable(FunctorMap <X, CX, Y, CY> map, Func <Func <X, CY>, CX, CY> traverse) { this._map = map; this._traverse = traverse; }
/// <summary> /// Constructs a functor from a map /// </summary> /// <typeparam name="X"></typeparam> /// <typeparam name="CX"></typeparam> /// <typeparam name="Y"></typeparam> /// <typeparam name="CY"></typeparam> /// <param name="fmap"></param> /// <returns></returns> public static IFunctor <X, CX, Y, CY> make <X, CX, Y, CY>(FunctorMap <X, CX, Y, CY> fmap) where CX : IContainer <X, CX>, new() where CY : IContainer <Y, CY>, new() => new Functor <X, CX, Y, CY>(fmap);