resolve : ZoneRules , LocalDateTime , LocalDateTime -> Try (ResolvedSelection , [EmptySelection , ReversedSelection , OutsideValidity , OutOfRange , ..])
Resolve the full half-open civil range and retain its inputs with complete
coverage, including disconnected fold components. Reject empty/reversed
labels and incomplete validity or numeric range; scan the finite rules.
For explicit work and storage budgets, use a selection cursor with collect.
collect : SelectionCursor , SelectionLimits -> Try (Batch , [OutOfRange , ..])
Continue a validated zone-selection cursor under explicit work/storage
limits. Only complete interpretation becomes a snapshot. The cursor
retains the exact rules and civil inputs across all resumptions.
coverage : ResolvedSelection -> Coverage
Return the stored complete canonical coverage without reevaluating rules.
start : ResolvedSelection -> LocalDateTime
Return the original inclusive civil start label.
end : ResolvedSelection -> LocalDateTime
Return the original exclusive civil end label.
rules : ResolvedSelection -> ZoneRules
Return the exact immutable rules retained by the selection.
reresolve : ResolvedSelection , ZoneRules -> Try (ResolvedSelection , [EmptySelection , ReversedSelection , OutsideValidity , OutOfRange , ..])
Interpret the original civil range under another explicit rules snapshot.
This can change the coverage or return a validity/range error.
same_extent : ResolvedSelection , ResolvedSelection -> Bool
Compare only the resulting POSIX coverage, ignoring source labels and rule provenance.
is_eq : ResolvedSelection , ResolvedSelection -> Bool
Equality/hashing preserve civil source identity and complete rule evidence.
same_extent instead compares only the resulting compatible-axis coverage.
to_hash : ResolvedSelection , Hasher -> Hasher
Hash the source labels, complete coverage and retained rules consistently
with is_eq. Work includes coverage members and rule transitions.
fact_count : ResolvedSelection -> U64
Complete snapshots expose stored canonical members without reevaluation.
fact_at : ResolvedSelection , U64 -> [End , Item (SemanticFact )]
Read the selection summary, context, then indexed coverage members.
Return End beyond fact_count; stored coverage is not recomputed.
Limited batches explain inputs and work state, not partial coverage.
batch_fact_at : Batch , U64 -> [End , Item (SemanticFact )]
Read evaluation status followed by the snapshot facts when complete, or
source/context facts when limited. Return End beyond batch_fact_count.
to_inspect : ResolvedSelection -> Str
Summarize source bounds and member count without traversing the coverage.
Batch : {
segments : U64 ,
buffered : U64 ,
status : [Complete (ResolvedSelection ), Limited ({ cursor : SelectionCursor , reason : [WorkLimit , BufferLimit ] })],
}
Per-call segment work, retained member count, and either a complete snapshot
or a cursor plus the limiting reason. Limited exposes no partial coverage.