版博士V2.0程序
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Contravariant.d.ts 1.5 KiB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /**
  2. * @since 2.0.0
  3. */
  4. import { HKT, Kind, Kind2, Kind3, URIS, URIS2, URIS3, URIS4, Kind4 } from './HKT'
  5. /**
  6. * @category model
  7. * @since 2.0.0
  8. */
  9. export interface Contravariant<F> {
  10. readonly URI: F
  11. readonly contramap: <A, B>(fa: HKT<F, A>, f: (b: B) => A) => HKT<F, B>
  12. }
  13. /**
  14. * @category model
  15. * @since 2.0.0
  16. */
  17. export interface Contravariant1<F extends URIS> {
  18. readonly URI: F
  19. readonly contramap: <A, B>(fa: Kind<F, A>, f: (b: B) => A) => Kind<F, B>
  20. }
  21. /**
  22. * @category model
  23. * @since 2.0.0
  24. */
  25. export interface Contravariant2<F extends URIS2> {
  26. readonly URI: F
  27. readonly contramap: <E, A, B>(fa: Kind2<F, E, A>, f: (b: B) => A) => Kind2<F, E, B>
  28. }
  29. /**
  30. * @category model
  31. * @since 2.0.0
  32. */
  33. export interface Contravariant2C<F extends URIS2, E> {
  34. readonly URI: F
  35. readonly _E: E
  36. readonly contramap: <A, B>(fa: Kind2<F, E, A>, f: (b: B) => A) => Kind2<F, E, B>
  37. }
  38. /**
  39. * @category model
  40. * @since 2.0.0
  41. */
  42. export interface Contravariant3<F extends URIS3> {
  43. readonly URI: F
  44. readonly contramap: <R, E, A, B>(fa: Kind3<F, R, E, A>, f: (b: B) => A) => Kind3<F, R, E, B>
  45. }
  46. /**
  47. * @category model
  48. * @since 2.2.0
  49. */
  50. export interface Contravariant3C<F extends URIS3, E> {
  51. readonly URI: F
  52. readonly _E: E
  53. readonly contramap: <R, A, B>(fa: Kind3<F, R, E, A>, f: (b: B) => A) => Kind3<F, R, E, B>
  54. }
  55. /**
  56. * @category model
  57. * @since 2.0.0
  58. */
  59. export interface Contravariant4<F extends URIS4> {
  60. readonly URI: F
  61. readonly contramap: <S, R, E, A, B>(fa: Kind4<F, S, R, E, A>, f: (b: B) => A) => Kind4<F, S, R, E, B>
  62. }