/** * A type for natural transformations. * * A natural transformation is a mapping between type constructors of kind `* -> *` where the mapping * operation has no ability to manipulate the inner values. * * The definition of a natural transformation in category theory states that `F` and `G` should be functors, * but the `Functor` constraint is not enforced here; that the types are of kind `* -> *` is enough for our purposes. * * @since 2.11.0 */ import { HKT, Kind, Kind2, Kind3, Kind4, URIS, URIS2, URIS3, URIS4 } from './HKT' /** * @since 2.11.0 */ export interface NaturalTransformation { (fa: HKT): HKT } /** * @since 2.11.0 */ export interface NaturalTransformation11 { (fa: Kind): Kind } /** * @since 2.11.0 */ export interface NaturalTransformation12 { (fa: Kind): Kind2 } /** * @since 2.11.0 */ export interface NaturalTransformation12C { (fa: Kind): Kind2 } /** * @since 2.11.0 */ export interface NaturalTransformation13 { (fa: Kind): Kind3 } /** * @since 2.11.0 */ export interface NaturalTransformation13C { (fa: Kind): Kind3 } /** * @since 2.11.0 */ export interface NaturalTransformation14 { (fa: Kind): Kind4 } /** * @since 2.11.0 */ export interface NaturalTransformation14C { (fa: Kind): Kind4 } /** * @since 2.11.0 */ export interface NaturalTransformation21 { (fa: Kind2): Kind } /** * @since 2.11.0 */ export interface NaturalTransformation22 { (fa: Kind2): Kind2 } /** * @since 2.11.0 */ export interface NaturalTransformation22C { (fa: Kind2): Kind2 } /** * @since 2.11.0 */ export interface NaturalTransformation23 { (fa: Kind2): Kind3 } /** * @since 2.11.0 */ export interface NaturalTransformation23C { (fa: Kind2): Kind3 } /** * @since 2.11.0 */ export interface NaturalTransformation24 { (fa: Kind2): Kind4 } /** * @since 2.11.0 */ export interface NaturalTransformation23R { (fa: Kind2): Kind3 } /** * @since 2.11.0 */ export interface NaturalTransformation23RC { (fa: Kind2): Kind3 } /** * @since 2.11.0 */ export interface NaturalTransformation24R { (fa: Kind2): Kind4 } /** * @since 2.11.0 */ export interface NaturalTransformation24S { (fa: Kind2): Kind4 } /** * @since 2.11.0 */ export interface NaturalTransformation33 { (fa: Kind3): Kind3 } /** * @since 2.11.0 */ export interface NaturalTransformation34 { (fa: Kind3): Kind4 }