版博士V2.0程序
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 

62 linhas
1.5 KiB

  1. /**
  2. * The `MonadThrow` type class represents those monads which support errors via
  3. * `throwError`, where `throwError(e)` halts, yielding the error `e`.
  4. *
  5. * Laws:
  6. *
  7. * - Left zero: `M.chain(M.throwError(e), f) = M.throwError(e)`
  8. *
  9. * @since 2.0.0
  10. */
  11. import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT'
  12. import { Monad, Monad1, Monad2, Monad2C, Monad3, Monad4, Monad3C } from './Monad'
  13. /**
  14. * @category model
  15. * @since 2.0.0
  16. */
  17. export interface MonadThrow<M> extends Monad<M> {
  18. readonly throwError: <E, A>(e: E) => HKT<M, A>
  19. }
  20. /**
  21. * @category model
  22. * @since 2.0.0
  23. */
  24. export interface MonadThrow1<M extends URIS> extends Monad1<M> {
  25. readonly throwError: <E, A>(e: E) => Kind<M, A>
  26. }
  27. /**
  28. * @category model
  29. * @since 2.0.0
  30. */
  31. export interface MonadThrow2<M extends URIS2> extends Monad2<M> {
  32. readonly throwError: <E, A>(e: E) => Kind2<M, E, A>
  33. }
  34. /**
  35. * @category model
  36. * @since 2.0.0
  37. */
  38. export interface MonadThrow2C<M extends URIS2, E> extends Monad2C<M, E> {
  39. readonly throwError: <A>(e: E) => Kind2<M, E, A>
  40. }
  41. /**
  42. * @category model
  43. * @since 2.0.0
  44. */
  45. export interface MonadThrow3<M extends URIS3> extends Monad3<M> {
  46. readonly throwError: <R, E, A>(e: E) => Kind3<M, R, E, A>
  47. }
  48. /**
  49. * @category model
  50. * @since 2.2.0
  51. */
  52. export interface MonadThrow3C<M extends URIS3, E> extends Monad3C<M, E> {
  53. readonly throwError: <R, A>(e: E) => Kind3<M, R, E, A>
  54. }
  55. /**
  56. * @category model
  57. * @since 2.0.0
  58. */
  59. export interface MonadThrow4<M extends URIS4> extends Monad4<M> {
  60. readonly throwError: <S, R, E, A>(e: E) => Kind4<M, S, R, E, A>
  61. }