Skip to content

Components

go-composites is a set of small, interface-first packages. Each is its own repository and Go module (under the github.com/go-composites/ module path; see the note on the homepage).

Core

base — the reflective root every composite embeds (Kind/RespondTo/Methods).

null — the minimal null-object sentinel.

error — the error interface and its sentinels.

result — payload + error wrapper with functional options.

Values & collections

boolean — a boxed boolean with a structural IsTrue().

number — a boxed int/float; arithmetic returns a result.

bignumber — an arbitrary-precision integer over math/big.Int.

rational — an exact rational number over math/big.Rat.

complex — a complex number a+bi over complex128.

bigfloat — an arbitrary-precision float over math/big.Float.

string — a boxed string value.

buffer — a mutable text buffer (StringBuilder), the counterpart to string.

symbol — an interned, immutable identifier.

time — a deterministic instant plus a Duration span.

date — a deterministic calendar date, the pure-calendar complement to time.

array — interface-first slice with result-returning methods and combinators.

dictionary — an interface-first key/value map.

set — an unordered collection of unique items.

orderedset — the insertion-ordered sibling of set.

sortedset — the comparator-sorted sibling of set.

bag — a counted collection (multiset): items carry a multiplicity.

range — an integer interval with result-returning construction.

pair — a fixed two-element grouping.

Composition, meta & generics

proc — a first-class callable with railway Then composition.

enumerator — a lazy sequence with Map/Filter/Take.

composePipe/Run of result-returning steps.

composites — the one-import meta-package.

typed — the Result[T]/Optional[T]/Slice[T] generics track.

The org also ships two static analyzers that enforce its invariants on every repo — nonnil (the Null-Object rule) and respondto (reflective dispatch).

Placeholder repositories

One repository — is — is currently an empty placeholder (a README stub and a LICENSE, with no Go source). It is not yet documented in depth; this site will cover it once it ships code.