new : Kind -> SemanticFact
SemanticFact
SemanticFact :: # (opaque)
Typed semantic observations for inspection and bounded explanation. Facts carry supplied information; constructing one does not validate a temporal declaration or bind an interpretation. Native fact visitors provide those guarantees from their validated values and snapshots. Summary is fixed-size diagnostic text (at most 256 UTF-8 bytes), without enumerating children, copying arbitrary annotations or inspecting rule data. Full renderers use kind with explicit text/work limits. No persistence format.
kind : SemanticFact -> Kind
to_inspect : SemanticFact -> Str
Resolution : [Year, Month, Day, Hour, Minute, Second, Fraction(U8)]
Offset : [UnassertedUtc, Asserted(FixedOffset)]
CalendarData : { kind : [CalendarValue, QualifiedCalendarValue, EdtfDate], calendar : Calendar, fields : Fields, clock : Fields, resolution : Resolution, qualification_count : U64 }
Fields/clock carry the canonical lower label; resolution identifies which components were supplied. Lower components filled by native construction are not additional source assertions and must not be rendered as such.
TimestampData : { kind : [OffsetTimestamp, Ixdtf], local : LocalDateTime, fraction_digits : U8, offset : Offset, zone_present : Bool, annotation_count : U64 }
QualificationData : { scope : [Whole, Year, Month, Day, Hour, Minute, Second, Fraction], qualifier : [Uncertain, Approximate, UncertainApproximate] }
AnnotationData : { critical : Bool, key : Str, value : Str }
PositionData : { boundary : PosixBoundary, offset : FixedOffset, local : LocalDateTime }
Local is the snapshot's stored Gregorian projection, not a claim that its preferred calendar is supported. The separate Presentation fact states that.
ExactIntervalData : { span : PosixSpan }
OffsetEndpointData : { role : [Start, End], local : LocalDateTime, fraction_digits : U8, offset : Offset }
RfcDateTimeData : { role : [Standalone, Start, End], local : LocalDateTime, form : [Utc, Local] }
RfcDurationData : { role : [Standalone, PeriodEnding, RecurrenceEnding], days : I64, seconds : I64 }
RfcPeriodData : { form : [Utc, Local], start : LocalDateTime, ending : [Endpoint(LocalDateTime), Duration({ days : I64, seconds : I64 })] }
CoverageData : { member_count : U64 }
CoverageMemberData : { index : U64, span : PosixSpan }
CivilBoundaryData : { source : LocalDateTime, policy : [RequireUnique, First, Last, MatchingOffset(FixedOffset)], boundary : PosixBoundary, offset : FixedOffset }
CivilSelectionData : { start : LocalDateTime, end : LocalDateTime, member_count : U64 }
LocalSelectionData : { start : LocalDateTime, end : LocalDateTime }
SelectionEvaluationData : { status : [Complete, Limited([WorkLimit, BufferLimit])], segments : U64, buffered : U64 }
Weekday : [Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday]
RecurrenceAnchor : [Date(GregorianDate), Local(LocalDateTime)]
RecurrenceFrequency : [Daily, Weekly, Monthly, Yearly, Hourly, Minutely, Secondly]
RecurrenceData : { kind : [DateRecurrence, TimedRecurrence], anchor : RecurrenceAnchor, frequency : RecurrenceFrequency, interval : I64, week_start : [None, Some(Weekday)], selector_count : U64, inclusion_count : U64, exclusion_count : U64 }
RecurrenceEnd : [Forever, Count(U64), UntilDate(GregorianDate), UntilLocal(LocalDateTime), UntilBoundary(PosixBoundary)]
RecurrenceExceptionData : { kind : [Inclusion, Exclusion], source : RecurrenceAnchor }
RecurrencePolicyData : { context : [Required, FixedUtc], occurrence : [CallerSupplied, First], gap : [CallerSupplied, UseOffsetBeforeGap] }
RfcTimedRuleData : { mode : [Utc, Floating, Zoned], period_count : U64 }
Kind : [RecurrenceDescription(RecurrenceData), RecurrenceTermination(RecurrenceEnd), RecurrenceSelector(Selector), RecurrenceException(RecurrenceExceptionData), RecurrencePolicy(RecurrencePolicyData), RfcTimedRuleDescription(RfcTimedRuleData), CoverageDescription(CoverageData), CoverageMember(CoverageMemberData), CivilBoundaryDescription(CivilBoundaryData), CivilSelectionDescription(CivilSelectionData), LocalSelectionDescription(LocalSelectionData), SelectionEvaluation(SelectionEvaluationData), ExactIntervalDescription(ExactIntervalData), OffsetEndpoint(OffsetEndpointData), RfcDateTimeDescription(RfcDateTimeData), RfcDurationDescription(RfcDurationData), RfcPeriodDescription(RfcPeriodData), CalendarDescription(CalendarData), TimestampDescription(TimestampData), Qualification(QualificationData), Requirement([ZoneContext, UncertaintyModel]), ZoneAnnotation(ZoneData), Annotation(AnnotationData), ResolvedPosition(PositionData), Context(ContextData), Presentation([Gregorian, UnsupportedCalendar(Str)])]