Link Search Menu Expand Document

FreeSemigroup overview

This module is experimental

Experimental features are published in order to get early feedback from the community, see these tracking issues for further discussions and enhancements.

A feature tagged as Experimental is in a high state of flux, you’re at risk of it changing without notice.

Added in v2.2.7


Table of contents


constructors

concat

Signature

export declare const concat: <A>(left: FreeSemigroup<A>, right: FreeSemigroup<A>) => FreeSemigroup<A>

Added in v2.2.7

of

Signature

export declare const of: <A>(a: A) => FreeSemigroup<A>

Added in v2.2.7

destructors

fold

Signature

export declare const fold: <A, R>(
  onOf: (value: A) => R,
  onConcat: (left: FreeSemigroup<A>, right: FreeSemigroup<A>) => R
) => (f: FreeSemigroup<A>) => R

Added in v2.2.7

instances

getSemigroup

Signature

export declare function getSemigroup<A = never>(): Semigroup<FreeSemigroup<A>>

Added in v2.2.7

model

Concat (interface)

Signature

export interface Concat<A> {
  readonly _tag: 'Concat'
  readonly left: FreeSemigroup<A>
  readonly right: FreeSemigroup<A>
}

Added in v2.2.7

FreeSemigroup (type alias)

Signature

export type FreeSemigroup<A> = Of<A> | Concat<A>

Added in v2.2.7

Of (interface)

Signature

export interface Of<A> {
  readonly _tag: 'Of'
  readonly value: A
}

Added in v2.2.7