版博士V2.0程序
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 

548 wiersze
24 KiB

  1. /**
  2. * @since 2.0.0
  3. */
  4. import {
  5. ApplicativeComposition11,
  6. ApplicativeComposition21,
  7. ApplicativeComposition2C1,
  8. ApplicativeCompositionHKT1
  9. } from './Applicative'
  10. import { Apply, Apply1, Apply2, Apply2C, Apply3, Apply3C, Apply4 } from './Apply'
  11. import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C, Chain4 } from './Chain'
  12. import { Either } from './Either'
  13. import { Lazy } from './function'
  14. import { Functor, Functor1, Functor2, Functor2C, Functor3, Functor3C, Functor4 } from './Functor'
  15. import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT'
  16. import { Monad, Monad1, Monad2, Monad2C, Monad3, Monad3C, Monad4 } from './Monad'
  17. import * as O from './Option'
  18. import { Pointed, Pointed1, Pointed2, Pointed2C, Pointed3, Pointed3C, Pointed4 } from './Pointed'
  19. import { Predicate } from './Predicate'
  20. import { Refinement } from './Refinement'
  21. import Option = O.Option
  22. /**
  23. * @since 2.10.0
  24. */
  25. export declare function some<F extends URIS4>(F: Pointed4<F>): <A, S, R, E>(a: A) => Kind4<F, S, R, E, Option<A>>
  26. export declare function some<F extends URIS3>(F: Pointed3<F>): <A, R, E>(a: A) => Kind3<F, R, E, Option<A>>
  27. export declare function some<F extends URIS3, E>(F: Pointed3C<F, E>): <A, R>(a: A) => Kind3<F, R, E, Option<A>>
  28. export declare function some<F extends URIS2>(F: Pointed2<F>): <A, E>(a: A) => Kind2<F, E, Option<A>>
  29. export declare function some<F extends URIS2, E>(F: Pointed2C<F, E>): <A>(a: A) => Kind2<F, E, Option<A>>
  30. export declare function some<F extends URIS>(F: Pointed1<F>): <A>(a: A) => Kind<F, Option<A>>
  31. export declare function some<F>(F: Pointed<F>): <A>(a: A) => HKT<F, Option<A>>
  32. /**
  33. * @since 2.10.0
  34. */
  35. export declare function zero<F extends URIS4>(F: Pointed4<F>): <S, R, E, A>() => Kind4<F, S, R, E, Option<A>>
  36. export declare function zero<F extends URIS3>(F: Pointed3<F>): <R, E, A>() => Kind3<F, R, E, Option<A>>
  37. export declare function zero<F extends URIS3, E>(F: Pointed3C<F, E>): <R, A>() => Kind3<F, R, E, Option<A>>
  38. export declare function zero<F extends URIS2>(F: Pointed2<F>): <E, A>() => Kind2<F, E, Option<A>>
  39. export declare function zero<F extends URIS2, E>(F: Pointed2C<F, E>): <A>() => Kind2<F, E, Option<A>>
  40. export declare function zero<F extends URIS>(F: Pointed1<F>): <A>() => Kind<F, Option<A>>
  41. export declare function zero<F>(F: Pointed<F>): <A>() => HKT<F, Option<A>>
  42. /**
  43. * @since 2.10.0
  44. */
  45. export declare function fromF<F extends URIS4>(
  46. F: Functor4<F>
  47. ): <S, R, E, A>(ma: Kind4<F, S, R, E, A>) => Kind4<F, S, R, E, Option<A>>
  48. export declare function fromF<F extends URIS3>(
  49. F: Functor3<F>
  50. ): <R, E, A>(ma: Kind3<F, R, E, A>) => Kind3<F, R, E, Option<A>>
  51. export declare function fromF<F extends URIS3, E>(
  52. F: Functor3C<F, E>
  53. ): <R, A>(ma: Kind3<F, R, E, A>) => Kind3<F, R, E, Option<A>>
  54. export declare function fromF<F extends URIS2>(F: Functor2<F>): <E, A>(ma: Kind2<F, E, A>) => Kind2<F, E, Option<A>>
  55. export declare function fromF<F extends URIS2, E>(F: Functor2C<F, E>): <A>(ma: Kind2<F, E, A>) => Kind2<F, E, Option<A>>
  56. export declare function fromF<F extends URIS>(F: Functor1<F>): <A>(ma: Kind<F, A>) => Kind<F, Option<A>>
  57. export declare function fromF<F>(F: Functor<F>): <A>(ma: HKT<F, A>) => HKT<F, Option<A>>
  58. /**
  59. * @since 2.10.0
  60. */
  61. export declare function fromNullable<F extends URIS4>(
  62. F: Pointed4<F>
  63. ): <A, S, R, E>(a: A) => Kind4<F, S, R, E, Option<NonNullable<A>>>
  64. export declare function fromNullable<F extends URIS3>(
  65. F: Pointed3<F>
  66. ): <A, R, E>(a: A) => Kind3<F, R, E, Option<NonNullable<A>>>
  67. export declare function fromNullable<F extends URIS3, E>(
  68. F: Pointed3C<F, E>
  69. ): <A, R>(a: A) => Kind3<F, R, E, Option<NonNullable<A>>>
  70. export declare function fromNullable<F extends URIS2>(
  71. F: Pointed2<F>
  72. ): <A, E>(a: A) => Kind2<F, E, Option<NonNullable<A>>>
  73. export declare function fromNullable<F extends URIS2, E>(
  74. F: Pointed2C<F, E>
  75. ): <A>(a: A) => Kind2<F, E, Option<NonNullable<A>>>
  76. export declare function fromNullable<F extends URIS>(F: Pointed1<F>): <A>(a: A) => Kind<F, Option<NonNullable<A>>>
  77. export declare function fromNullable<F>(F: Pointed<F>): <A>(a: A) => HKT<F, Option<NonNullable<A>>>
  78. /**
  79. * @since 2.10.0
  80. */
  81. export declare function fromNullableK<F extends URIS4>(
  82. F: Pointed4<F>
  83. ): <A extends ReadonlyArray<unknown>, B>(
  84. f: (...a: A) => B | null | undefined
  85. ) => <S, R, E>(...a: A) => Kind4<F, S, R, E, Option<NonNullable<B>>>
  86. export declare function fromNullableK<F extends URIS3>(
  87. F: Pointed3<F>
  88. ): <A extends ReadonlyArray<unknown>, B>(
  89. f: (...a: A) => B | null | undefined
  90. ) => <R, E>(...a: A) => Kind3<F, R, E, Option<NonNullable<B>>>
  91. export declare function fromNullableK<F extends URIS3, E>(
  92. F: Pointed3C<F, E>
  93. ): <A extends ReadonlyArray<unknown>, B>(
  94. f: (...a: A) => B | null | undefined
  95. ) => <R>(...a: A) => Kind3<F, R, E, Option<NonNullable<B>>>
  96. export declare function fromNullableK<F extends URIS2>(
  97. F: Pointed2<F>
  98. ): <A extends ReadonlyArray<unknown>, B>(
  99. f: (...a: A) => B | null | undefined
  100. ) => <E>(...a: A) => Kind2<F, E, Option<NonNullable<B>>>
  101. export declare function fromNullableK<F extends URIS2, E>(
  102. F: Pointed2C<F, E>
  103. ): <A extends ReadonlyArray<unknown>, B>(
  104. f: (...a: A) => B | null | undefined
  105. ) => (...a: A) => Kind2<F, E, Option<NonNullable<B>>>
  106. export declare function fromNullableK<F extends URIS>(
  107. F: Pointed1<F>
  108. ): <A extends ReadonlyArray<unknown>, B>(
  109. f: (...a: A) => B | null | undefined
  110. ) => (...a: A) => Kind<F, Option<NonNullable<B>>>
  111. export declare function fromNullableK<F>(
  112. F: Pointed<F>
  113. ): <A extends ReadonlyArray<unknown>, B>(
  114. f: (...a: A) => B | null | undefined
  115. ) => (...a: A) => HKT<F, Option<NonNullable<B>>>
  116. /**
  117. * @since 2.10.0
  118. */
  119. export declare function chainNullableK<M extends URIS4>(
  120. M: Monad4<M>
  121. ): <A, B>(
  122. f: (a: A) => B | null | undefined
  123. ) => <S, R, E>(ma: Kind4<M, S, R, E, Option<A>>) => Kind4<M, S, R, E, Option<NonNullable<B>>>
  124. export declare function chainNullableK<M extends URIS3>(
  125. M: Monad3<M>
  126. ): <A, B>(
  127. f: (a: A) => B | null | undefined
  128. ) => <R, E>(ma: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, Option<NonNullable<B>>>
  129. export declare function chainNullableK<M extends URIS3, E>(
  130. M: Monad3C<M, E>
  131. ): <A, B>(
  132. f: (a: A) => B | null | undefined
  133. ) => <R>(ma: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, Option<NonNullable<B>>>
  134. export declare function chainNullableK<M extends URIS2>(
  135. M: Monad2<M>
  136. ): <A, B>(f: (a: A) => B | null | undefined) => <E>(ma: Kind2<M, E, Option<A>>) => Kind2<M, E, Option<NonNullable<B>>>
  137. export declare function chainNullableK<M extends URIS2, E>(
  138. M: Monad2C<M, E>
  139. ): <A, B>(f: (a: A) => B | null | undefined) => (ma: Kind2<M, E, Option<A>>) => Kind2<M, E, Option<NonNullable<B>>>
  140. export declare function chainNullableK<M extends URIS>(
  141. M: Monad1<M>
  142. ): <A, B>(f: (a: A) => B | null | undefined) => (ma: Kind<M, Option<A>>) => Kind<M, Option<NonNullable<B>>>
  143. export declare function chainNullableK<M>(
  144. M: Monad<M>
  145. ): <A, B>(f: (a: A) => B | null | undefined) => (ma: HKT<M, Option<A>>) => HKT<M, Option<NonNullable<B>>>
  146. /**
  147. * @since 2.10.0
  148. */
  149. export declare function fromOptionK<F extends URIS4>(
  150. F: Pointed4<F>
  151. ): <A extends ReadonlyArray<unknown>, B>(
  152. f: (...a: A) => Option<B>
  153. ) => <S, R, E>(...a: A) => Kind4<F, S, R, E, Option<B>>
  154. export declare function fromOptionK<F extends URIS3>(
  155. F: Pointed3<F>
  156. ): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => <R, E>(...a: A) => Kind3<F, R, E, Option<B>>
  157. export declare function fromOptionK<F extends URIS3, E>(
  158. F: Pointed3C<F, E>
  159. ): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => <R>(...a: A) => Kind3<F, R, E, Option<B>>
  160. export declare function fromOptionK<F extends URIS2>(
  161. F: Pointed2<F>
  162. ): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => <E>(...a: A) => Kind2<F, E, Option<B>>
  163. export declare function fromOptionK<F extends URIS2, E>(
  164. F: Pointed2C<F, E>
  165. ): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => Kind2<F, E, Option<B>>
  166. export declare function fromOptionK<F extends URIS>(
  167. F: Pointed1<F>
  168. ): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => Kind<F, Option<B>>
  169. export declare function fromOptionK<F>(
  170. F: Pointed<F>
  171. ): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Option<B>) => (...a: A) => HKT<F, Option<B>>
  172. /**
  173. * @since 2.10.0
  174. */
  175. export declare function chainOptionK<M extends URIS4>(
  176. M: Monad4<M>
  177. ): <A, B>(f: (a: A) => Option<B>) => <S, R, E>(ma: Kind4<M, S, R, E, Option<A>>) => Kind4<M, S, R, E, Option<B>>
  178. export declare function chainOptionK<M extends URIS3>(
  179. M: Monad3<M>
  180. ): <A, B>(f: (a: A) => Option<B>) => <R, E>(ma: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, Option<B>>
  181. export declare function chainOptionK<M extends URIS3, E>(
  182. M: Monad3C<M, E>
  183. ): <A, B>(f: (a: A) => Option<B>) => <R>(ma: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, Option<B>>
  184. export declare function chainOptionK<M extends URIS2>(
  185. M: Monad2<M>
  186. ): <A, B>(f: (a: A) => Option<B>) => <E>(ma: Kind2<M, E, Option<A>>) => Kind2<M, E, Option<B>>
  187. export declare function chainOptionK<M extends URIS2, E>(
  188. M: Monad2C<M, E>
  189. ): <A, B>(f: (a: A) => Option<B>) => (ma: Kind2<M, E, Option<A>>) => Kind2<M, E, Option<B>>
  190. export declare function chainOptionK<M extends URIS>(
  191. M: Monad1<M>
  192. ): <A, B>(f: (a: A) => Option<B>) => (ma: Kind<M, Option<A>>) => Kind<M, Option<B>>
  193. export declare function chainOptionK<M>(
  194. M: Monad<M>
  195. ): <A, B>(f: (a: A) => Option<B>) => (ma: HKT<M, Option<A>>) => HKT<M, Option<B>>
  196. /**
  197. * @category lifting
  198. * @since 2.10.0
  199. */
  200. export declare function fromPredicate<F extends URIS4>(
  201. F: Pointed4<F>
  202. ): {
  203. <A, B extends A>(refinement: Refinement<A, B>): <S, R, E>(a: A) => Kind4<F, S, R, E, Option<B>>
  204. <A>(predicate: Predicate<A>): <S, R, E, B extends A>(b: B) => Kind4<F, S, R, E, Option<B>>
  205. <A>(predicate: Predicate<A>): <S, R, E>(a: A) => Kind4<F, S, R, E, Option<A>>
  206. }
  207. export declare function fromPredicate<F extends URIS3>(
  208. F: Pointed3<F>
  209. ): {
  210. <A, B extends A>(refinement: Refinement<A, B>): <R, E>(a: A) => Kind3<F, R, E, Option<B>>
  211. <A>(predicate: Predicate<A>): <R, E, B extends A>(b: B) => Kind3<F, R, E, Option<B>>
  212. <A>(predicate: Predicate<A>): <R, E>(a: A) => Kind3<F, R, E, Option<A>>
  213. }
  214. export declare function fromPredicate<F extends URIS3, E>(
  215. F: Pointed3C<F, E>
  216. ): {
  217. <A, B extends A>(refinement: Refinement<A, B>): <R>(a: A) => Kind3<F, R, E, Option<B>>
  218. <A>(predicate: Predicate<A>): <R, B extends A>(b: B) => Kind3<F, R, E, Option<B>>
  219. <A>(predicate: Predicate<A>): <R>(a: A) => Kind3<F, R, E, Option<A>>
  220. }
  221. export declare function fromPredicate<F extends URIS2>(
  222. F: Pointed2<F>
  223. ): {
  224. <A, B extends A>(refinement: Refinement<A, B>): <E>(a: A) => Kind2<F, E, Option<B>>
  225. <A>(predicate: Predicate<A>): <E, B extends A>(b: B) => Kind2<F, E, Option<B>>
  226. <A>(predicate: Predicate<A>): <E>(a: A) => Kind2<F, E, Option<A>>
  227. }
  228. export declare function fromPredicate<F extends URIS2, E>(
  229. F: Pointed2C<F, E>
  230. ): {
  231. <A, B extends A>(refinement: Refinement<A, B>): (a: A) => Kind2<F, E, Option<B>>
  232. <A>(predicate: Predicate<A>): <B extends A>(b: B) => Kind2<F, E, Option<B>>
  233. <A>(predicate: Predicate<A>): (a: A) => Kind2<F, E, Option<A>>
  234. }
  235. export declare function fromPredicate<F extends URIS>(
  236. F: Pointed1<F>
  237. ): {
  238. <A, B extends A>(refinement: Refinement<A, B>): (a: A) => Kind<F, Option<B>>
  239. <A>(predicate: Predicate<A>): <B extends A>(b: B) => Kind<F, Option<B>>
  240. <A>(predicate: Predicate<A>): (a: A) => Kind<F, Option<A>>
  241. }
  242. export declare function fromPredicate<F>(F: Pointed<F>): {
  243. <A, B extends A>(refinement: Refinement<A, B>): (a: A) => HKT<F, Option<B>>
  244. <A>(predicate: Predicate<A>): <B extends A>(b: B) => HKT<F, Option<B>>
  245. <A>(predicate: Predicate<A>): (a: A) => HKT<F, Option<A>>
  246. }
  247. /**
  248. * @since 2.10.0
  249. */
  250. export declare function fromEither<F extends URIS4>(
  251. F: Pointed4<F>
  252. ): <A, S, R, E>(e: Either<unknown, A>) => Kind4<F, S, R, E, Option<A>>
  253. export declare function fromEither<F extends URIS3>(
  254. F: Pointed3<F>
  255. ): <A, R, E>(e: Either<unknown, A>) => Kind3<F, R, E, Option<A>>
  256. export declare function fromEither<F extends URIS3, E>(
  257. F: Pointed3C<F, E>
  258. ): <A, R>(e: Either<unknown, A>) => Kind3<F, R, E, Option<A>>
  259. export declare function fromEither<F extends URIS2>(
  260. F: Pointed2<F>
  261. ): <A, E>(e: Either<unknown, A>) => Kind2<F, E, Option<A>>
  262. export declare function fromEither<F extends URIS2, E>(
  263. F: Pointed2C<F, E>
  264. ): <A>(e: Either<unknown, A>) => Kind2<F, E, Option<A>>
  265. export declare function fromEither<F extends URIS2, E>(
  266. F: Pointed2C<F, E>
  267. ): <A>(e: Either<unknown, A>) => Kind2<F, E, Option<A>>
  268. export declare function fromEither<F extends URIS>(F: Pointed1<F>): <A>(e: Either<unknown, A>) => Kind<F, Option<A>>
  269. export declare function fromEither<F>(F: Pointed<F>): <A>(e: Either<unknown, A>) => HKT<F, Option<A>>
  270. /**
  271. * @category pattern matching
  272. * @since 2.10.0
  273. */
  274. export declare function match<F extends URIS4>(
  275. F: Functor4<F>
  276. ): <B, A>(onNone: () => B, onSome: (a: A) => B) => <S, R, E>(ma: Kind4<F, S, R, E, Option<A>>) => Kind4<F, S, R, E, B>
  277. export declare function match<F extends URIS3>(
  278. F: Functor3<F>
  279. ): <B, A>(onNone: () => B, onSome: (a: A) => B) => <R, E>(ma: Kind3<F, R, E, Option<A>>) => Kind3<F, R, E, B>
  280. export declare function match<F extends URIS3, E>(
  281. F: Functor3C<F, E>
  282. ): <B, A>(onNone: () => B, onSome: (a: A) => B) => <R>(ma: Kind3<F, R, E, Option<A>>) => Kind3<F, R, E, B>
  283. export declare function match<F extends URIS2>(
  284. F: Functor2<F>
  285. ): <B, A>(onNone: () => B, onSome: (a: A) => B) => <E>(ma: Kind2<F, E, Option<A>>) => Kind2<F, E, B>
  286. export declare function match<F extends URIS2, E>(
  287. F: Functor2C<F, E>
  288. ): <B, A>(onNone: () => B, onSome: (a: A) => B) => (ma: Kind2<F, E, Option<A>>) => Kind2<F, E, B>
  289. export declare function match<F extends URIS>(
  290. F: Functor1<F>
  291. ): <B, A>(onNone: () => B, onSome: (a: A) => B) => (ma: Kind<F, Option<A>>) => Kind<F, B>
  292. export declare function match<F>(
  293. F: Functor<F>
  294. ): <B, A>(onNone: () => B, onSome: (a: A) => B) => (ma: HKT<F, Option<A>>) => HKT<F, B>
  295. /**
  296. * @since 2.10.0
  297. */
  298. export declare function matchE<M extends URIS4>(
  299. M: Chain4<M>
  300. ): <S, R, E, B, A>(
  301. onNone: () => Kind4<M, S, R, E, B>,
  302. onSome: (a: A) => Kind4<M, S, R, E, B>
  303. ) => (ma: Kind4<M, S, R, E, Option<A>>) => Kind4<M, S, R, E, B>
  304. export declare function matchE<M extends URIS3>(
  305. M: Chain3<M>
  306. ): <R, E, B, A>(
  307. onNone: () => Kind3<M, R, E, B>,
  308. onSome: (a: A) => Kind3<M, R, E, B>
  309. ) => (ma: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, B>
  310. export declare function matchE<M extends URIS3, E>(
  311. M: Chain3C<M, E>
  312. ): <R, B, A>(
  313. onNone: () => Kind3<M, R, E, B>,
  314. onSome: (a: A) => Kind3<M, R, E, B>
  315. ) => (ma: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, B>
  316. export declare function matchE<M extends URIS2>(
  317. M: Chain2<M>
  318. ): <E, B, A>(
  319. onNone: () => Kind2<M, E, B>,
  320. onSome: (a: A) => Kind2<M, E, B>
  321. ) => (ma: Kind2<M, E, Option<A>>) => Kind2<M, E, B>
  322. export declare function matchE<M extends URIS2, E>(
  323. M: Chain2C<M, E>
  324. ): <B, A>(
  325. onNone: () => Kind2<M, E, B>,
  326. onSome: (a: A) => Kind2<M, E, B>
  327. ) => (ma: Kind2<M, E, Option<A>>) => Kind2<M, E, B>
  328. export declare function matchE<M extends URIS>(
  329. M: Chain1<M>
  330. ): <B, A>(onNone: () => Kind<M, B>, onSome: (a: A) => Kind<M, B>) => (ma: Kind<M, Option<A>>) => Kind<M, B>
  331. export declare function matchE<M>(
  332. M: Chain<M>
  333. ): <B, A>(onNone: () => HKT<M, B>, onSome: (a: A) => HKT<M, B>) => (ma: HKT<M, Option<A>>) => HKT<M, B>
  334. /**
  335. * @since 2.10.0
  336. */
  337. export declare function getOrElse<M extends URIS4>(
  338. M: Monad4<M>
  339. ): <S, R, E, A>(onNone: Lazy<Kind4<M, S, R, E, A>>) => (fa: Kind4<M, S, R, E, Option<A>>) => Kind4<M, S, R, E, A>
  340. export declare function getOrElse<M extends URIS3>(
  341. M: Monad3<M>
  342. ): <R, E, A>(onNone: Lazy<Kind3<M, R, E, A>>) => (fa: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, A>
  343. export declare function getOrElse<M extends URIS3, E>(
  344. M: Monad3C<M, E>
  345. ): <R, A>(onNone: Lazy<Kind3<M, R, E, A>>) => (fa: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, A>
  346. export declare function getOrElse<M extends URIS2>(
  347. M: Monad2<M>
  348. ): <E, A>(onNone: Lazy<Kind2<M, E, A>>) => (fa: Kind2<M, E, Option<A>>) => Kind2<M, E, A>
  349. export declare function getOrElse<M extends URIS2, E>(
  350. M: Monad2C<M, E>
  351. ): <A>(onNone: Lazy<Kind2<M, E, A>>) => (fa: Kind2<M, E, Option<A>>) => Kind2<M, E, A>
  352. export declare function getOrElse<M extends URIS>(
  353. M: Monad1<M>
  354. ): <A>(onNone: Lazy<Kind<M, A>>) => (fa: Kind<M, Option<A>>) => Kind<M, A>
  355. export declare function getOrElse<M>(M: Monad<M>): <A>(onNone: Lazy<HKT<M, A>>) => (fa: HKT<M, Option<A>>) => HKT<M, A>
  356. /**
  357. * @since 2.10.0
  358. */
  359. export declare function map<F extends URIS4>(
  360. F: Functor4<F>
  361. ): <A, B>(f: (a: A) => B) => <S, R, E>(fa: Kind4<F, S, R, E, Option<A>>) => Kind4<F, S, R, E, Option<B>>
  362. export declare function map<F extends URIS3>(
  363. F: Functor3<F>
  364. ): <A, B>(f: (a: A) => B) => <R, E>(fa: Kind3<F, R, E, Option<A>>) => Kind3<F, R, E, Option<B>>
  365. export declare function map<F extends URIS3, E>(
  366. F: Functor3C<F, E>
  367. ): <A, B>(f: (a: A) => B) => <R>(fa: Kind3<F, R, E, Option<A>>) => Kind3<F, R, E, Option<B>>
  368. export declare function map<F extends URIS2>(
  369. F: Functor2<F>
  370. ): <A, B>(f: (a: A) => B) => <E>(fa: Kind2<F, E, Option<A>>) => Kind2<F, E, Option<B>>
  371. export declare function map<F extends URIS2, E>(
  372. F: Functor2C<F, E>
  373. ): <A, B>(f: (a: A) => B) => (fa: Kind2<F, E, Option<A>>) => Kind2<F, E, Option<B>>
  374. export declare function map<F extends URIS>(
  375. F: Functor1<F>
  376. ): <A, B>(f: (a: A) => B) => (fa: Kind<F, Option<A>>) => Kind<F, Option<B>>
  377. export declare function map<F>(F: Functor<F>): <A, B>(f: (a: A) => B) => (fa: HKT<F, Option<A>>) => HKT<F, Option<B>>
  378. /**
  379. * @since 2.10.0
  380. */
  381. export declare function ap<F extends URIS4>(
  382. F: Apply4<F>
  383. ): <S, R, E, A>(
  384. fa: Kind4<F, S, R, E, Option<A>>
  385. ) => <B>(fab: Kind4<F, S, R, E, Option<(a: A) => B>>) => Kind4<F, S, R, E, Option<B>>
  386. export declare function ap<F extends URIS3>(
  387. F: Apply3<F>
  388. ): <R, E, A>(
  389. fa: Kind3<F, R, E, Option<A>>
  390. ) => <B>(fab: Kind3<F, R, E, Option<(a: A) => B>>) => Kind3<F, R, E, Option<B>>
  391. export declare function ap<F extends URIS3, E>(
  392. F: Apply3C<F, E>
  393. ): <R, A>(fa: Kind3<F, R, E, Option<A>>) => <B>(fab: Kind3<F, R, E, Option<(a: A) => B>>) => Kind3<F, R, E, Option<B>>
  394. export declare function ap<F extends URIS2>(
  395. F: Apply2<F>
  396. ): <E, A>(fa: Kind2<F, E, Option<A>>) => <B>(fab: Kind2<F, E, Option<(a: A) => B>>) => Kind2<F, E, Option<B>>
  397. export declare function ap<F extends URIS2, E>(
  398. F: Apply2C<F, E>
  399. ): <A>(fa: Kind2<F, E, Option<A>>) => <B>(fab: Kind2<F, E, Option<(a: A) => B>>) => Kind2<F, E, Option<B>>
  400. export declare function ap<F extends URIS>(
  401. F: Apply1<F>
  402. ): <A>(fa: Kind<F, Option<A>>) => <B>(fab: Kind<F, Option<(a: A) => B>>) => Kind<F, Option<B>>
  403. export declare function ap<F>(
  404. F: Apply<F>
  405. ): <A>(fa: HKT<F, Option<A>>) => <B>(fab: HKT<F, Option<(a: A) => B>>) => HKT<F, Option<B>>
  406. /**
  407. * @since 2.10.0
  408. */
  409. export declare function chain<M extends URIS4>(
  410. M: Monad4<M>
  411. ): <A, S, R, E, B>(
  412. f: (a: A) => Kind4<M, S, R, E, Option<B>>
  413. ) => (ma: Kind4<M, S, R, E, Option<A>>) => Kind4<M, S, R, E, Option<B>>
  414. export declare function chain<M extends URIS3>(
  415. M: Monad3<M>
  416. ): <A, R, E, B>(f: (a: A) => Kind3<M, R, E, Option<B>>) => (ma: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, Option<B>>
  417. export declare function chain<M extends URIS3, E>(
  418. M: Monad3C<M, E>
  419. ): <A, R, B>(f: (a: A) => Kind3<M, R, E, Option<B>>) => (ma: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, Option<B>>
  420. export declare function chain<M extends URIS2>(
  421. M: Monad2<M>
  422. ): <A, E, B>(f: (a: A) => Kind2<M, E, Option<B>>) => (ma: Kind2<M, E, Option<A>>) => Kind2<M, E, Option<B>>
  423. export declare function chain<M extends URIS2, E>(
  424. M: Monad2C<M, E>
  425. ): <A, B>(f: (a: A) => Kind2<M, E, Option<B>>) => (ma: Kind2<M, E, Option<A>>) => Kind2<M, E, Option<B>>
  426. export declare function chain<M extends URIS>(
  427. M: Monad1<M>
  428. ): <A, B>(f: (a: A) => Kind<M, Option<B>>) => (ma: Kind<M, Option<A>>) => Kind<M, Option<B>>
  429. export declare function chain<M>(
  430. M: Monad<M>
  431. ): <A, B>(f: (a: A) => HKT<M, Option<B>>) => (ma: HKT<M, Option<A>>) => HKT<M, Option<B>>
  432. /**
  433. * @since 2.10.0
  434. */
  435. export declare function alt<M extends URIS4>(
  436. M: Monad4<M>
  437. ): <S, R, E, A>(
  438. second: Lazy<Kind4<M, S, R, E, Option<A>>>
  439. ) => (first: Kind4<M, S, R, E, Option<A>>) => Kind4<M, S, R, E, Option<A>>
  440. export declare function alt<M extends URIS3>(
  441. M: Monad3<M>
  442. ): <R, E, A>(second: Lazy<Kind3<M, R, E, Option<A>>>) => (first: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, Option<A>>
  443. export declare function alt<M extends URIS3, E>(
  444. M: Monad3C<M, E>
  445. ): <R, A>(second: Lazy<Kind3<M, R, E, Option<A>>>) => (first: Kind3<M, R, E, Option<A>>) => Kind3<M, R, E, Option<A>>
  446. export declare function alt<M extends URIS2>(
  447. M: Monad2<M>
  448. ): <E, A>(second: Lazy<Kind2<M, E, Option<A>>>) => (first: Kind2<M, E, Option<A>>) => Kind2<M, E, Option<A>>
  449. export declare function alt<M extends URIS2, E>(
  450. M: Monad2C<M, E>
  451. ): <A>(second: Lazy<Kind2<M, E, Option<A>>>) => (first: Kind2<M, E, Option<A>>) => Kind2<M, E, Option<A>>
  452. export declare function alt<M extends URIS>(
  453. M: Monad1<M>
  454. ): <A>(second: Lazy<Kind<M, Option<A>>>) => (first: Kind<M, Option<A>>) => Kind<M, Option<A>>
  455. export declare function alt<M>(
  456. M: Monad<M>
  457. ): <A>(second: Lazy<HKT<M, Option<A>>>) => (first: HKT<M, Option<A>>) => HKT<M, Option<A>>
  458. /**
  459. * @category zone of death
  460. * @since 2.0.0
  461. * @deprecated
  462. */
  463. export interface OptionT<M, A> extends HKT<M, Option<A>> {}
  464. /**
  465. * @category zone of death
  466. * @since 2.0.0
  467. * @deprecated
  468. */
  469. export interface OptionM<M> extends ApplicativeCompositionHKT1<M, O.URI> {
  470. readonly chain: <A, B>(ma: OptionT<M, A>, f: (a: A) => OptionT<M, B>) => OptionT<M, B>
  471. readonly alt: <A>(fa: OptionT<M, A>, that: Lazy<OptionT<M, A>>) => OptionT<M, A>
  472. readonly fold: <A, R>(ma: OptionT<M, A>, onNone: Lazy<HKT<M, R>>, onSome: (a: A) => HKT<M, R>) => HKT<M, R>
  473. readonly getOrElse: <A>(ma: OptionT<M, A>, onNone: Lazy<HKT<M, A>>) => HKT<M, A>
  474. readonly fromM: <A>(ma: HKT<M, A>) => OptionT<M, A>
  475. readonly none: <A = never>() => OptionT<M, A>
  476. }
  477. /**
  478. * @category zone of death
  479. * @since 2.0.0
  480. * @deprecated
  481. */
  482. export declare type OptionT1<M extends URIS, A> = Kind<M, Option<A>>
  483. /**
  484. * @category zone of death
  485. * @since 2.0.0
  486. * @deprecated
  487. */
  488. export interface OptionM1<M extends URIS> extends ApplicativeComposition11<M, O.URI> {
  489. readonly chain: <A, B>(ma: OptionT1<M, A>, f: (a: A) => OptionT1<M, B>) => OptionT1<M, B>
  490. readonly alt: <A>(fa: OptionT1<M, A>, that: Lazy<OptionT1<M, A>>) => OptionT1<M, A>
  491. readonly fold: <A, R>(ma: OptionT1<M, A>, onNone: Lazy<Kind<M, R>>, onSome: (a: A) => Kind<M, R>) => Kind<M, R>
  492. readonly getOrElse: <A>(ma: OptionT1<M, A>, onNone: Lazy<Kind<M, A>>) => Kind<M, A>
  493. readonly fromM: <A>(ma: Kind<M, A>) => OptionT1<M, A>
  494. readonly none: <A = never>() => OptionT1<M, A>
  495. }
  496. /**
  497. * @category zone of death
  498. * @since 2.0.0
  499. * @deprecated
  500. */
  501. export declare type OptionT2<M extends URIS2, E, A> = Kind2<M, E, Option<A>>
  502. /**
  503. * @category zone of death
  504. * @since 2.0.0
  505. * @deprecated
  506. */
  507. export interface OptionM2<M extends URIS2> extends ApplicativeComposition21<M, O.URI> {
  508. readonly chain: <E, A, B>(ma: OptionT2<M, E, A>, f: (a: A) => OptionT2<M, E, B>) => OptionT2<M, E, B>
  509. readonly alt: <E, A>(fa: OptionT2<M, E, A>, that: Lazy<OptionT2<M, E, A>>) => OptionT2<M, E, A>
  510. readonly fold: <E, A, R>(
  511. ma: OptionT2<M, E, A>,
  512. onNone: Lazy<Kind2<M, E, R>>,
  513. onSome: (a: A) => Kind2<M, E, R>
  514. ) => Kind2<M, E, R>
  515. readonly getOrElse: <E, A>(ma: OptionT2<M, E, A>, onNone: Lazy<Kind2<M, E, A>>) => Kind2<M, E, A>
  516. readonly fromM: <E, A>(ma: Kind2<M, E, A>) => OptionT2<M, E, A>
  517. readonly none: <E = never, A = never>() => OptionT2<M, E, A>
  518. }
  519. /**
  520. * @category zone of death
  521. * @since 2.2.0
  522. * @deprecated
  523. */
  524. export interface OptionM2C<M extends URIS2, E> extends ApplicativeComposition2C1<M, O.URI, E> {
  525. readonly chain: <A, B>(ma: OptionT2<M, E, A>, f: (a: A) => OptionT2<M, E, B>) => OptionT2<M, E, B>
  526. readonly alt: <A>(fa: OptionT2<M, E, A>, that: Lazy<OptionT2<M, E, A>>) => OptionT2<M, E, A>
  527. readonly fold: <A, R>(
  528. ma: OptionT2<M, E, A>,
  529. onNone: Lazy<Kind2<M, E, R>>,
  530. onSome: (a: A) => Kind2<M, E, R>
  531. ) => Kind2<M, E, R>
  532. readonly getOrElse: <A>(ma: OptionT2<M, E, A>, onNone: Lazy<Kind2<M, E, A>>) => Kind2<M, E, A>
  533. readonly fromM: <A>(ma: Kind2<M, E, A>) => OptionT2<M, E, A>
  534. readonly none: <A = never>() => OptionT2<M, E, A>
  535. }
  536. /**
  537. * @category zone of death
  538. * @since 2.0.0
  539. * @deprecated
  540. */
  541. export declare function getOptionM<M extends URIS2>(M: Monad2<M>): OptionM2<M>
  542. /** @deprecated */
  543. export declare function getOptionM<M extends URIS2, E>(M: Monad2C<M, E>): OptionM2C<M, E>
  544. /** @deprecated */
  545. export declare function getOptionM<M extends URIS>(M: Monad1<M>): OptionM1<M>
  546. /** @deprecated */
  547. export declare function getOptionM<M>(M: Monad<M>): OptionM<M>