版博士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 година
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. /**
  2. * Lift a computation from the `Task` monad
  3. *
  4. * @since 2.10.0
  5. */
  6. import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C, Chain4 } from './Chain'
  7. import { FromIO, FromIO1, FromIO2, FromIO2C, FromIO3, FromIO3C, FromIO4 } from './FromIO'
  8. import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT'
  9. import { Task } from './Task'
  10. /**
  11. * @category model
  12. * @since 2.10.0
  13. */
  14. export interface FromTask<F> extends FromIO<F> {
  15. readonly fromTask: <A>(fa: Task<A>) => HKT<F, A>
  16. }
  17. /**
  18. * @category model
  19. * @since 2.10.0
  20. */
  21. export interface FromTask1<F extends URIS> extends FromIO1<F> {
  22. readonly fromTask: <A>(fa: Task<A>) => Kind<F, A>
  23. }
  24. /**
  25. * @category model
  26. * @since 2.10.0
  27. */
  28. export interface FromTask2<F extends URIS2> extends FromIO2<F> {
  29. readonly fromTask: <A, E>(fa: Task<A>) => Kind2<F, E, A>
  30. }
  31. /**
  32. * @category model
  33. * @since 2.10.0
  34. */
  35. export interface FromTask2C<F extends URIS2, E> extends FromIO2C<F, E> {
  36. readonly fromTask: <A>(fa: Task<A>) => Kind2<F, E, A>
  37. }
  38. /**
  39. * @category model
  40. * @since 2.10.0
  41. */
  42. export interface FromTask3<F extends URIS3> extends FromIO3<F> {
  43. readonly fromTask: <A, R, E>(fa: Task<A>) => Kind3<F, R, E, A>
  44. }
  45. /**
  46. * @category model
  47. * @since 2.10.0
  48. */
  49. export interface FromTask3C<F extends URIS3, E> extends FromIO3C<F, E> {
  50. readonly fromTask: <A, R>(fa: Task<A>) => Kind3<F, R, E, A>
  51. }
  52. /**
  53. * @category model
  54. * @since 2.10.0
  55. */
  56. export interface FromTask4<F extends URIS4> extends FromIO4<F> {
  57. readonly fromTask: <A, S, R, E>(fa: Task<A>) => Kind4<F, S, R, E, A>
  58. }
  59. /**
  60. * @since 2.10.0
  61. */
  62. export declare function fromTaskK<F extends URIS4>(
  63. F: FromTask4<F>
  64. ): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Task<B>) => <S, R, E>(...a: A) => Kind4<F, S, R, E, B>
  65. export declare function fromTaskK<F extends URIS3>(
  66. F: FromTask3<F>
  67. ): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Task<B>) => <R, E>(...a: A) => Kind3<F, R, E, B>
  68. export declare function fromTaskK<F extends URIS3, E>(
  69. F: FromTask3C<F, E>
  70. ): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Task<B>) => <R>(...a: A) => Kind3<F, R, E, B>
  71. export declare function fromTaskK<F extends URIS2>(
  72. F: FromTask2<F>
  73. ): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Task<B>) => <E>(...a: A) => Kind2<F, E, B>
  74. export declare function fromTaskK<F extends URIS2, E>(
  75. F: FromTask2C<F, E>
  76. ): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Task<B>) => (...a: A) => Kind2<F, E, B>
  77. export declare function fromTaskK<F extends URIS>(
  78. F: FromTask1<F>
  79. ): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Task<B>) => (...a: A) => Kind<F, B>
  80. export declare function fromTaskK<F>(
  81. F: FromTask<F>
  82. ): <A extends ReadonlyArray<unknown>, B>(f: (...a: A) => Task<B>) => (...a: A) => HKT<F, B>
  83. /**
  84. * @since 2.10.0
  85. */
  86. export declare function chainTaskK<M extends URIS4>(
  87. F: FromTask4<M>,
  88. M: Chain4<M>
  89. ): <A, B>(f: (a: A) => Task<B>) => <S, R, E>(first: Kind4<M, S, R, E, A>) => Kind4<M, S, R, E, B>
  90. export declare function chainTaskK<M extends URIS3>(
  91. F: FromTask3<M>,
  92. M: Chain3<M>
  93. ): <A, B>(f: (a: A) => Task<B>) => <R, E>(first: Kind3<M, R, E, A>) => Kind3<M, R, E, B>
  94. export declare function chainTaskK<M extends URIS3, E>(
  95. F: FromTask3C<M, E>,
  96. M: Chain3C<M, E>
  97. ): <A, B>(f: (a: A) => Task<B>) => <R>(first: Kind3<M, R, E, A>) => Kind3<M, R, E, B>
  98. export declare function chainTaskK<M extends URIS2>(
  99. F: FromTask2<M>,
  100. M: Chain2<M>
  101. ): <A, B>(f: (a: A) => Task<B>) => <E>(first: Kind2<M, E, A>) => Kind2<M, E, B>
  102. export declare function chainTaskK<M extends URIS2, E>(
  103. F: FromTask2C<M, E>,
  104. M: Chain2C<M, E>
  105. ): <A, B>(f: (a: A) => Task<B>) => (first: Kind2<M, E, A>) => Kind2<M, E, B>
  106. export declare function chainTaskK<M extends URIS>(
  107. F: FromTask1<M>,
  108. M: Chain1<M>
  109. ): <A, B>(f: (a: A) => Task<B>) => (first: Kind<M, A>) => Kind<M, B>
  110. export declare function chainTaskK<M>(
  111. F: FromTask<M>,
  112. M: Chain<M>
  113. ): <A, B>(f: (a: A) => Task<B>) => (first: HKT<M, A>) => HKT<M, B>
  114. /**
  115. * @since 2.10.0
  116. */
  117. export declare function chainFirstTaskK<M extends URIS4>(
  118. F: FromTask4<M>,
  119. M: Chain4<M>
  120. ): <A, B>(f: (a: A) => Task<B>) => <S, R, E>(first: Kind4<M, S, R, E, A>) => Kind4<M, S, R, E, A>
  121. export declare function chainFirstTaskK<M extends URIS3>(
  122. F: FromTask3<M>,
  123. M: Chain3<M>
  124. ): <A, B>(f: (a: A) => Task<B>) => <R, E>(first: Kind3<M, R, E, A>) => Kind3<M, R, E, A>
  125. export declare function chainFirstTaskK<M extends URIS3, E>(
  126. F: FromTask3C<M, E>,
  127. M: Chain3C<M, E>
  128. ): <A, B>(f: (a: A) => Task<B>) => <R>(first: Kind3<M, R, E, A>) => Kind3<M, R, E, A>
  129. export declare function chainFirstTaskK<M extends URIS2>(
  130. F: FromTask2<M>,
  131. M: Chain2<M>
  132. ): <A, B>(f: (a: A) => Task<B>) => <E>(first: Kind2<M, E, A>) => Kind2<M, E, A>
  133. export declare function chainFirstTaskK<M extends URIS2, E>(
  134. F: FromTask2C<M, E>,
  135. M: Chain2C<M, E>
  136. ): <A, B>(f: (a: A) => Task<B>) => (first: Kind2<M, E, A>) => Kind2<M, E, A>
  137. export declare function chainFirstTaskK<M extends URIS>(
  138. F: FromTask1<M>,
  139. M: Chain1<M>
  140. ): <A, B>(f: (a: A) => Task<B>) => (first: Kind<M, A>) => Kind<M, A>
  141. export declare function chainFirstTaskK<M>(
  142. F: FromTask<M>,
  143. M: Chain<M>
  144. ): <A, B>(f: (a: A) => Task<B>) => (first: HKT<M, A>) => HKT<M, A>