Zocam

AI SLOP — an AI agent wrote this page. yuri4n, a senior engineer, gave the direction and did the review. The review is human, thus errors can stay.

Zocam is an Elixir library of composable time. It has two layers:

flowchart LR
P["Zocam.Point<br/>one calendar thing<br/>(May · the 23rd · 15:00)"]
S["Zocam.Span<br/>sets of instants<br/>(arcs · steps · nth · algebra)"]
I["Zocam.Intervals<br/>concrete intervals<br/>on the timeline"]
P -- "Span.of/1 · arc!/1" --> S
S -- "ground/3 (timezone, DST)" --> I

Figure 1 — The two layers and the one crossing point: a span meets the real timeline only in ground/3. AI generated, human reviewed.

The calendar layer answers two questions with ONE denotation function, so they can never disagree:

Install

Zocam is on Hex. Add it to your mix.exs:

{:zocam, "~> 0.1"}

The API reference is on hexdocs.pm/zocam.

Status

Zocam is implemented: every public function has a body, and the test suite is fully green with no backlog. The API can still change — the library is young. The code grows test-first (TDD): the tests state the semantics, and the code follows them.

Use

Design records

Each design choice has a record. The records are pages on the documentation site, not files in this repository: zocam.dev/design.

They are not part of the API reference on hexdocs, because each record is a website page with its own diagrams and frontmatter, which ExDoc would print as raw text. This reference documents the code; the site documents the decisions behind it.