import type AbsFn from "./Abs"; import type AddFn from "./Add"; import type CompareFn from "./Compare"; import type GTFn from "./GT"; import type GTEFn from "./GTE"; import type IsDigitFn from "./IsDigit"; import type IsNatFn from "./IsNat"; import type IsNegFn from "./IsNeg"; import type IsPosFn from "./IsPos"; import type LTFn from "./LT"; import type LTEFn from "./LTE"; // @ts-ignore - Only used in doc comments import type { Nat } from "./Nat"; import type SubFn from "./Sub"; import type ToStrFn from "./ToStr"; import type { Flip, PartialApply } from "../HKT"; /** * Digit type. */ export type Digit = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9; /** * String representation of {@link Digit}. */ export type SDigit = `${Digit}`; /*********** * Methods * ***********/ /** * Methods for `number`. */ export namespace Num { /** * [Fn] Convert a `number` to a string. * * Sig: `(n: number) => string` */ export type ToStr = ToStrFn; /** * [Fn] Check if a `number` is positive. * * Sig: `(n: number) => boolean` */ export type IsPos = IsPosFn; /** * [Fn] Check if a `number` is negative. * * Sig: `(n: number) => boolean` */ export type IsNeg = IsNegFn; /** * [Fn] Check if a value is {@link Nat}. * * Sig: `(n: number) => boolean` */ export type IsNat = IsNatFn; /** * [Fn] Check if a `number` is a {@link Digit}. * * Sig: `(n: number) => boolean` */ export type IsDigit = IsDigitFn; /** * [Fn] Get the absolute value of a `number`. * * Sig: `(n: number) => number` */ export type Abs = AbsFn; /** * [Fn] Add two `number`s. * * Sig: `(n: number, m: number) => number` */ export type Add2 = AddFn; /** * [Fn] Add two `number`s. * * Sig: `[m: number](n: number) => number` */ export type Add = PartialApply; /** * [Fn] Subtract two `number`s. * * Sig: `(n: number, m: number) => number` */ export type Sub2 = SubFn; /** * [Fn] The flipped version of {@link Sub2}. * * Sig: `(m: number, n: number) => number` * * The `R` suffix (short for **R**ight or **R**everse) means that the arguments are flipped. */ export type Sub2R = Flip; /** * [Fn] Subtract `m` from `n`. * * Sig: `[m: number](n: number) => number` */ export type Sub = PartialApply; /** * [Fn] Subtract `m` from `n`. * * Sig: `[n: number](m: number) => number` */ export type SubFrom = PartialApply; /** * [Fn] Compare two `number`s. * * Sig: `(n: number, m: number) => Ordering` */ export type Compare = CompareFn; /** * [Fn] The flipped version of {@link Compare}. * * Sig: `(m: number, n: number) => Ordering` * * The `R` suffix (short for **R**ight or **R**everse) means that the arguments are flipped. */ export type CompareR = Flip; /** * [Fn] Compare a `number` with another `number`. * * Sig: `[m: number](n: number) => Ordering` */ export type CompareWith = PartialApply; /** * [Fn] Compare a `number` against another `number`. * * Sig: `[n: number](m: number) => Ordering` */ export type CompareAgainst = PartialApply; /** * [Fn] Check if `n` is less than `m`. * * Sig: `[m: number](n: number) => boolean` */ export type LT = PartialApply; /** * [Fn] Check if `n` is less than or equal to `m`. * * Sig: `[m: number](n: number) => boolean` */ export type LTE = PartialApply; /** * [Fn] Check if `n` is greater than `m`. * * Sig: `[m: number](n: number) => boolean` */ export type GT = PartialApply; /** * [Fn] Check if `n` is greater than or equal to `m`. * * Sig: `[m: number](n: number) => boolean` */ export type GTE = PartialApply; } /**************** * Type classes * ****************/ export type { Num$$Ord } from "./Ord"; export type { Num$$Show } from "./Show"; /*************** * Sub modules * ***************/ export type * from "./Int"; export type * from "./Nat";