UNPKG

@jsoldi/hkt

Version:

Higher kinded types for typescript and a few utility monads.

18 lines 573 B
import { chain, id } from "../core/utils.js"; const is_traversable = Symbol("is_traversable"); /** Creates an `ITraversable` from an `ITraversableBase`. */ export function traversable(base) { if (is_traversable in base) return base; const sequence = (m) => base.traverse(m)(id); const nestTraversable = (g) => traversable({ traverse: m => chain(g.traverse(m), base.traverse(m)) }); return { ...{ [is_traversable]: true }, sequence, nestTraversable, ...base }; } //# sourceMappingURL=traversable.js.map