版博士V2.0程序
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 
 

60 rindas
1.7 KiB

  1. /**
  2. * @since 2.0.0
  3. */
  4. import { Chain, Chain1, Chain2, Chain2C, Chain3, Chain3C, Chain4 } from './Chain'
  5. import { Either } from './Either'
  6. import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT'
  7. /**
  8. * @category model
  9. * @since 2.0.0
  10. */
  11. export interface ChainRec<F> extends Chain<F> {
  12. readonly chainRec: <A, B>(a: A, f: (a: A) => HKT<F, Either<A, B>>) => HKT<F, B>
  13. }
  14. /**
  15. * @category model
  16. * @since 2.0.0
  17. */
  18. export interface ChainRec1<F extends URIS> extends Chain1<F> {
  19. readonly chainRec: <A, B>(a: A, f: (a: A) => Kind<F, Either<A, B>>) => Kind<F, B>
  20. }
  21. /**
  22. * @category model
  23. * @since 2.0.0
  24. */
  25. export interface ChainRec2<F extends URIS2> extends Chain2<F> {
  26. readonly chainRec: <E, A, B>(a: A, f: (a: A) => Kind2<F, E, Either<A, B>>) => Kind2<F, E, B>
  27. }
  28. /**
  29. * @category model
  30. * @since 2.0.0
  31. */
  32. export interface ChainRec2C<F extends URIS2, E> extends Chain2C<F, E> {
  33. readonly chainRec: <A, B>(a: A, f: (a: A) => Kind2<F, E, Either<A, B>>) => Kind2<F, E, B>
  34. }
  35. /**
  36. * @category model
  37. * @since 2.0.0
  38. */
  39. export interface ChainRec3<F extends URIS3> extends Chain3<F> {
  40. readonly chainRec: <R, E, A, B>(a: A, f: (a: A) => Kind3<F, R, E, Either<A, B>>) => Kind3<F, R, E, B>
  41. }
  42. /**
  43. * @category model
  44. * @since 2.10.0
  45. */
  46. export interface ChainRec3C<F extends URIS3, E> extends Chain3C<F, E> {
  47. readonly chainRec: <R, A, B>(a: A, f: (a: A) => Kind3<F, R, E, Either<A, B>>) => Kind3<F, R, E, B>
  48. }
  49. /**
  50. * @category model
  51. * @since 2.10.0
  52. */
  53. export interface ChainRec4<F extends URIS4> extends Chain4<F> {
  54. readonly chainRec: <S, R, E, A, B>(a: A, f: (a: A) => Kind4<F, S, R, E, Either<A, B>>) => Kind4<F, S, R, E, B>
  55. }
  56. /**
  57. * @since 2.0.0
  58. */
  59. export declare const tailRec: <A, B>(startWith: A, f: (a: A) => Either<A, B>) => B