import type * as HKT from './HKT' import type { Option } from './Option' export interface Unfoldable extends HKT.Base { readonly unfold: UnfoldFn } export interface UnfoldFn { < A, B, N extends string = HKT.Initial, K = HKT.Initial, Q = HKT.Initial, W = HKT.Initial, X = HKT.Initial, I = HKT.Initial, S = HKT.Initial, R = HKT.Initial, E = HKT.Initial >( b: B, f: (b: B) => Option ): HKT.Kind }