title | nav_order | permalink |
---|---|---|
MergeSemigroup.ts |
9 |
/merge-semigroup/ |
A typeclass which models the getSemigroup
operation that returns a merge-wise
semigroup for a particular domain type
Added in v2.0.0
Interprets a schema as a MergeSemigroup
Signature
export declare const deriveMergeSemigroup: Interpreter<SchemableLambda>
Added in v2.0.0
Options for merging particular data types.
Note: Imap, Unions, and Literals will always use the fallback
strategy to maintain
associativity.
Signature
export type MergeOptions = {
readonly string?: Semigroup<string>
readonly number?: Semigroup<number>
readonly boolean?: Semigroup<boolean>
readonly unknown?: Semigroup<unknown>
readonly fallback: 'first' | 'last'
}
Added in v2.0.0
A typeclass which models the getSemigroup
operation that returns a merge-wise
semigroup for a particular domain type
Default merge strategy is last
, i.e. overwrite
Signature
export interface MergeSemigroup<O> {
readonly semigroup: (mergeStrategy?: MergeStrategy) => Semigroup<O>
}
Added in v2.0.0
Determines how concrete values are concatenated
Signature
export type MergeStrategy = 'first' | 'last' | MergeOptions
Added in v2.0.0
Signature
export declare const URI: 'schemata-ts/MergeSemigroup'
Added in v2.0.0
Signature
export type URI = typeof URI
Added in v2.0.0