版博士V2.0程序
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

преди 1 година
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423
  1. /**
  2. * @since 2.0.0
  3. */
  4. import { Applicative, Applicative1, Applicative2, Applicative2C, Applicative3 } from './Applicative'
  5. import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3, URIS4, Kind4 } from './HKT'
  6. import { Monad, Monad1, Monad2, Monad2C, Monad3, Monad3C } from './Monad'
  7. import { Monoid } from './Monoid'
  8. /**
  9. * @category model
  10. * @since 2.0.0
  11. */
  12. export interface Foldable<F> {
  13. readonly URI: F
  14. readonly reduce: <A, B>(fa: HKT<F, A>, b: B, f: (b: B, a: A) => B) => B
  15. readonly foldMap: <M>(M: Monoid<M>) => <A>(fa: HKT<F, A>, f: (a: A) => M) => M
  16. readonly reduceRight: <A, B>(fa: HKT<F, A>, b: B, f: (a: A, b: B) => B) => B
  17. }
  18. /**
  19. * @category model
  20. * @since 2.0.0
  21. */
  22. export interface Foldable1<F extends URIS> {
  23. readonly URI: F
  24. readonly reduce: <A, B>(fa: Kind<F, A>, b: B, f: (b: B, a: A) => B) => B
  25. readonly foldMap: <M>(M: Monoid<M>) => <A>(fa: Kind<F, A>, f: (a: A) => M) => M
  26. readonly reduceRight: <A, B>(fa: Kind<F, A>, b: B, f: (a: A, b: B) => B) => B
  27. }
  28. /**
  29. * @category model
  30. * @since 2.0.0
  31. */
  32. export interface Foldable2<F extends URIS2> {
  33. readonly URI: F
  34. readonly reduce: <E, A, B>(fa: Kind2<F, E, A>, b: B, f: (b: B, a: A) => B) => B
  35. readonly foldMap: <M>(M: Monoid<M>) => <E, A>(fa: Kind2<F, E, A>, f: (a: A) => M) => M
  36. readonly reduceRight: <E, A, B>(fa: Kind2<F, E, A>, b: B, f: (a: A, b: B) => B) => B
  37. }
  38. /**
  39. * @category model
  40. * @since 2.0.0
  41. */
  42. export interface Foldable2C<F extends URIS2, E> {
  43. readonly URI: F
  44. readonly _E: E
  45. readonly reduce: <A, B>(fa: Kind2<F, E, A>, b: B, f: (b: B, a: A) => B) => B
  46. readonly foldMap: <M>(M: Monoid<M>) => <A>(fa: Kind2<F, E, A>, f: (a: A) => M) => M
  47. readonly reduceRight: <A, B>(fa: Kind2<F, E, A>, b: B, f: (a: A, b: B) => B) => B
  48. }
  49. /**
  50. * @category model
  51. * @since 2.0.0
  52. */
  53. export interface Foldable3<F extends URIS3> {
  54. readonly URI: F
  55. readonly reduce: <R, E, A, B>(fa: Kind3<F, R, E, A>, b: B, f: (b: B, a: A) => B) => B
  56. readonly foldMap: <M>(M: Monoid<M>) => <R, E, A>(fa: Kind3<F, R, E, A>, f: (a: A) => M) => M
  57. readonly reduceRight: <R, E, A, B>(fa: Kind3<F, R, E, A>, b: B, f: (a: A, b: B) => B) => B
  58. }
  59. /**
  60. * @category model
  61. * @since 2.2.0
  62. */
  63. export interface Foldable3C<F extends URIS3, E> {
  64. readonly URI: F
  65. readonly _E: E
  66. readonly reduce: <R, A, B>(fa: Kind3<F, R, E, A>, b: B, f: (b: B, a: A) => B) => B
  67. readonly foldMap: <M>(M: Monoid<M>) => <R, A>(fa: Kind3<F, R, E, A>, f: (a: A) => M) => M
  68. readonly reduceRight: <R, A, B>(fa: Kind3<F, R, E, A>, b: B, f: (a: A, b: B) => B) => B
  69. }
  70. /**
  71. * @category model
  72. * @since 2.0.0
  73. */
  74. export interface Foldable4<F extends URIS4> {
  75. readonly URI: F
  76. readonly reduce: <S, R, E, A, B>(fa: Kind4<F, S, R, E, A>, b: B, f: (b: B, a: A) => B) => B
  77. readonly foldMap: <M>(M: Monoid<M>) => <S, R, E, A>(fa: Kind4<F, S, R, E, A>, f: (a: A) => M) => M
  78. readonly reduceRight: <S, R, E, A, B>(fa: Kind4<F, S, R, E, A>, b: B, f: (a: A, b: B) => B) => B
  79. }
  80. /**
  81. * `reduce` composition.
  82. *
  83. * @since 2.10.0
  84. */
  85. export declare function reduce<F extends URIS, G extends URIS>(
  86. F: Foldable1<F>,
  87. G: Foldable1<G>
  88. ): <B, A>(b: B, f: (b: B, a: A) => B) => (fga: Kind<F, Kind<G, A>>) => B
  89. export declare function reduce<F, G>(
  90. F: Foldable<F>,
  91. G: Foldable<G>
  92. ): <B, A>(b: B, f: (b: B, a: A) => B) => (fga: HKT<F, HKT<G, A>>) => B
  93. /**
  94. * `foldMap` composition.
  95. *
  96. * @since 2.10.0
  97. */
  98. export declare function foldMap<F extends URIS, G extends URIS>(
  99. F: Foldable1<F>,
  100. G: Foldable1<G>
  101. ): <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fga: Kind<F, Kind<G, A>>) => M
  102. export declare function foldMap<F, G>(
  103. F: Foldable<F>,
  104. G: Foldable<G>
  105. ): <M>(M: Monoid<M>) => <A>(f: (a: A) => M) => (fga: HKT<F, HKT<G, A>>) => M
  106. /**
  107. * `reduceRight` composition.
  108. *
  109. * @since 2.10.0
  110. */
  111. export declare function reduceRight<F extends URIS, G extends URIS>(
  112. F: Foldable1<F>,
  113. G: Foldable1<G>
  114. ): <B, A>(b: B, f: (a: A, b: B) => B) => (fga: Kind<F, Kind<G, A>>) => B
  115. export declare function reduceRight<F, G>(
  116. F: Foldable<F>,
  117. G: Foldable<G>
  118. ): <B, A>(b: B, f: (a: A, b: B) => B) => (fga: HKT<F, HKT<G, A>>) => B
  119. /**
  120. * Similar to 'reduce', but the result is encapsulated in a monad.
  121. *
  122. * Note: this function is not generally stack-safe, e.g., for monads which build up thunks a la `IO`.
  123. *
  124. * @example
  125. * import { reduceM } from 'fp-ts/Foldable'
  126. * import { Monad, some } from 'fp-ts/Option'
  127. * import { make, Foldable } from 'fp-ts/Tree'
  128. * import { pipe } from 'fp-ts/function'
  129. *
  130. * const t = make(1, [make(2, []), make(3, []), make(4, [])])
  131. * assert.deepStrictEqual(pipe(t, reduceM(Monad, Foldable)(0, (b, a) => (a > 2 ? some(b + a) : some(b)))), some(7))
  132. *
  133. * @since 2.8.0
  134. */
  135. export declare function reduceM<M extends URIS3, F extends URIS>(
  136. M: Monad3<M>,
  137. F: Foldable1<F>
  138. ): <B, A, R, E>(b: B, f: (b: B, a: A) => Kind3<M, R, E, B>) => (fa: Kind<F, A>) => Kind3<M, R, E, B>
  139. export declare function reduceM<M extends URIS3, F extends URIS, E>(
  140. M: Monad3C<M, E>,
  141. F: Foldable1<F>
  142. ): <B, A, R>(b: B, f: (b: B, a: A) => Kind3<M, R, E, B>) => (fa: Kind<F, A>) => Kind3<M, R, E, B>
  143. export declare function reduceM<M extends URIS2, F extends URIS>(
  144. M: Monad2<M>,
  145. F: Foldable1<F>
  146. ): <B, A, E>(b: B, f: (b: B, a: A) => Kind2<M, E, B>) => (fa: Kind<F, A>) => Kind2<M, E, B>
  147. export declare function reduceM<M extends URIS2, F extends URIS, E>(
  148. M: Monad2C<M, E>,
  149. F: Foldable1<F>
  150. ): <B, A>(b: B, f: (b: B, a: A) => Kind2<M, E, B>) => (fa: Kind<F, A>) => Kind2<M, E, B>
  151. export declare function reduceM<M extends URIS, F extends URIS>(
  152. M: Monad1<M>,
  153. F: Foldable1<F>
  154. ): <B, A>(b: B, f: (b: B, a: A) => Kind<M, B>) => (fa: Kind<F, A>) => Kind<M, B>
  155. export declare function reduceM<M, F>(
  156. M: Monad<M>,
  157. F: Foldable<F>
  158. ): <B, A>(b: B, f: (b: B, a: A) => HKT<M, B>) => (fa: HKT<F, A>) => HKT<M, B>
  159. /**
  160. * Fold a data structure, accumulating values in some `Monoid`, combining adjacent elements using the specified separator
  161. *
  162. * @example
  163. * import { intercalate } from 'fp-ts/Foldable'
  164. * import * as S from 'fp-ts/string'
  165. * import { make, Foldable } from 'fp-ts/Tree'
  166. *
  167. * const t = make('a', [make('b', []), make('c', []), make('d', [])])
  168. * assert.strictEqual(intercalate(S.Monoid, Foldable)('|', t), 'a|b|c|d')
  169. *
  170. * @since 2.0.0
  171. */
  172. export declare function intercalate<M, F extends URIS3>(
  173. M: Monoid<M>,
  174. F: Foldable3<F>
  175. ): <R, E>(middle: M, fm: Kind3<F, R, E, M>) => M
  176. export declare function intercalate<M, F extends URIS2>(
  177. M: Monoid<M>,
  178. F: Foldable2<F>
  179. ): <E>(middle: M, fm: Kind2<F, E, M>) => M
  180. export declare function intercalate<M, F extends URIS2, E>(
  181. M: Monoid<M>,
  182. F: Foldable2C<F, E>
  183. ): (middle: M, fm: Kind2<F, E, M>) => M
  184. export declare function intercalate<M, F extends URIS>(M: Monoid<M>, F: Foldable1<F>): (middle: M, fm: Kind<F, M>) => M
  185. export declare function intercalate<M, F>(M: Monoid<M>, F: Foldable<F>): (middle: M, fm: HKT<F, M>) => M
  186. /**
  187. * Transforms a `Foldable` into a `toReadonlyArray`.
  188. *
  189. * @example
  190. * import { toReadonlyArray } from 'fp-ts/Foldable'
  191. * import { Foldable, make } from 'fp-ts/Tree'
  192. *
  193. * const t = make(1, [make(2, []), make(3, []), make(4, [])])
  194. * assert.deepStrictEqual(toReadonlyArray(Foldable)(t), [1, 2, 3, 4])
  195. *
  196. * @since 2.10.0
  197. */
  198. export declare function toReadonlyArray<F extends URIS4>(
  199. F: Foldable4<F>
  200. ): <S, R, E, A>(fa: Kind4<F, S, R, E, A>) => ReadonlyArray<A>
  201. export declare function toReadonlyArray<F extends URIS3>(
  202. F: Foldable3<F>
  203. ): <R, E, A>(fa: Kind3<F, R, E, A>) => ReadonlyArray<A>
  204. export declare function toReadonlyArray<F extends URIS3, E>(
  205. F: Foldable3C<F, E>
  206. ): <R, A>(fa: Kind3<F, R, E, A>) => ReadonlyArray<A>
  207. export declare function toReadonlyArray<F extends URIS2>(
  208. F: Foldable2<F>
  209. ): <E, A>(fa: Kind2<F, E, A>) => ReadonlyArray<A>
  210. export declare function toReadonlyArray<F extends URIS2, E>(
  211. F: Foldable2C<F, E>
  212. ): <A>(fa: Kind2<F, E, A>) => ReadonlyArray<A>
  213. export declare function toReadonlyArray<F extends URIS>(F: Foldable1<F>): <A>(fa: Kind<F, A>) => ReadonlyArray<A>
  214. export declare function toReadonlyArray<F>(F: Foldable<F>): <A>(fa: HKT<F, A>) => ReadonlyArray<A>
  215. /**
  216. * Traverse a data structure, performing some effects encoded by an `Applicative` functor at each value, ignoring the
  217. * final result.
  218. *
  219. * @example
  220. * import { Foldable } from 'fp-ts/Array'
  221. * import { traverse_ } from 'fp-ts/Foldable'
  222. * import { Applicative } from 'fp-ts/IO'
  223. *
  224. * let log = ''
  225. * const append = (s: string) => () => (log += s)
  226. * traverse_(Applicative, Foldable)(['a', 'b', 'c'], append)()
  227. * assert.strictEqual(log, 'abc')
  228. *
  229. * @since 2.0.0
  230. */
  231. export declare function traverse_<M extends URIS3, F extends URIS>(
  232. M: Applicative3<M>,
  233. F: Foldable1<F>
  234. ): <R, E, A, B>(fa: Kind<F, A>, f: (a: A) => Kind3<M, R, E, B>) => Kind3<M, R, E, void>
  235. export declare function traverse_<M extends URIS2, F extends URIS>(
  236. M: Applicative2<M>,
  237. F: Foldable1<F>
  238. ): <E, A, B>(fa: Kind<F, A>, f: (a: A) => Kind2<M, E, B>) => Kind2<M, E, void>
  239. export declare function traverse_<M extends URIS2, F extends URIS, E>(
  240. M: Applicative2C<M, E>,
  241. F: Foldable1<F>
  242. ): <A, B>(fa: Kind<F, A>, f: (a: A) => Kind2<M, E, B>) => Kind2<M, E, void>
  243. export declare function traverse_<M extends URIS, F extends URIS>(
  244. M: Applicative1<M>,
  245. F: Foldable1<F>
  246. ): <A, B>(fa: Kind<F, A>, f: (a: A) => Kind<M, B>) => Kind<M, void>
  247. export declare function traverse_<M, F>(
  248. M: Applicative<M>,
  249. F: Foldable<F>
  250. ): <A, B>(fa: HKT<F, A>, f: (a: A) => HKT<M, B>) => HKT<M, void>
  251. /**
  252. * Use [`reduceM`](#reducem) instead
  253. *
  254. * @category zone of death
  255. * @since 2.0.0
  256. * @deprecated
  257. */
  258. export declare function foldM<M extends URIS3, F extends URIS>(
  259. M: Monad3<M>,
  260. F: Foldable1<F>
  261. ): <R, E, A, B>(fa: Kind<F, A>, b: B, f: (b: B, a: A) => Kind3<M, R, E, B>) => Kind3<M, R, E, B>
  262. /** @deprecated */
  263. export declare function foldM<M extends URIS3, F extends URIS, E>(
  264. M: Monad3C<M, E>,
  265. F: Foldable1<F>
  266. ): <R, A, B>(fa: Kind<F, A>, b: B, f: (b: B, a: A) => Kind3<M, R, E, B>) => Kind3<M, R, E, B>
  267. /** @deprecated */
  268. export declare function foldM<M extends URIS2, F extends URIS>(
  269. M: Monad2<M>,
  270. F: Foldable1<F>
  271. ): <E, A, B>(fa: Kind<F, A>, b: B, f: (b: B, a: A) => Kind2<M, E, B>) => Kind2<M, E, B>
  272. /** @deprecated */
  273. export declare function foldM<M extends URIS2, F extends URIS, E>(
  274. M: Monad2C<M, E>,
  275. F: Foldable1<F>
  276. ): <A, B>(fa: Kind<F, A>, b: B, f: (b: B, a: A) => Kind2<M, E, B>) => Kind2<M, E, B>
  277. /** @deprecated */
  278. export declare function foldM<M extends URIS, F extends URIS>(
  279. M: Monad1<M>,
  280. F: Foldable1<F>
  281. ): <A, B>(fa: Kind<F, A>, b: B, f: (b: B, a: A) => Kind<M, B>) => Kind<M, B>
  282. /** @deprecated */
  283. export declare function foldM<M, F>(
  284. M: Monad<M>,
  285. F: Foldable<F>
  286. ): <A, B>(fa: HKT<F, A>, b: B, f: (b: B, a: A) => HKT<M, B>) => HKT<M, B>
  287. /**
  288. * Use [`toReadonlyArray`](#toreadonlyarray) instead
  289. *
  290. * @category zone of death
  291. * @since 2.8.0
  292. * @deprecated
  293. */
  294. export declare const toArray: typeof toReadonlyArray
  295. /**
  296. * @category zone of death
  297. * @since 2.0.0
  298. * @deprecated
  299. */
  300. export interface FoldableComposition<F, G> {
  301. readonly reduce: <A, B>(fga: HKT<F, HKT<G, A>>, b: B, f: (b: B, a: A) => B) => B
  302. readonly foldMap: <M>(M: Monoid<M>) => <A>(fa: HKT<F, HKT<G, A>>, f: (a: A) => M) => M
  303. readonly reduceRight: <A, B>(fa: HKT<F, HKT<G, A>>, b: B, f: (a: A, b: B) => B) => B
  304. }
  305. /**
  306. * @category zone of death
  307. * @since 2.0.0
  308. * @deprecated
  309. */
  310. export interface FoldableComposition11<F extends URIS, G extends URIS> {
  311. readonly reduce: <A, B>(fga: Kind<F, Kind<G, A>>, b: B, f: (b: B, a: A) => B) => B
  312. readonly foldMap: <M>(M: Monoid<M>) => <A>(fa: Kind<F, Kind<G, A>>, f: (a: A) => M) => M
  313. readonly reduceRight: <A, B>(fa: Kind<F, Kind<G, A>>, b: B, f: (a: A, b: B) => B) => B
  314. }
  315. /**
  316. * @category zone of death
  317. * @since 2.0.0
  318. * @deprecated
  319. */
  320. export interface FoldableComposition12<F extends URIS, G extends URIS2> {
  321. readonly reduce: <E, A, B>(fga: Kind<F, Kind2<G, E, A>>, b: B, f: (b: B, a: A) => B) => B
  322. readonly foldMap: <M>(M: Monoid<M>) => <E, A>(fa: Kind<F, Kind2<G, E, A>>, f: (a: A) => M) => M
  323. readonly reduceRight: <E, A, B>(fa: Kind<F, Kind2<G, E, A>>, b: B, f: (a: A, b: B) => B) => B
  324. }
  325. /**
  326. * @category zone of death
  327. * @since 2.0.0
  328. * @deprecated
  329. */
  330. export interface FoldableComposition12C<F extends URIS, G extends URIS2, E> {
  331. readonly reduce: <A, B>(fga: Kind<F, Kind2<G, E, A>>, b: B, f: (b: B, a: A) => B) => B
  332. readonly foldMap: <M>(M: Monoid<M>) => <A>(fa: Kind<F, Kind2<G, E, A>>, f: (a: A) => M) => M
  333. readonly reduceRight: <A, B>(fa: Kind<F, Kind2<G, E, A>>, b: B, f: (a: A, b: B) => B) => B
  334. }
  335. /**
  336. * @category zone of death
  337. * @since 2.0.0
  338. * @deprecated
  339. */
  340. export interface FoldableComposition21<F extends URIS2, G extends URIS> {
  341. readonly reduce: <E, A, B>(fga: Kind2<F, E, Kind<G, A>>, b: B, f: (b: B, a: A) => B) => B
  342. readonly foldMap: <M>(M: Monoid<M>) => <E, A>(fa: Kind2<F, E, Kind<G, A>>, f: (a: A) => M) => M
  343. readonly reduceRight: <E, A, B>(fa: Kind2<F, E, Kind<G, A>>, b: B, f: (a: A, b: B) => B) => B
  344. }
  345. /**
  346. * @category zone of death
  347. * @since 2.0.0
  348. * @deprecated
  349. */
  350. export interface FoldableComposition2C1<F extends URIS2, G extends URIS, E> {
  351. readonly reduce: <A, B>(fga: Kind2<F, E, Kind<G, A>>, b: B, f: (b: B, a: A) => B) => B
  352. readonly foldMap: <M>(M: Monoid<M>) => <A>(fa: Kind2<F, E, Kind<G, A>>, f: (a: A) => M) => M
  353. readonly reduceRight: <A, B>(fa: Kind2<F, E, Kind<G, A>>, b: B, f: (a: A, b: B) => B) => B
  354. }
  355. /**
  356. * @category zone of death
  357. * @since 2.0.0
  358. * @deprecated
  359. */
  360. export interface FoldableComposition22<F extends URIS2, G extends URIS2> {
  361. readonly reduce: <FE, GE, A, B>(fga: Kind2<F, FE, Kind2<G, GE, A>>, b: B, f: (b: B, a: A) => B) => B
  362. readonly foldMap: <M>(M: Monoid<M>) => <FE, GE, A>(fa: Kind2<F, FE, Kind2<G, GE, A>>, f: (a: A) => M) => M
  363. readonly reduceRight: <FE, GE, A, B>(fa: Kind2<F, FE, Kind2<G, GE, A>>, b: B, f: (a: A, b: B) => B) => B
  364. }
  365. /**
  366. * @category zone of death
  367. * @since 2.0.0
  368. * @deprecated
  369. */
  370. export interface FoldableComposition22C<F extends URIS2, G extends URIS2, E> {
  371. readonly reduce: <FE, A, B>(fga: Kind2<F, FE, Kind2<G, E, A>>, b: B, f: (b: B, a: A) => B) => B
  372. readonly foldMap: <M>(M: Monoid<M>) => <FE, A>(fa: Kind2<F, FE, Kind2<G, E, A>>, f: (a: A) => M) => M
  373. readonly reduceRight: <FE, A, B>(fa: Kind2<F, FE, Kind2<G, E, A>>, b: B, f: (a: A, b: B) => B) => B
  374. }
  375. /**
  376. * Use
  377. *
  378. * - [reduce](#reduce)
  379. * - [foldMap](#foldmap)
  380. * - [reduceRight](#reduceright)
  381. *
  382. * instead.
  383. *
  384. * @category zone of death
  385. * @since 2.0.0
  386. * @deprecated
  387. */
  388. export declare function getFoldableComposition<F extends URIS2, G extends URIS2, E>(
  389. F: Foldable2<F>,
  390. G: Foldable2C<G, E>
  391. ): FoldableComposition22C<F, G, E>
  392. /** @deprecated */
  393. export declare function getFoldableComposition<F extends URIS2, G extends URIS2>(
  394. F: Foldable2<F>,
  395. G: Foldable2<G>
  396. ): FoldableComposition22<F, G>
  397. /** @deprecated */
  398. export declare function getFoldableComposition<F extends URIS2, G extends URIS, E>(
  399. F: Foldable2C<F, E>,
  400. G: Foldable1<G>
  401. ): FoldableComposition2C1<F, G, E>
  402. /** @deprecated */
  403. export declare function getFoldableComposition<F extends URIS2, G extends URIS>(
  404. F: Foldable2<F>,
  405. G: Foldable1<G>
  406. ): FoldableComposition21<F, G>
  407. /** @deprecated */
  408. export declare function getFoldableComposition<F extends URIS, G extends URIS2, E>(
  409. F: Foldable1<F>,
  410. G: Foldable2C<G, E>
  411. ): FoldableComposition12C<F, G, E>
  412. /** @deprecated */
  413. export declare function getFoldableComposition<F extends URIS, G extends URIS2>(
  414. F: Foldable1<F>,
  415. G: Foldable2<G>
  416. ): FoldableComposition12<F, G>
  417. /** @deprecated */
  418. export declare function getFoldableComposition<F extends URIS, G extends URIS>(
  419. F: Foldable1<F>,
  420. G: Foldable1<G>
  421. ): FoldableComposition11<F, G>
  422. /** @deprecated */
  423. export declare function getFoldableComposition<F, G>(F: Foldable<F>, G: Foldable<G>): FoldableComposition<F, G>