/** * 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.js'; /** * @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; }