Skip to main content Link Search Menu Expand Document (external link)

Flatten.ts overview

Since v1.0.0


Exports Grouped by Category


constructors

alreadyFlat

Signature

declare const alreadyFlat: Flatten<never>

Source

Since v1.0.0

flattened

Signature

declare const flattened: <A>(value: A) => Flatten<A>

Source

Since v1.0.0

neverFlat

Signature

declare const neverFlat: Flatten<never>

Source

Since v1.0.0

mapping

map

Signature

declare const map: {
  <A, B>(f: (a: A) => B): (self: Flatten<A>) => Flatten<B>
  <A, B>(self: Flatten<A>, f: (a: A) => B): Flatten<B>
}

Source

Since v1.0.0

model

AlreadyFlat (interface)

Represents a FlattenResult where the input was already flat.

Signature

export interface AlreadyFlat<A> extends Flatten.Variance<A> {
  readonly _tag: "AlreadyFlat"
}

Source

Since v1.0.0

Flatten (type alias)

Because certain documents do not change after removal of newlines, etc, there is no point in creating a Union of the flattened and unflattened versions. All this leads to is the introduction of two possible branches for a layout algorithm to take, resulting in potentially exponential behavior on deeply nested examples.

Signature

type Flatten<A> = Flattened<A> | AlreadyFlat<A> | NeverFlat<A>

Source

Since v1.0.0

FlattenTypeLambda (interface)

Signature

export interface FlattenTypeLambda extends TypeLambda {
  readonly type: Flatten<this["Target"]>
}

Source

Since v1.0.0

Flattened (interface)

Represents a FlattenResult where A is likely flatter than the input.

Signature

export interface Flattened<A> extends Flatten.Variance<A> {
  readonly _tag: "Flattened"
  readonly value: A
}

Source

Since v1.0.0

NeverFlat (interface)

Represents a FlattenResult where the input cannot be flattened.

Signature

export interface NeverFlat<A> extends Flatten.Variance<A> {
  readonly _tag: "NeverFlat"
}

Source

Since v1.0.0

refinements

isAlreadyFlat

Returns true if the specified Flatten is an AlreadyFlat, false otherwise.

Signature

declare const isAlreadyFlat: <A>(a: Flatten<A>) => a is AlreadyFlat<A>

Source

Since v1.0.0

isFlatten

Returns true if the specified value is a Flatten, false otherwise.

Signature

declare const isFlatten: (u: unknown) => u is Flatten<unknown>

Source

Since v1.0.0

isFlattened

Returns true if the specified Flatten is a Flattened, false otherwise.

Signature

declare const isFlattened: <A>(a: Flatten<A>) => a is Flattened<A>

Source

Since v1.0.0

isNeverFlat

Returns true if the specified Flatten is a NeverFlat, false otherwise.

Signature

declare const isNeverFlat: <A>(a: Flatten<A>) => a is NeverFlat<A>

Source

Since v1.0.0

symbol

FlattenTypeId

Signature

declare const FlattenTypeId: unique symbol

Source

Since v1.0.0

FlattenTypeId (type alias)

Signature

type FlattenTypeId = typeof FlattenTypeId

Source

Since v1.0.0

utils

Flatten (namespace)

Source

Since v1.0.0

Variance (interface)

Signature

export interface Variance<A> extends Equal {
  readonly [FlattenTypeId]: {
    readonly _A: (_: never) => A
  }
}

Source

Since v1.0.0

TypeLambda (type alias)

Signature

type TypeLambda = FlattenTypeLambda

Source

Since v1.0.0