/** * Mappable is a structure that allows a function to be applied inside of the * associated concrete structure. * * @module Mappable * @since 2.0.0 */ import "./_dnt.polyfills.js"; import type { $, Hold, Kind } from "./kind.js"; /** * A Mappable structure has the method map. * * @since 2.0.0 */ export interface Mappable extends Hold { readonly map: (fai: (value: A) => I) => (ta: $) => $; } /** * Create a bindTo function from a structure with an instance of Mappable. A * bindTo function takes the inner value of the structure and maps it to the * value of a struct with the given name. It is useful for lifting the value * such that it can then be used with a `bind` function, effectively allowing * for `Do`-like notation in typescript. * * @since 2.0.0 */ export declare function createBindTo({ map }: Mappable): (name: N) => (ua: $) => $;