import { Arity1 } from '@typed/functions' ; import { Predicate } from '../types' ; export type IfElseArity4 = { < A , B > ( predicate , thenF , elseF , value ) : B ; < A , B > ( predicate , thenF , elseF ) : IfElseArity1 < A , B > ; < A , B > ( predicate , thenF ) : IfElseArity2 < A , B > ; < A > ( predicate ) : IfElseArity3 < A > ; } ; export type IfElseArity3 < A > = { < B > ( thenF , elseF , value ) : B ; < B > ( thenF , elseF ) : IfElseArity1 < A , B > ; < B > ( thenF ) : IfElseArity2 < A , B > ; } ; export type IfElseArity2 < A , B > = { ( elseF , value ) : B ; ( elseF ) : IfElseArity1 < A , B > ; } ; export type IfElseArity1 < A , B > = { ( value ) : B ; } ;