packages feed

keiro-dsl 0.21.0.0 → 0.22.0.0

raw patch · 808 files changed

+4591/−1091 lines, 808 filesdep ~aesondep ~keirodep ~keiro-corePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: aeson, keiro, keiro-core, kiroku-store, shibuya-core

API changes (from Hackage documentation)

- Keiro.Dsl.AggregateType: AggregateMapped :: !MappedKey -> ResolvedAggregateType
+ Keiro.Dsl.AggregateType: AggregateStructuralEnum :: !StructuralEnumEquality -> ResolvedAggregateType
+ Keiro.Dsl.AggregateType: StructuralEnumEquality :: !MappedKey -> !HaskellSource -> !QualifiedValueName -> !BindingVersion -> !CanonicalTypeId -> !NonEmpty (Name, Text) -> StructuralEnumEquality
+ Keiro.Dsl.AggregateType: [bindingVersion] :: StructuralEnumEquality -> !BindingVersion
+ Keiro.Dsl.AggregateType: [binding] :: StructuralEnumEquality -> !QualifiedValueName
+ Keiro.Dsl.AggregateType: [canonical] :: StructuralEnumEquality -> !CanonicalTypeId
+ Keiro.Dsl.AggregateType: [constructors] :: StructuralEnumEquality -> !NonEmpty (Name, Text)
+ Keiro.Dsl.AggregateType: [key] :: StructuralEnumEquality -> !MappedKey
+ Keiro.Dsl.AggregateType: [owner] :: StructuralEnumEquality -> !HaskellSource
+ Keiro.Dsl.AggregateType: data StructuralEnumEquality
+ Keiro.Dsl.AggregateType: instance GHC.Classes.Eq Keiro.Dsl.AggregateType.StructuralEnumEquality
+ Keiro.Dsl.AggregateType: instance GHC.Classes.Ord Keiro.Dsl.AggregateType.StructuralEnumEquality
+ Keiro.Dsl.AggregateType: instance GHC.Internal.Show.Show Keiro.Dsl.AggregateType.StructuralEnumEquality
+ Keiro.Dsl.AggregateType: pattern AggregateMapped :: MappedKey -> ResolvedAggregateType
+ Keiro.Dsl.AggregateType: structuralEnumEqualityIdentity :: StructuralEnumEquality -> Text
+ Keiro.Dsl.ExplainBindings: structuralEnumEqualityIdentitiesForService :: CheckedService -> [Text]
+ Keiro.Dsl.LanguageVersion: StructuralEnumEqualityGuards :: RuntimeCapability
+ Keiro.Dsl.Scaffold: [rootEnum] :: StructuralProjection -> !Maybe (Text, [(Name, Text)])
+ Keiro.Dsl.Scaffold: nominalEqualityWitnessName :: ResolvedNominalType -> Text
+ Keiro.Dsl.Scaffold: projectionWitnessName :: TypeGraph -> MappedKey -> Text -> Maybe Text
+ Keiro.Dsl.Scaffold: structuralProjectionModule :: Context -> Text
+ Keiro.Dsl.ScaffoldRecord: [structuralEnumEqualities] :: ScaffoldRecord -> ![Text]
+ Keiro.Dsl.WorkspaceRecord: [structuralEnumEqualities] :: WorkspaceRecord -> ![Text]
- Keiro.Dsl.Scaffold: StructuralProjection :: !Text -> !Text -> !Text -> !Maybe Text -> !Text -> !HaskellSource -> !Text -> !CanonicalTypeId -> !QualifiedValueName -> !QualifiedValueName -> !Maybe NominalLeaf -> ![(Text, Text)] -> StructuralProjection
+ Keiro.Dsl.Scaffold: StructuralProjection :: !Text -> !Text -> !Text -> !Maybe Text -> !Text -> !HaskellSource -> !Text -> !CanonicalTypeId -> !QualifiedValueName -> !QualifiedValueName -> !Maybe NominalLeaf -> !Maybe (Text, [(Name, Text)]) -> ![(Text, Text)] -> StructuralProjection
- Keiro.Dsl.ScaffoldRecord: ScaffoldRecord :: !Text -> !Text -> !Text -> !SourceLanguage -> !EffectiveLanguageContract -> !GeneratedHaskellNamingEdition -> ![ScaffoldModuleRoleRow] -> ![(ModuleKind, FilePath)] -> ![MappingIdentity] -> ![Text] -> ![Text] -> ![BindingHole] -> ![BehaviorRecordRow] -> ![Text] -> !Bool -> ![QueryContractIdentity] -> ![RouterSelectionSnapshot] -> ![ProcessReactionRecordRow] -> !Maybe SemanticImpactSnapshot -> ScaffoldRecord
+ Keiro.Dsl.ScaffoldRecord: ScaffoldRecord :: !Text -> !Text -> !Text -> !SourceLanguage -> !EffectiveLanguageContract -> !GeneratedHaskellNamingEdition -> ![ScaffoldModuleRoleRow] -> ![(ModuleKind, FilePath)] -> ![MappingIdentity] -> ![Text] -> ![Text] -> ![Text] -> ![BindingHole] -> ![BehaviorRecordRow] -> ![Text] -> !Bool -> ![QueryContractIdentity] -> ![RouterSelectionSnapshot] -> ![ProcessReactionRecordRow] -> !Maybe SemanticImpactSnapshot -> ScaffoldRecord
- Keiro.Dsl.WorkspaceRecord: WorkspaceRecord :: !Text -> !Text -> !Text -> !Text -> !Text -> ![FilePath] -> ![WorkspaceSourceLanguageRow] -> !EffectiveLanguageContract -> !GeneratedHaskellNamingEdition -> ![WorkspaceModuleRow] -> ![MappingIdentity] -> ![Text] -> ![Text] -> ![BindingHole] -> ![BehaviorRecordRow] -> ![Text] -> !Bool -> ![QueryContractIdentity] -> ![RouterSelectionSnapshot] -> ![AdoptedRow] -> !Maybe SemanticImpactSnapshot -> WorkspaceRecord
+ Keiro.Dsl.WorkspaceRecord: WorkspaceRecord :: !Text -> !Text -> !Text -> !Text -> !Text -> ![FilePath] -> ![WorkspaceSourceLanguageRow] -> !EffectiveLanguageContract -> !GeneratedHaskellNamingEdition -> ![WorkspaceModuleRow] -> ![MappingIdentity] -> ![Text] -> ![Text] -> ![Text] -> ![BindingHole] -> ![BehaviorRecordRow] -> ![Text] -> !Bool -> ![QueryContractIdentity] -> ![RouterSelectionSnapshot] -> ![AdoptedRow] -> !Maybe SemanticImpactSnapshot -> WorkspaceRecord

This diff is very large; some files are shown as “too large to diff”. Download the raw patch for the complete diff.

Files

CHANGELOG.md view
@@ -6,6 +6,86 @@  ## [Unreleased] +## 0.22.0.0 — 2026-10-27++### Breaking Changes++- Direct DSL API clients must handle `AggregateStructuralEnum` and+  `StructuralEnumEqualityGuards`, supply `StructuralProjection.rootEnum`+  (`Nothing` for prior projections), and supply `structuralEnumEqualities`+  (`[]` for prior records) when constructing `ScaffoldRecord` or `WorkspaceRecord`.+  `AggregateMapped` is a bundled bidirectional pattern matching both mapped+  representations. Structural enum equality adds declaration-specific fold+  evidence; preserve replay qualification when adopting it. Language 6 remains+  a candidate; this release does not promote its language contract.++### New Features++- Candidate Language 6 structural enums support declaration-safe `==` and `!=`+  guards and qualified constructor literals through the existing total binding.+  Generated root projections carry exact finite wire-key domains and reconstruct+  consumer owners; structural conformance checks exhaustive enum shapes, fixture+  coverage, and projection owner/key laws. Records, unions, opaque mappings,+  ordering, arithmetic, and additional nested traversal remain excluded.+- Generated harnesses sample a structural enum command field whose guard compares+  qualified literals by projected wire key through the structural projection+  witness, combined with any register-inequality exclusion. Supplied fixture+  order is not a harness contract; a guard no supplied fixture satisfies fails+  with an explicit error. `projectionWitnessName` and `structuralProjectionModule`+  are exported from `Keiro.Dsl.Scaffold`.+- Equality use adds a versioned declaration-specific fold segment, binding+  explanations, and distinct `structural-enum-equality` scaffold/workspace ledger+  rows. Data-only mappings and unrelated fold identities retain their bytes.+  Consumer release, event-history, register-layout, fold, and snapshot qualification+  remain required before removing a downstream native-enum adapter.+- API additions include `AggregateStructuralEnum`, `StructuralEnumEquality`,+  `StructuralEnumEqualityGuards`, `StructuralProjection.rootEnum`, and+  `ScaffoldRecord.structuralEnumEqualities`/`WorkspaceRecord.structuralEnumEqualities`.+  `AggregateMapped` is a bundled bidirectional pattern covering both mapped-value+  representations, preserving their structural codec/initial/write paths.++### Bug Fixes++- A consumer-bound nominal enum or ID literal used only as a comparison operand+  in a guard or outcome reason no longer plans unused binding, representation,+  or KindID imports, so the generated transducer and event stream compile under+  the generated-output `-Werror`. Literals in write position keep those imports.+- Generated harnesses sample a consumer-bound nominal enum command field whose+  guard compares qualified literals by canonical key through the nominal+  equality witness, with the same register-inequality exclusion as structural+  enums. `nominalEqualityWitnessName` is exported from `Keiro.Dsl.Scaffold`.++### Other Changes++- 0.21.0.0 erratum: regeneration rewrites every generated aggregate+  `BehaviorContract.hs` (new `behaviorObligationReport` export and+  `coverageReportFor`), including aggregates without hole-owned initial edges.+  Harness changes additionally affect Language 2 and later services with+  hole-owned live initial transitions. Preserve application holes and real+  history-backed witnesses.+- The 0.21.0.0 API notes omitted `TypedScalarNode` constructors `TypedMappedLift`+  and `TypedMappedInitial`; `ExpressionDiagnosticCode` constructors+  `ScalarMappedLiftUnsupported`, `ScalarMappedLiftProjectionUnsupported`,+  `ScalarWriteInitialUnsupported`, `ScalarWriteInitialShadowed`;+  `LanguageFeature` constructors `MappedRegisterConstructionSyntax` and+  `ContractListFieldSyntax`; and `MappedDeclError.InvalidMappedWriteLift`.+- `DiagnosticCode` inserted `ContractListFieldUsedAsKey`,+  `AggregateExpressionMappedLiftUnsupported`,+  `AggregateExpressionMappedLiftProjectionUnsupported`, `MappedWriteLiftInvalid`,+  `AggregateExpressionWriteInitialUnsupported`,+  `AggregateExpressionWriteInitialShadowed`, `MappedWriteLiftChanged` and+  `MappedWriteLiftFixturesChanged`. Enum/Bounded ordinals after+  `ContractTypeIdDomainChanged` and `AggGuardRemedyUnavailable` shift.+- `MappingIdentity` ledger JSON adds optional `writeLift`;+  `Scaffold.behaviorRequirementsFor` is newly exported and partial;+  `ScaffoldRun.pureRefusalsForService` adds the+  `generatedImportResolutionViolations` refusal class. Same-prefix+  literal-to-declared ID-domain transitions predating `ContractIdDomainTypeIdV7`+  are reclassified from advisory to breaking. The corrected+  `0.20.0.0-to-0.21.0.0` upgrade edge lists consumer adaptations.+++ ## 0.21.0.0 — 2026-10-14  ### Breaking Changes
generated-haskell-edition-idiomatic-v2.md view

file too large to diff

keiro-dsl.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: keiro-dsl-version: 0.21.0.0+version: 0.22.0.0 synopsis: Typed specification toolchain for keiro services description:   keiro-dsl is the toolchain over a typed `.keiro` specification of a keiro@@ -190,7 +190,7 @@     directory >=1.3 && <1.4,     filepath >=1.4 && <1.6,     keiki >=0.9 && <0.10,-    keiro-core ^>=0.21.0.0,+    keiro-core ^>=0.22.0.0,     keiro-dsl:generated-haskell-language-internal,     megaparsec >=9.6 && <9.9,     mmzk-typeid >=0.7 && <0.8,@@ -222,11 +222,13 @@   autogen-modules: Paths_keiro_dsl   other-modules:     Keiro.Dsl.ConformanceBaseline+    Keiro.Dsl.ConsumerEnumLiterals     Keiro.Dsl.FrontendCompatibility     Keiro.Dsl.FrontendProfiles     Keiro.Dsl.FrontendPublicApiProbe     Keiro.Dsl.FrontendSurface     Keiro.Dsl.MappedRegisterConstruction+    Keiro.Dsl.MappedStructuralEnumEquality     Paths_keiro_dsl    build-depends:@@ -239,7 +241,7 @@     filepath >=1.4 && <1.6,     hspec >=2.11,     keiki >=0.9 && <0.10,-    keiro-core ^>=0.21.0.0,+    keiro-core ^>=0.22.0.0,     keiro-dsl,     keiro-dsl:generated-haskell-language-internal,     mmzk-typeid >=0.7 && <0.8,@@ -292,9 +294,9 @@   main-is: Main.hs   build-depends:     base >=4.21 && <5,-    keiro ^>=0.21.0.0,+    keiro ^>=0.22.0.0,     keiro-dsl,-    shibuya-core ^>=0.10.0.1,+    shibuya-core ^>=0.12.0.0,     text >=2.1 && <2.2,  -- Conformance: proves the scaffolded Generated modules plus a hand-filled@@ -1102,7 +1104,7 @@     containers >=0.6 && <0.8,     deepseq >=1.5 && <1.6,     keiki >=0.9 && <0.10,-    keiro ^>=0.21.0.0,+    keiro ^>=0.22.0.0,     tasty-bench >=0.5 && <0.6,     text >=2.1 && <2.2,     time >=1.12 && <1.15,@@ -1418,7 +1420,7 @@     effectful-core,     hasql-transaction,     keiro,-    kiroku-store ^>=0.11.0.0,+    kiroku-store ^>=0.12.0.0,     text >=2.1 && <2.2,  -- EP-4 publisher runtime conformance: the scaffolded Publisher config compiled@@ -1790,7 +1792,7 @@     keiki >=0.9 && <0.10,     keiro,     keiro-test-support,-    kiroku-store ^>=0.11.0.0,+    kiroku-store ^>=0.12.0.0,     shibuya-core,     streamly-core >=0.3 && <0.4,     text >=2.1 && <2.2,@@ -1832,7 +1834,7 @@     keiki >=0.9 && <0.10,     keiro,     keiro-test-support,-    kiroku-store ^>=0.11.0.0,+    kiroku-store ^>=0.12.0.0,     shibuya-core,     text >=2.1 && <2.2,     time >=1.12 && <1.15,@@ -1873,7 +1875,7 @@     keiki >=0.9 && <0.10,     keiro,     keiro-test-support,-    kiroku-store ^>=0.11.0.0,+    kiroku-store ^>=0.12.0.0,     shibuya-core,     text >=2.1 && <2.2,     time >=1.12 && <1.15,@@ -1951,8 +1953,8 @@     keiro,     keiro-dsl,     keiro-test-support,-    kiroku-store ^>=0.11.0.0,-    shibuya-core ^>=0.10.0.1,+    kiroku-store ^>=0.12.0.0,+    shibuya-core ^>=0.12.0.0,     text >=2.1 && <2.2,     time >=1.12 && <1.15,     uuid >=1.3 && <1.4,@@ -2264,3 +2266,36 @@     keiro,     text >=2.1 && <2.2,     time >=1.12 && <1.15,++test-suite keiro-dsl-conformance-mapped-structural-enum-equality+  import: warnings, generated-output+  default-extensions: OverloadedLabels+  type: exitcode-stdio-1.0+  hs-source-dirs: test/conformance-mapped-structural-enum-equality+  main-is: Main.hs+  other-modules:+    Conformance.MappedStructuralEnumEquality.Bindings+    Conformance.MappedStructuralEnumEquality.Domain+    Generated.MappedStructuralEnumEquality.BehaviorSourceMap+    Generated.MappedStructuralEnumEquality.ReplayAudit+    Generated.MappedStructuralEnumEquality.ScopeGate.BehaviorContract+    Generated.MappedStructuralEnumEquality.ScopeGate.Codec+    Generated.MappedStructuralEnumEquality.ScopeGate.Domain+    Generated.MappedStructuralEnumEquality.ScopeGate.EventStream+    Generated.MappedStructuralEnumEquality.ScopeGate.Harness+    Generated.MappedStructuralEnumEquality.ScopeGate.Projection+    Generated.MappedStructuralEnumEquality.ScopeGate.Transducer+    Generated.MappedStructuralEnumEquality.Structural.Shape.Request+    Generated.MappedStructuralEnumEquality.Structural.Shape.RequiredScope+    Generated.MappedStructuralEnumEquality.StructuralConformance+    Generated.MappedStructuralEnumEquality.StructuralProjections+    MappedStructuralEnumEquality.ScopeGate.BehaviorHoles++  build-depends:+    aeson >=2.2 && <2.3,+    base >=4.21 && <5,+    containers >=0.6 && <0.8,+    deepseq >=1.4 && <1.6,+    keiki >=0.9 && <0.10,+    keiro,+    text >=2.1 && <2.2,
record-field-migration-0.15.md view
@@ -9,22 +9,28 @@ serialized, rendered, CLI, and runtime surfaces for review but does not prove byte compatibility. Exact byte claims live in named package-test goldens. -Inventory: 319 record-owning declarations, 1576 fields, 1528 strict fields, and 1431 fields exported through a public `Type (..)`.+Inventory: 320 record-owning declarations, 1585 fields, 1537 strict fields, and 1440 fields exported through a public `Type (..)`.  | Location | Owner | Kind | Public | Current | Target | Type/strictness | Selection replacement | Review risk / observable surface | Deriving | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | `keiro-dsl/src/Keiro/Dsl/AggregateGenerationPlan.hs:14` | `TransitionLayoutEntry` | data | no | `layoutDeclarationIndex` | `declarationIndex` | `!Int` | `(.declarationIndex)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/AggregateGenerationPlan.hs:15` | `TransitionLayoutEntry` | data | no | `layoutOutgoingIndex` | `outgoingIndex` | `!Int` | `(.outgoingIndex)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/AggregateGenerationPlan.hs:16` | `TransitionLayoutEntry` | data | no | `layoutTransition` | `transition` | `!Transition` | `(.transition)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/AggregateType.hs:86` | `AggregateSymbols` | data | no | `symbolNominals` | `nominals` | `!(Map Name ResolvedNominalType)` | `(.nominals)`, pattern, or construction | rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/AggregateType.hs:87` | `AggregateSymbols` | data | no | `symbolVertices` | `vertices` | `!(Map Name [Name])` | `(.vertices)`, pattern, or construction | rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/AggregateType.hs:88` | `AggregateSymbols` | data | no | `symbolMapped` | `mapped` | `!(Map MappedKey ResolvedMappedDecl)` | `(.mapped)`, pattern, or construction | rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/AggregateType.hs:125` | `AggregateTypeError` | data | yes | `aggregateTypeErrorLoc` | `loc` | `!Loc` | `(.loc)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/AggregateType.hs:126` | `AggregateTypeError` | data | yes | `aggregateTypeErrorUseSite` | `useSite` | `!AggregateUseSite` | `(.useSite)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/AggregateType.hs:127` | `AggregateTypeError` | data | yes | `aggregateTypeErrorReason` | `reason` | `!AggregateTypeErrorReason` | `(.reason)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/AggregateType.hs:261` | `AggregateHaskellSource` | data | no | `aggregateSourceBuiltin` | `builtin` | `!(Maybe Text)` | `(.builtin)`, pattern, or construction | rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/AggregateType.hs:262` | `AggregateHaskellSource` | data | no | `aggregateSourceReference` | `reference` | `!(Maybe HaskellReference)` | `(.reference)`, pattern, or construction | rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/AggregateType.hs:263` | `AggregateHaskellSource` | data | no | `aggregateSourceStaticImports` | `staticImports` | `!(Set Text)` | `(.staticImports)`, pattern, or construction | rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/AggregateType.hs:97` | `StructuralEnumEquality` | data | yes | `key` | `key` | `!MappedKey` | `(.key)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/AggregateType.hs:98` | `StructuralEnumEquality` | data | yes | `owner` | `owner` | `!HaskellSource` | `(.owner)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/AggregateType.hs:99` | `StructuralEnumEquality` | data | yes | `binding` | `binding` | `!QualifiedValueName` | `(.binding)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/AggregateType.hs:100` | `StructuralEnumEquality` | data | yes | `bindingVersion` | `bindingVersion` | `!BindingVersion` | `(.bindingVersion)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/AggregateType.hs:101` | `StructuralEnumEquality` | data | yes | `canonical` | `canonical` | `!CanonicalTypeId` | `(.canonical)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/AggregateType.hs:102` | `StructuralEnumEquality` | data | yes | `constructors` | `constructors` | `!(NE.NonEmpty (Name, Text))` | `(.constructors)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/AggregateType.hs:139` | `AggregateSymbols` | data | no | `symbolNominals` | `nominals` | `!(Map Name ResolvedNominalType)` | `(.nominals)`, pattern, or construction | rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/AggregateType.hs:140` | `AggregateSymbols` | data | no | `symbolVertices` | `vertices` | `!(Map Name [Name])` | `(.vertices)`, pattern, or construction | rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/AggregateType.hs:141` | `AggregateSymbols` | data | no | `symbolMapped` | `mapped` | `!(Map MappedKey ResolvedMappedDecl)` | `(.mapped)`, pattern, or construction | rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/AggregateType.hs:178` | `AggregateTypeError` | data | yes | `aggregateTypeErrorLoc` | `loc` | `!Loc` | `(.loc)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/AggregateType.hs:179` | `AggregateTypeError` | data | yes | `aggregateTypeErrorUseSite` | `useSite` | `!AggregateUseSite` | `(.useSite)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/AggregateType.hs:180` | `AggregateTypeError` | data | yes | `aggregateTypeErrorReason` | `reason` | `!AggregateTypeErrorReason` | `(.reason)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/AggregateType.hs:317` | `AggregateHaskellSource` | data | no | `aggregateSourceBuiltin` | `builtin` | `!(Maybe Text)` | `(.builtin)`, pattern, or construction | rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/AggregateType.hs:318` | `AggregateHaskellSource` | data | no | `aggregateSourceReference` | `reference` | `!(Maybe HaskellReference)` | `(.reference)`, pattern, or construction | rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/AggregateType.hs:319` | `AggregateHaskellSource` | data | no | `aggregateSourceStaticImports` | `staticImports` | `!(Set Text)` | `(.staticImports)`, pattern, or construction | rendered/canonical output | `none` | | `keiro-dsl/src/Keiro/Dsl/BehaviorCoverage.hs:51` | `BehaviorKey` | newtype | yes | `unBehaviorKey` | `unBehaviorKey` | `Text` | explicit `unBehaviorKey` positional function | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` | | `keiro-dsl/src/Keiro/Dsl/BehaviorCoverage.hs:92` | `BehaviorExactLocation` | data | yes | `exactSourceFile` | `sourceFile` | `!FilePath` | `(.sourceFile)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` | | `keiro-dsl/src/Keiro/Dsl/BehaviorCoverage.hs:93` | `BehaviorExactLocation` | data | yes | `exactSourceLine` | `sourceLine` | `!Int` | `(.sourceLine)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |@@ -372,39 +378,39 @@ | `keiro-dsl/src/Keiro/Dsl/EventOutput.hs:64` | `EventOutputError` | data | yes | `declaredSourceCommand` | `declaredSourceCommand` | `!Name` | `(.declaredSourceCommand)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/EventOutput.hs:65` | `EventOutputError` | data | yes | `consumingTransitionCommand` | `consumingTransitionCommand` | `!Name` | `(.consumingTransitionCommand)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/EventOutput.hs:66` | `EventOutputError` | data | yes | `emittedEventName` | `emittedEventName` | `!Name` | `(.emittedEventName)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:48` | `BindingObligation` | data | yes | `obligationMappedName` | `mappedName` | `!Name` | `(.mappedName)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:49` | `BindingObligation` | data | yes | `obligationPackage` | `package` | `!Text` | `(.package)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:50` | `BindingObligation` | data | yes | `obligationModule` | `moduleName` | `!Text` | `(.moduleName)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:51` | `BindingObligation` | data | yes | `obligationSymbol` | `symbol` | `!Text` | `(.symbol)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:52` | `BindingObligation` | data | yes | `obligationKind` | `kind` | `!BindingObligationKind` | `(.kind)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:53` | `BindingObligation` | data | yes | `obligationSignature` | `signature` | `!Text` | `(.signature)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:54` | `BindingObligation` | data | yes | `obligationUseSites` | `useSites` | `![Text]` | `(.useSites)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:55` | `BindingObligation` | data | yes | `obligationBindingVersion` | `bindingVersion` | `!(Maybe Text)` | `(.bindingVersion)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:56` | `BindingObligation` | data | yes | `obligationCanonicalType` | `canonicalType` | `!(Maybe Text)` | `(.canonicalType)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:57` | `BindingObligation` | data | yes | `obligationEqualityContract` | `equalityContract` | `!(Maybe Text)` | `(.equalityContract)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:58` | `BindingObligation` | data | yes | `obligationIdDomainContract` | `idDomainContract` | `!(Maybe Text)` | `(.idDomainContract)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:59` | `BindingObligation` | data | yes | `obligationCategory` | `category` | `!Text` | `(.category)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:64` | `BindingHole` | data | yes | `holeMappedName` | `mappedName` | `!Name` | `(.mappedName)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:65` | `BindingHole` | data | yes | `holeModule` | `moduleName` | `!Text` | `(.moduleName)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:66` | `BindingHole` | data | yes | `holeSymbol` | `symbol` | `!Text` | `(.symbol)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:67` | `BindingHole` | data | yes | `holeKind` | `kind` | `!BindingObligationKind` | `(.kind)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:68` | `BindingHole` | data | yes | `holePath` | `path` | `!(Maybe Text)` | `(.path)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:69` | `BindingHole` | data | yes | `holeSignature` | `signature` | `!Text` | `(.signature)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Expression.hs:45` | `ExpressionEnvironment` | data | no | `environmentSpec` | `spec` | `!Spec` | `(.spec)`, pattern, or construction | Haskell API and runtime semantics | `none` |-| `keiro-dsl/src/Keiro/Dsl/Expression.hs:46` | `ExpressionEnvironment` | data | no | `environmentAggregate` | `aggregate` | `!Aggregate` | `(.aggregate)`, pattern, or construction | Haskell API and runtime semantics | `none` |-| `keiro-dsl/src/Keiro/Dsl/Expression.hs:47` | `ExpressionEnvironment` | data | no | `environmentTransition` | `transition` | `!Transition` | `(.transition)`, pattern, or construction | Haskell API and runtime semantics | `none` |-| `keiro-dsl/src/Keiro/Dsl/Expression.hs:48` | `ExpressionEnvironment` | data | no | `environmentSymbols` | `symbols` | `!AggregateSymbols` | `(.symbols)`, pattern, or construction | Haskell API and runtime semantics | `none` |-| `keiro-dsl/src/Keiro/Dsl/Expression.hs:49` | `ExpressionEnvironment` | data | no | `environmentTypeGraph` | `typeGraph` | `!(Maybe TypeGraph)` | `(.typeGraph)`, pattern, or construction | Haskell API and runtime semantics | `none` |-| `keiro-dsl/src/Keiro/Dsl/Expression.hs:88` | `ResolvedScalarProjection` | data | yes | `scalarProjectionOwner` | `owner` | `!MappedKey` | `(.owner)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Expression.hs:89` | `ResolvedScalarProjection` | data | yes | `scalarProjectionPointer` | `pointer` | `!Text` | `(.pointer)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Expression.hs:90` | `ResolvedScalarProjection` | data | yes | `scalarProjectionFields` | `fields` | `![Name]` | `(.fields)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Expression.hs:91` | `ResolvedScalarProjection` | data | yes | `terminalNominal` | `terminalNominal` | `!(Maybe NominalLeaf)` | `(.terminalNominal)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Expression.hs:128` | `TypedScalarExpr` | data | yes | `typedScalarType` | `valueType` | `!ResolvedAggregateType` | `(.valueType)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Expression.hs:129` | `TypedScalarExpr` | data | yes | `typedScalarLoc` | `loc` | `!Loc` | `(.loc)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Expression.hs:130` | `TypedScalarExpr` | data | yes | `typedScalarNode` | `node` | `!TypedScalarNode` | `(.node)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Expression.hs:156` | `ExpressionDiagnostic` | data | yes | `expressionDiagnosticLoc` | `loc` | `!Loc` | `(.loc)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Expression.hs:157` | `ExpressionDiagnostic` | data | yes | `expressionDiagnosticCode` | `code` | `!ExpressionDiagnosticCode` | `(.code)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Expression.hs:158` | `ExpressionDiagnostic` | data | yes | `expressionDiagnosticMessage` | `message` | `!Text` | `(.message)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:51` | `BindingObligation` | data | yes | `obligationMappedName` | `mappedName` | `!Name` | `(.mappedName)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:52` | `BindingObligation` | data | yes | `obligationPackage` | `package` | `!Text` | `(.package)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:53` | `BindingObligation` | data | yes | `obligationModule` | `moduleName` | `!Text` | `(.moduleName)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:54` | `BindingObligation` | data | yes | `obligationSymbol` | `symbol` | `!Text` | `(.symbol)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:55` | `BindingObligation` | data | yes | `obligationKind` | `kind` | `!BindingObligationKind` | `(.kind)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:56` | `BindingObligation` | data | yes | `obligationSignature` | `signature` | `!Text` | `(.signature)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:57` | `BindingObligation` | data | yes | `obligationUseSites` | `useSites` | `![Text]` | `(.useSites)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:58` | `BindingObligation` | data | yes | `obligationBindingVersion` | `bindingVersion` | `!(Maybe Text)` | `(.bindingVersion)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:59` | `BindingObligation` | data | yes | `obligationCanonicalType` | `canonicalType` | `!(Maybe Text)` | `(.canonicalType)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:60` | `BindingObligation` | data | yes | `obligationEqualityContract` | `equalityContract` | `!(Maybe Text)` | `(.equalityContract)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:61` | `BindingObligation` | data | yes | `obligationIdDomainContract` | `idDomainContract` | `!(Maybe Text)` | `(.idDomainContract)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:62` | `BindingObligation` | data | yes | `obligationCategory` | `category` | `!Text` | `(.category)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:67` | `BindingHole` | data | yes | `holeMappedName` | `mappedName` | `!Name` | `(.mappedName)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:68` | `BindingHole` | data | yes | `holeModule` | `moduleName` | `!Text` | `(.moduleName)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:69` | `BindingHole` | data | yes | `holeSymbol` | `symbol` | `!Text` | `(.symbol)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:70` | `BindingHole` | data | yes | `holeKind` | `kind` | `!BindingObligationKind` | `(.kind)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:71` | `BindingHole` | data | yes | `holePath` | `path` | `!(Maybe Text)` | `(.path)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ExplainBindings.hs:72` | `BindingHole` | data | yes | `holeSignature` | `signature` | `!Text` | `(.signature)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Expression.hs:46` | `ExpressionEnvironment` | data | no | `environmentSpec` | `spec` | `!Spec` | `(.spec)`, pattern, or construction | Haskell API and runtime semantics | `none` |+| `keiro-dsl/src/Keiro/Dsl/Expression.hs:47` | `ExpressionEnvironment` | data | no | `environmentAggregate` | `aggregate` | `!Aggregate` | `(.aggregate)`, pattern, or construction | Haskell API and runtime semantics | `none` |+| `keiro-dsl/src/Keiro/Dsl/Expression.hs:48` | `ExpressionEnvironment` | data | no | `environmentTransition` | `transition` | `!Transition` | `(.transition)`, pattern, or construction | Haskell API and runtime semantics | `none` |+| `keiro-dsl/src/Keiro/Dsl/Expression.hs:49` | `ExpressionEnvironment` | data | no | `environmentSymbols` | `symbols` | `!AggregateSymbols` | `(.symbols)`, pattern, or construction | Haskell API and runtime semantics | `none` |+| `keiro-dsl/src/Keiro/Dsl/Expression.hs:50` | `ExpressionEnvironment` | data | no | `environmentTypeGraph` | `typeGraph` | `!(Maybe TypeGraph)` | `(.typeGraph)`, pattern, or construction | Haskell API and runtime semantics | `none` |+| `keiro-dsl/src/Keiro/Dsl/Expression.hs:89` | `ResolvedScalarProjection` | data | yes | `scalarProjectionOwner` | `owner` | `!MappedKey` | `(.owner)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Expression.hs:90` | `ResolvedScalarProjection` | data | yes | `scalarProjectionPointer` | `pointer` | `!Text` | `(.pointer)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Expression.hs:91` | `ResolvedScalarProjection` | data | yes | `scalarProjectionFields` | `fields` | `![Name]` | `(.fields)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Expression.hs:92` | `ResolvedScalarProjection` | data | yes | `terminalNominal` | `terminalNominal` | `!(Maybe NominalLeaf)` | `(.terminalNominal)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Expression.hs:129` | `TypedScalarExpr` | data | yes | `typedScalarType` | `valueType` | `!ResolvedAggregateType` | `(.valueType)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Expression.hs:130` | `TypedScalarExpr` | data | yes | `typedScalarLoc` | `loc` | `!Loc` | `(.loc)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Expression.hs:131` | `TypedScalarExpr` | data | yes | `typedScalarNode` | `node` | `!TypedScalarNode` | `(.node)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Expression.hs:157` | `ExpressionDiagnostic` | data | yes | `expressionDiagnosticLoc` | `loc` | `!Loc` | `(.loc)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Expression.hs:158` | `ExpressionDiagnostic` | data | yes | `expressionDiagnosticCode` | `code` | `!ExpressionDiagnosticCode` | `(.code)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Expression.hs:159` | `ExpressionDiagnostic` | data | yes | `expressionDiagnosticMessage` | `message` | `!Text` | `(.message)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/FieldIdentity.hs:18` | `ResolvedFieldIdentity` | data | no | `fieldDslName` | `dslName` | `!Name` | `(.dslName)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/FieldIdentity.hs:19` | `ResolvedFieldIdentity` | data | no | `fieldSelector` | `selector` | `!Text` | `(.selector)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/FieldIdentity.hs:20` | `ResolvedFieldIdentity` | data | no | `fieldWireKey` | `wireKey` | `!Text` | `(.wireKey)`, pattern, or construction | Haskell API and runtime semantics | `deriving stock (Eq, Show)` |@@ -935,23 +941,23 @@ | `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:98` | `SourceLanguage` | data | yes | `languageVersionLoc` | `languageVersionLoc` | `!Loc` | `(.languageVersionLoc)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:120` | `SyntaxProfile` | data | no | `profileIdentifier` | `identifier` | `!Text` | `(.identifier)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show, Generic)` | | `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:121` | `SyntaxProfile` | data | no | `profileFeatures` | `features` | `!(Set LanguageFeature)` | `(.features)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show, Generic)` |-| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:157` | `RuntimeSemanticsProfile` | data | no | `runtimeSemanticsIdentifier` | `identifier` | `!Text` | `(.identifier)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show, Generic)` |-| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:158` | `RuntimeSemanticsProfile` | data | no | `runtimeSemanticsCapabilities` | `capabilities` | `!(Set RuntimeCapability)` | `(.capabilities)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show, Generic)` |-| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:229` | `LanguageDefinition` | data | yes | `definitionVersion` | `version` | `!LanguageVersion` | `(.version)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show, Generic)` |-| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:230` | `LanguageDefinition` | data | yes | `definitionPredecessor` | `predecessor` | `!(Maybe LanguageVersion)` | `(.predecessor)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show, Generic)` |-| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:233` | `LanguageDefinition` | data | yes | `definitionBodyParser` | `bodyParser` | `!LanguageBodyParser` | `(.bodyParser)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show, Generic)` |-| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:234` | `LanguageDefinition` | data | yes | `definitionSyntaxProfile` | `syntaxProfile` | `!SyntaxProfile` | `(.syntaxProfile)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show, Generic)` |-| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:235` | `LanguageDefinition` | data | yes | `definitionRuntimeSemanticsProfile` | `runtimeSemanticsProfile` | `!RuntimeSemanticsProfile` | `(.runtimeSemanticsProfile)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show, Generic)` |-| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:236` | `LanguageDefinition` | data | yes | `definitionSupport` | `support` | `!LanguageSupport` | `(.support)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show, Generic)` |-| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:237` | `LanguageDefinition` | data | yes | `definitionMaturity` | `maturity` | `!LanguageMaturity` | `(.maturity)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show, Generic)` |-| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:480` | `SourceLanguageDiagnostic` | data | yes | `sourceLanguageErrorCode` | `errorCode` | `!SourceLanguageErrorCode` | `(.errorCode)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:481` | `SourceLanguageDiagnostic` | data | yes | `sourceLanguageSource` | `source` | `!FilePath` | `(.source)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:482` | `SourceLanguageDiagnostic` | data | yes | `sourceLanguageLoc` | `loc` | `!Loc` | `(.loc)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:483` | `SourceLanguageDiagnostic` | data | yes | `sourceLanguageToken` | `token` | `!(Maybe Text)` | `(.token)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:484` | `SourceLanguageDiagnostic` | data | yes | `sourceLanguageDeclaredVersion` | `declaredVersion` | `!(Maybe LanguageVersion)` | `(.declaredVersion)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:485` | `SourceLanguageDiagnostic` | data | yes | `sourceLanguageSupportedVersions` | `supportedVersions` | `!(NonEmpty LanguageVersion)` | `(.supportedVersions)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:552` | `ParsedSource` | data | yes | `parsedSourceLanguage` | `sourceLanguage` | `!SourceLanguage` | `(.sourceLanguage)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:553` | `ParsedSource` | data | yes | `parsedSpec` | `spec` | `!Spec` | `(.spec)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:158` | `RuntimeSemanticsProfile` | data | no | `runtimeSemanticsIdentifier` | `identifier` | `!Text` | `(.identifier)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show, Generic)` |+| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:159` | `RuntimeSemanticsProfile` | data | no | `runtimeSemanticsCapabilities` | `capabilities` | `!(Set RuntimeCapability)` | `(.capabilities)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show, Generic)` |+| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:232` | `LanguageDefinition` | data | yes | `definitionVersion` | `version` | `!LanguageVersion` | `(.version)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show, Generic)` |+| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:233` | `LanguageDefinition` | data | yes | `definitionPredecessor` | `predecessor` | `!(Maybe LanguageVersion)` | `(.predecessor)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show, Generic)` |+| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:236` | `LanguageDefinition` | data | yes | `definitionBodyParser` | `bodyParser` | `!LanguageBodyParser` | `(.bodyParser)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show, Generic)` |+| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:237` | `LanguageDefinition` | data | yes | `definitionSyntaxProfile` | `syntaxProfile` | `!SyntaxProfile` | `(.syntaxProfile)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show, Generic)` |+| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:238` | `LanguageDefinition` | data | yes | `definitionRuntimeSemanticsProfile` | `runtimeSemanticsProfile` | `!RuntimeSemanticsProfile` | `(.runtimeSemanticsProfile)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show, Generic)` |+| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:239` | `LanguageDefinition` | data | yes | `definitionSupport` | `support` | `!LanguageSupport` | `(.support)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show, Generic)` |+| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:240` | `LanguageDefinition` | data | yes | `definitionMaturity` | `maturity` | `!LanguageMaturity` | `(.maturity)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show, Generic)` |+| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:483` | `SourceLanguageDiagnostic` | data | yes | `sourceLanguageErrorCode` | `errorCode` | `!SourceLanguageErrorCode` | `(.errorCode)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:484` | `SourceLanguageDiagnostic` | data | yes | `sourceLanguageSource` | `source` | `!FilePath` | `(.source)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:485` | `SourceLanguageDiagnostic` | data | yes | `sourceLanguageLoc` | `loc` | `!Loc` | `(.loc)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:486` | `SourceLanguageDiagnostic` | data | yes | `sourceLanguageToken` | `token` | `!(Maybe Text)` | `(.token)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:487` | `SourceLanguageDiagnostic` | data | yes | `sourceLanguageDeclaredVersion` | `declaredVersion` | `!(Maybe LanguageVersion)` | `(.declaredVersion)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:488` | `SourceLanguageDiagnostic` | data | yes | `sourceLanguageSupportedVersions` | `supportedVersions` | `!(NonEmpty LanguageVersion)` | `(.supportedVersions)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:555` | `ParsedSource` | data | yes | `parsedSourceLanguage` | `sourceLanguage` | `!SourceLanguage` | `(.sourceLanguage)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/LanguageVersion.hs:556` | `ParsedSource` | data | yes | `parsedSpec` | `spec` | `!Spec` | `(.spec)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/MappedCodecPlan.hs:42` | `MappedCodecPlan` | data | yes | `consumerType` | `consumerType` | `!ConsumerTypePlan` | `(.consumerType)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/MappedCodecPlan.hs:43` | `MappedCodecPlan` | data | yes | `resolvedExpression` | `resolvedExpression` | `!ResolvedTypeExpr` | `(.resolvedExpression)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/MappedCodecPlan.hs:44` | `MappedCodecPlan` | data | yes | `authority` | `authority` | `!(Set MappedAuthorityMode)` | `(.authority)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |@@ -1103,93 +1109,94 @@ | `keiro-dsl/src/Keiro/Dsl/RouterSelection.hs:194` | `RouterSelectionDiagnostic` | data | yes | `selectionDiagnosticCode` | `code` | `!RouterSelectionDiagnosticCode` | `(.code)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Show, Generic)` | | `keiro-dsl/src/Keiro/Dsl/RouterSelection.hs:195` | `RouterSelectionDiagnostic` | data | yes | `selectionDiagnosticMessage` | `message` | `!Text` | `(.message)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Show, Generic)` | | `keiro-dsl/src/Keiro/Dsl/RuntimePackage.hs:18` | `RuntimePackageName` | newtype | yes | `unRuntimePackageName` | `unRuntimePackageName` | `Text` | explicit `unRuntimePackageName` positional function | Haskell API and runtime semantics | `deriving stock (Eq, Ord, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:159` | `ScaffoldModule` | data | yes | `modulePath` | `path` | `!FilePath` | `(.path)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:160` | `ScaffoldModule` | data | yes | `moduleText` | `text` | `!Text` | `(.text)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:161` | `ScaffoldModule` | data | yes | `kind` | `kind` | `!ModuleKind` | `(.kind)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:162` | `ScaffoldModule` | data | yes | `origin` | `origin` | `!Text` | `(.origin)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:170` | `ModuleRole` | data | yes | `roleOwnerKind` | `ownerKind` | `!Text` | `(.ownerKind)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:171` | `ModuleRole` | data | yes | `roleOwnerName` | `ownerName` | `!Text` | `(.ownerName)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:172` | `ModuleRole` | data | yes | `roleFamily` | `family` | `!Text` | `(.family)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:203` | `Context` | data | yes | `contextName` | `name` | `!Text` | `(.name)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:205` | `Context` | data | yes | `moduleRoot` | `moduleRoot` | `!Text` | `(.moduleRoot)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:207` | `Context` | data | yes | `placement` | `placement` | `!Placement` | `(.placement)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:215` | `NominalUseSite` | data | yes | `nominalUseAggregate` | `aggregate` | `!Name` | `(.aggregate)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:216` | `NominalUseSite` | data | yes | `nominalUseKind` | `kind` | `!AggregateUseSite` | `(.kind)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:224` | `NominalGenerationOwner` | data | yes | `nominalDeclaration` | `declaration` | `!ResolvedNominalType` | `(.declaration)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:225` | `NominalGenerationOwner` | data | yes | `nominalModule` | `moduleName` | `!Text` | `(.moduleName)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:226` | `NominalGenerationOwner` | data | yes | `nominalUseSites` | `useSites` | `!(Set.Set NominalUseSite)` | `(.useSites)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:227` | `NominalGenerationOwner` | data | yes | `nominalEqualityUsed` | `equalityUsed` | `!Bool` | `(.equalityUsed)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:339` | `FirewallSurface` | data | yes | `forbiddenSymbolic` | `forbiddenSymbolic` | `![Text]` | `(.forbiddenSymbolic)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:340` | `FirewallSurface` | data | yes | `forbiddenIdents` | `forbiddenIdents` | `![Text]` | `(.forbiddenIdents)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:341` | `FirewallSurface` | data | yes | `forbiddenQualifiers` | `forbiddenQualifiers` | `![Text]` | `(.forbiddenQualifiers)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:342` | `FirewallSurface` | data | yes | `forbiddenImports` | `forbiddenImports` | `![Text]` | `(.forbiddenImports)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:343` | `FirewallSurface` | data | yes | `restrictedImports` | `restrictedImports` | `![(Text, [Text])]` | `(.restrictedImports)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:494` | `Agg` | data | yes | `aContext` | `context` | `!Context` | `(.context)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:495` | `Agg` | data | yes | `aCheckedService` | `checkedService` | `!CheckedService` | `(.checkedService)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:496` | `Agg` | data | yes | `aLanguageContract` | `languageContract` | `!EffectiveLanguageContract` | `(.languageContract)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:497` | `Agg` | data | yes | `aSpec` | `spec` | `!Spec` | `(.spec)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:498` | `Agg` | data | yes | `aAggregate` | `aggregate` | `!Aggregate` | `(.aggregate)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:499` | `Agg` | data | yes | `aCtxPascal` | `ctxPascal` | `!Text` | `(.ctxPascal)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:500` | `Agg` | data | yes | `aName` | `name` | `!Text` | `(.name)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:501` | `Agg` | data | yes | `aLoc` | `loc` | `!Loc` | `(.loc)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:502` | `Agg` | data | yes | `aVertexType` | `vertexType` | `!Text` | `(.vertexType)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:503` | `Agg` | data | yes | `aIds` | `ids` | `![IdDecl]` | `(.ids)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:504` | `Agg` | data | yes | `aEnums` | `enums` | `![EnumDecl]` | `(.enums)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:505` | `Agg` | data | yes | `aRegs` | `regs` | `![ResolvedRegister]` | `(.regs)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:506` | `Agg` | data | yes | `aStates` | `states` | `![StateDecl]` | `(.states)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:507` | `Agg` | data | yes | `aCommands` | `commands` | `![ResolvedCtor]` | `(.commands)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:508` | `Agg` | data | yes | `aEvents` | `events` | `![ResolvedCtor]` | `(.events)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:509` | `Agg` | data | yes | `aDomainOutcomeTypes` | `domainOutcomeTypes` | `!(Maybe ResolvedDomainOutcomeTypes)` | `(.domainOutcomeTypes)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:511` | `Agg` | data | yes | `aGeneratedNominals` | `generatedNominals` | `![ResolvedNominalType]` | `(.generatedNominals)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:512` | `Agg` | data | yes | `aTransitions` | `transitions` | `![Transition]` | `(.transitions)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:513` | `Agg` | data | yes | `aOutputMappings` | `outputMappings` | `!(Map.Map (Int, Int) EventOutputMapping)` | `(.outputMappings)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:514` | `Agg` | data | yes | `aWire` | `wire` | `!WireSpec` | `(.wire)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:515` | `Agg` | data | yes | `aProjection` | `projection` | `!(Maybe ProjectionSpec)` | `(.projection)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:516` | `Agg` | data | yes | `aSnapshot` | `snapshot` | `!(Maybe SnapshotSpec)` | `(.snapshot)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:517` | `Agg` | data | yes | `aFoldFingerprint` | `foldFingerprint` | `!Text` | `(.foldFingerprint)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:518` | `Agg` | data | yes | `aReadModels` | `readModels` | `![ReadModelNode]` | `(.readModels)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:519` | `Agg` | data | yes | `aTypeGraph` | `typeGraph` | `!(Maybe TypeGraph)` | `(.typeGraph)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:520` | `Agg` | data | yes | `aSymbols` | `symbols` | `!AggregateSymbols` | `(.symbols)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:522` | `Agg` | data | yes | `aGenPrefix` | `genPrefix` | `!Text` | `(.genPrefix)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:524` | `Agg` | data | yes | `aHolePrefix` | `holePrefix` | `!Text` | `(.holePrefix)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:528` | `ResolvedDomainOutcomeTypes` | data | yes | `resolvedRejectionType` | `rejectionType` | `!ResolvedAggregateType` | `(.rejectionType)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:529` | `ResolvedDomainOutcomeTypes` | data | yes | `resolvedNoOpType` | `noOpType` | `!ResolvedAggregateType` | `(.noOpType)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:537` | `ResolvedRegister` | data | yes | `rrName` | `name` | `!Name` | `(.name)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:538` | `ResolvedRegister` | data | yes | `rrType` | `valueType` | `!ResolvedAggregateType` | `(.valueType)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:539` | `ResolvedRegister` | data | yes | `rrInitial` | `initial` | `!ResolvedRegisterInitial` | `(.initial)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:540` | `ResolvedRegister` | data | yes | `rrLoc` | `loc` | `!Loc` | `(.loc)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:547` | `ResolvedCtor` | data | yes | `rcName` | `name` | `!Text` | `(.name)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:549` | `ResolvedCtor` | data | yes | `rcFields` | `fields` | `![(ResolvedFieldIdentity, ResolvedAggregateType)]` | `(.fields)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:551` | `ResolvedCtor` | data | yes | `rcVersion` | `version` | `!Int` | `(.version)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:553` | `ResolvedCtor` | data | yes | `rcUpcastFrom` | `upcastFrom` | `!(Maybe Int)` | `(.upcastFrom)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2602` | `RenderedShapeType` | data | no | `renderedShapeTypePrecedence` | `precedence` | `!ShapeTypePrecedence` | `(.precedence)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2603` | `RenderedShapeType` | data | no | `renderedShapeTypeText` | `text` | `!Text` | `(.text)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2618` | `StructuralProjection` | data | yes | `spTag` | `tag` | `!Text` | `(.tag)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2619` | `StructuralProjection` | data | yes | `spWitness` | `witness` | `!Text` | `(.witness)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2620` | `StructuralProjection` | data | yes | `getter` | `getter` | `!Text` | `(.getter)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2621` | `StructuralProjection` | data | yes | `rawGetter` | `rawGetter` | `!(Maybe Text)` | `(.rawGetter)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2622` | `StructuralProjection` | data | yes | `spPointer` | `pointer` | `!Text` | `(.pointer)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2623` | `StructuralProjection` | data | yes | `spOwner` | `owner` | `!HaskellSource` | `(.owner)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2624` | `StructuralProjection` | data | yes | `spResult` | `result` | `!Text` | `(.result)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2625` | `StructuralProjection` | data | yes | `spCanonical` | `canonical` | `!CanonicalTypeId` | `(.canonical)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2626` | `StructuralProjection` | data | yes | `spBinding` | `binding` | `!QualifiedValueName` | `(.binding)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2627` | `StructuralProjection` | data | yes | `fixtures` | `fixtures` | `!QualifiedValueName` | `(.fixtures)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2628` | `StructuralProjection` | data | yes | `terminalNominal` | `terminalNominal` | `!(Maybe NominalLeaf)` | `(.terminalNominal)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2629` | `StructuralProjection` | data | yes | `spSelectors` | `selectors` | `![(Text, Text)]` | `(.selectors)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:4483` | `ResolvedQueueField` | data | no | `resolvedQueueField` | `field` | `!WqField` | `(.field)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:4484` | `ResolvedQueueField` | data | no | `resolvedQueueExpression` | `expression` | `!(Maybe ResolvedTypeExpr)` | `(.expression)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:4485` | `ResolvedQueueField` | data | no | `resolvedQueueCodecPlan` | `codecPlan` | `!(Maybe MappedCodecPlan)` | `(.codecPlan)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:8579` | `ResolvedGeneratedTransition` | data | no | `resolvedTransitionIndex` | `index` | `!Int` | `(.index)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:8580` | `ResolvedGeneratedTransition` | data | no | `resolvedTransitionSource` | `source` | `!Transition` | `(.source)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:8581` | `ResolvedGeneratedTransition` | data | no | `resolvedTransitionGuard` | `guard` | `!(Maybe TypedScalarExpr)` | `(.guard)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:8582` | `ResolvedGeneratedTransition` | data | no | `resolvedTransitionWrites` | `writes` | `![(Name, TypedScalarExpr)]` | `(.writes)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:8590` | `ResolvedSilentOutcome` | data | no | `resolvedSilentLayout` | `layout` | `!TransitionLayoutEntry` | `(.layout)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:8591` | `ResolvedSilentOutcome` | data | no | `resolvedSilentKind` | `kind` | `!SilentOutcomeKind` | `(.kind)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:8592` | `ResolvedSilentOutcome` | data | no | `resolvedSilentReason` | `reason` | `!TypedScalarExpr` | `(.reason)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:8730` | `ProjectionAlias` | data | no | `projectionAliasTarget` | `target` | `!ProjectionAliasTarget` | `(.target)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:8731` | `ProjectionAlias` | data | no | `projectionAliasName` | `name` | `!Text` | `(.name)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:8807` | `RenderedKeikiExpr` | data | no | `renderedKeikiText` | `text` | `!Text` | `(.text)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:8808` | `RenderedKeikiExpr` | data | no | `renderedKeikiPrecedence` | `precedence` | `!Int` | `(.precedence)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:162` | `ScaffoldModule` | data | yes | `modulePath` | `path` | `!FilePath` | `(.path)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:163` | `ScaffoldModule` | data | yes | `moduleText` | `text` | `!Text` | `(.text)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:164` | `ScaffoldModule` | data | yes | `kind` | `kind` | `!ModuleKind` | `(.kind)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:165` | `ScaffoldModule` | data | yes | `origin` | `origin` | `!Text` | `(.origin)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:173` | `ModuleRole` | data | yes | `roleOwnerKind` | `ownerKind` | `!Text` | `(.ownerKind)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:174` | `ModuleRole` | data | yes | `roleOwnerName` | `ownerName` | `!Text` | `(.ownerName)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:175` | `ModuleRole` | data | yes | `roleFamily` | `family` | `!Text` | `(.family)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:206` | `Context` | data | yes | `contextName` | `name` | `!Text` | `(.name)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:208` | `Context` | data | yes | `moduleRoot` | `moduleRoot` | `!Text` | `(.moduleRoot)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:210` | `Context` | data | yes | `placement` | `placement` | `!Placement` | `(.placement)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:218` | `NominalUseSite` | data | yes | `nominalUseAggregate` | `aggregate` | `!Name` | `(.aggregate)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:219` | `NominalUseSite` | data | yes | `nominalUseKind` | `kind` | `!AggregateUseSite` | `(.kind)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:227` | `NominalGenerationOwner` | data | yes | `nominalDeclaration` | `declaration` | `!ResolvedNominalType` | `(.declaration)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:228` | `NominalGenerationOwner` | data | yes | `nominalModule` | `moduleName` | `!Text` | `(.moduleName)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:229` | `NominalGenerationOwner` | data | yes | `nominalUseSites` | `useSites` | `!(Set.Set NominalUseSite)` | `(.useSites)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:230` | `NominalGenerationOwner` | data | yes | `nominalEqualityUsed` | `equalityUsed` | `!Bool` | `(.equalityUsed)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:342` | `FirewallSurface` | data | yes | `forbiddenSymbolic` | `forbiddenSymbolic` | `![Text]` | `(.forbiddenSymbolic)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:343` | `FirewallSurface` | data | yes | `forbiddenIdents` | `forbiddenIdents` | `![Text]` | `(.forbiddenIdents)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:344` | `FirewallSurface` | data | yes | `forbiddenQualifiers` | `forbiddenQualifiers` | `![Text]` | `(.forbiddenQualifiers)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:345` | `FirewallSurface` | data | yes | `forbiddenImports` | `forbiddenImports` | `![Text]` | `(.forbiddenImports)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:346` | `FirewallSurface` | data | yes | `restrictedImports` | `restrictedImports` | `![(Text, [Text])]` | `(.restrictedImports)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:499` | `Agg` | data | yes | `aContext` | `context` | `!Context` | `(.context)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:500` | `Agg` | data | yes | `aCheckedService` | `checkedService` | `!CheckedService` | `(.checkedService)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:501` | `Agg` | data | yes | `aLanguageContract` | `languageContract` | `!EffectiveLanguageContract` | `(.languageContract)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:502` | `Agg` | data | yes | `aSpec` | `spec` | `!Spec` | `(.spec)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:503` | `Agg` | data | yes | `aAggregate` | `aggregate` | `!Aggregate` | `(.aggregate)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:504` | `Agg` | data | yes | `aCtxPascal` | `ctxPascal` | `!Text` | `(.ctxPascal)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:505` | `Agg` | data | yes | `aName` | `name` | `!Text` | `(.name)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:506` | `Agg` | data | yes | `aLoc` | `loc` | `!Loc` | `(.loc)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:507` | `Agg` | data | yes | `aVertexType` | `vertexType` | `!Text` | `(.vertexType)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:508` | `Agg` | data | yes | `aIds` | `ids` | `![IdDecl]` | `(.ids)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:509` | `Agg` | data | yes | `aEnums` | `enums` | `![EnumDecl]` | `(.enums)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:510` | `Agg` | data | yes | `aRegs` | `regs` | `![ResolvedRegister]` | `(.regs)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:511` | `Agg` | data | yes | `aStates` | `states` | `![StateDecl]` | `(.states)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:512` | `Agg` | data | yes | `aCommands` | `commands` | `![ResolvedCtor]` | `(.commands)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:513` | `Agg` | data | yes | `aEvents` | `events` | `![ResolvedCtor]` | `(.events)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:514` | `Agg` | data | yes | `aDomainOutcomeTypes` | `domainOutcomeTypes` | `!(Maybe ResolvedDomainOutcomeTypes)` | `(.domainOutcomeTypes)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:516` | `Agg` | data | yes | `aGeneratedNominals` | `generatedNominals` | `![ResolvedNominalType]` | `(.generatedNominals)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:517` | `Agg` | data | yes | `aTransitions` | `transitions` | `![Transition]` | `(.transitions)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:518` | `Agg` | data | yes | `aOutputMappings` | `outputMappings` | `!(Map.Map (Int, Int) EventOutputMapping)` | `(.outputMappings)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:519` | `Agg` | data | yes | `aWire` | `wire` | `!WireSpec` | `(.wire)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:520` | `Agg` | data | yes | `aProjection` | `projection` | `!(Maybe ProjectionSpec)` | `(.projection)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:521` | `Agg` | data | yes | `aSnapshot` | `snapshot` | `!(Maybe SnapshotSpec)` | `(.snapshot)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:522` | `Agg` | data | yes | `aFoldFingerprint` | `foldFingerprint` | `!Text` | `(.foldFingerprint)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:523` | `Agg` | data | yes | `aReadModels` | `readModels` | `![ReadModelNode]` | `(.readModels)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:524` | `Agg` | data | yes | `aTypeGraph` | `typeGraph` | `!(Maybe TypeGraph)` | `(.typeGraph)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:525` | `Agg` | data | yes | `aSymbols` | `symbols` | `!AggregateSymbols` | `(.symbols)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:527` | `Agg` | data | yes | `aGenPrefix` | `genPrefix` | `!Text` | `(.genPrefix)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:529` | `Agg` | data | yes | `aHolePrefix` | `holePrefix` | `!Text` | `(.holePrefix)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:533` | `ResolvedDomainOutcomeTypes` | data | yes | `resolvedRejectionType` | `rejectionType` | `!ResolvedAggregateType` | `(.rejectionType)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:534` | `ResolvedDomainOutcomeTypes` | data | yes | `resolvedNoOpType` | `noOpType` | `!ResolvedAggregateType` | `(.noOpType)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:542` | `ResolvedRegister` | data | yes | `rrName` | `name` | `!Name` | `(.name)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:543` | `ResolvedRegister` | data | yes | `rrType` | `valueType` | `!ResolvedAggregateType` | `(.valueType)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:544` | `ResolvedRegister` | data | yes | `rrInitial` | `initial` | `!ResolvedRegisterInitial` | `(.initial)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:545` | `ResolvedRegister` | data | yes | `rrLoc` | `loc` | `!Loc` | `(.loc)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:552` | `ResolvedCtor` | data | yes | `rcName` | `name` | `!Text` | `(.name)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:554` | `ResolvedCtor` | data | yes | `rcFields` | `fields` | `![(ResolvedFieldIdentity, ResolvedAggregateType)]` | `(.fields)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:556` | `ResolvedCtor` | data | yes | `rcVersion` | `version` | `!Int` | `(.version)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:558` | `ResolvedCtor` | data | yes | `rcUpcastFrom` | `upcastFrom` | `!(Maybe Int)` | `(.upcastFrom)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2607` | `RenderedShapeType` | data | no | `renderedShapeTypePrecedence` | `precedence` | `!ShapeTypePrecedence` | `(.precedence)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2608` | `RenderedShapeType` | data | no | `renderedShapeTypeText` | `text` | `!Text` | `(.text)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2623` | `StructuralProjection` | data | yes | `spTag` | `tag` | `!Text` | `(.tag)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2624` | `StructuralProjection` | data | yes | `spWitness` | `witness` | `!Text` | `(.witness)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2625` | `StructuralProjection` | data | yes | `getter` | `getter` | `!Text` | `(.getter)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2626` | `StructuralProjection` | data | yes | `rawGetter` | `rawGetter` | `!(Maybe Text)` | `(.rawGetter)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2627` | `StructuralProjection` | data | yes | `spPointer` | `pointer` | `!Text` | `(.pointer)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2628` | `StructuralProjection` | data | yes | `spOwner` | `owner` | `!HaskellSource` | `(.owner)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2629` | `StructuralProjection` | data | yes | `spResult` | `result` | `!Text` | `(.result)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2630` | `StructuralProjection` | data | yes | `spCanonical` | `canonical` | `!CanonicalTypeId` | `(.canonical)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2631` | `StructuralProjection` | data | yes | `spBinding` | `binding` | `!QualifiedValueName` | `(.binding)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2632` | `StructuralProjection` | data | yes | `fixtures` | `fixtures` | `!QualifiedValueName` | `(.fixtures)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2633` | `StructuralProjection` | data | yes | `terminalNominal` | `terminalNominal` | `!(Maybe NominalLeaf)` | `(.terminalNominal)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2634` | `StructuralProjection` | data | yes | `rootEnum` | `rootEnum` | `!(Maybe (Text, [(Name, Text)]))` | `(.rootEnum)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:2635` | `StructuralProjection` | data | yes | `spSelectors` | `selectors` | `![(Text, Text)]` | `(.selectors)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:4510` | `ResolvedQueueField` | data | no | `resolvedQueueField` | `field` | `!WqField` | `(.field)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:4511` | `ResolvedQueueField` | data | no | `resolvedQueueExpression` | `expression` | `!(Maybe ResolvedTypeExpr)` | `(.expression)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:4512` | `ResolvedQueueField` | data | no | `resolvedQueueCodecPlan` | `codecPlan` | `!(Maybe MappedCodecPlan)` | `(.codecPlan)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:8606` | `ResolvedGeneratedTransition` | data | no | `resolvedTransitionIndex` | `index` | `!Int` | `(.index)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:8607` | `ResolvedGeneratedTransition` | data | no | `resolvedTransitionSource` | `source` | `!Transition` | `(.source)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:8608` | `ResolvedGeneratedTransition` | data | no | `resolvedTransitionGuard` | `guard` | `!(Maybe TypedScalarExpr)` | `(.guard)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:8609` | `ResolvedGeneratedTransition` | data | no | `resolvedTransitionWrites` | `writes` | `![(Name, TypedScalarExpr)]` | `(.writes)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:8617` | `ResolvedSilentOutcome` | data | no | `resolvedSilentLayout` | `layout` | `!TransitionLayoutEntry` | `(.layout)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:8618` | `ResolvedSilentOutcome` | data | no | `resolvedSilentKind` | `kind` | `!SilentOutcomeKind` | `(.kind)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:8619` | `ResolvedSilentOutcome` | data | no | `resolvedSilentReason` | `reason` | `!TypedScalarExpr` | `(.reason)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:8774` | `ProjectionAlias` | data | no | `projectionAliasTarget` | `target` | `!ProjectionAliasTarget` | `(.target)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:8775` | `ProjectionAlias` | data | no | `projectionAliasName` | `name` | `!Text` | `(.name)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:8852` | `RenderedKeikiExpr` | data | no | `renderedKeikiText` | `text` | `!Text` | `(.text)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/Scaffold.hs:8853` | `RenderedKeikiExpr` | data | no | `renderedKeikiPrecedence` | `precedence` | `!Int` | `(.precedence)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:46` | `ScaffoldRecord` | data | yes | `recSpecPath` | `specPath` | `!Text` | `(.specPath)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:47` | `ScaffoldRecord` | data | yes | `recModuleRoot` | `moduleRoot` | `!Text` | `(.moduleRoot)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:48` | `ScaffoldRecord` | data | yes | `recLayout` | `layout` | `!Text` | `(.layout)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |@@ -1201,22 +1208,23 @@ | `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:54` | `ScaffoldRecord` | data | yes | `recMappings` | `mappings` | `![MappingIdentity]` | `(.mappings)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:55` | `ScaffoldRecord` | data | yes | `recIdDomains` | `idDomains` | `![Text]` | `(.idDomains)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:56` | `ScaffoldRecord` | data | yes | `recNominalEqualities` | `nominalEqualities` | `![Text]` | `(.nominalEqualities)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:57` | `ScaffoldRecord` | data | yes | `recBindingObligations` | `bindingObligations` | `![BindingHole]` | `(.bindingObligations)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:58` | `ScaffoldRecord` | data | yes | `recBehaviorRequirements` | `behaviorRequirements` | `![BehaviorRecordRow]` | `(.behaviorRequirements)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:59` | `ScaffoldRecord` | data | yes | `recProjectionCatalogFacts` | `projectionCatalogFacts` | `![Text]` | `(.projectionCatalogFacts)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:60` | `ScaffoldRecord` | data | yes | `recQueryContractBaseline` | `queryContractBaseline` | `!Bool` | `(.queryContractBaseline)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:61` | `ScaffoldRecord` | data | yes | `recQueryContracts` | `queryContracts` | `![QueryContractIdentity]` | `(.queryContracts)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:62` | `ScaffoldRecord` | data | yes | `recRouterSelections` | `routerSelections` | `![RouterSelectionSnapshot]` | `(.routerSelections)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:63` | `ScaffoldRecord` | data | yes | `processReactions` | `processReactions` | `![ProcessReactionRecordRow]` | `(.processReactions)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:64` | `ScaffoldRecord` | data | yes | `recSemanticImpact` | `semanticImpact` | `!(Maybe SemanticImpactSnapshot)` | `(.semanticImpact)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:69` | `ScaffoldModuleRoleRow` | data | yes | `srrRole` | `role` | `!ModuleRole` | `(.role)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:70` | `ScaffoldModuleRoleRow` | data | yes | `srrKind` | `kind` | `!ModuleKind` | `(.kind)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:71` | `ScaffoldModuleRoleRow` | data | yes | `srrPath` | `path` | `!FilePath` | `(.path)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:79` | `ProcessReactionRecordRow` | data | yes | `processName` | `processName` | `!Text` | `(.processName)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:80` | `ProcessReactionRecordRow` | data | yes | `verification` | `verification` | `!Text` | `(.verification)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:81` | `ProcessReactionRecordRow` | data | yes | `version` | `version` | `!(Maybe Natural)` | `(.version)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:82` | `ProcessReactionRecordRow` | data | yes | `fingerprint` | `fingerprint` | `!(Maybe Text)` | `(.fingerprint)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:83` | `ProcessReactionRecordRow` | data | yes | `holeObligations` | `holeObligations` | `![Text]` | `(.holeObligations)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:57` | `ScaffoldRecord` | data | yes | `structuralEnumEqualities` | `structuralEnumEqualities` | `![Text]` | `(.structuralEnumEqualities)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:58` | `ScaffoldRecord` | data | yes | `recBindingObligations` | `bindingObligations` | `![BindingHole]` | `(.bindingObligations)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:59` | `ScaffoldRecord` | data | yes | `recBehaviorRequirements` | `behaviorRequirements` | `![BehaviorRecordRow]` | `(.behaviorRequirements)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:60` | `ScaffoldRecord` | data | yes | `recProjectionCatalogFacts` | `projectionCatalogFacts` | `![Text]` | `(.projectionCatalogFacts)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:61` | `ScaffoldRecord` | data | yes | `recQueryContractBaseline` | `queryContractBaseline` | `!Bool` | `(.queryContractBaseline)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:62` | `ScaffoldRecord` | data | yes | `recQueryContracts` | `queryContracts` | `![QueryContractIdentity]` | `(.queryContracts)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:63` | `ScaffoldRecord` | data | yes | `recRouterSelections` | `routerSelections` | `![RouterSelectionSnapshot]` | `(.routerSelections)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:64` | `ScaffoldRecord` | data | yes | `processReactions` | `processReactions` | `![ProcessReactionRecordRow]` | `(.processReactions)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:65` | `ScaffoldRecord` | data | yes | `recSemanticImpact` | `semanticImpact` | `!(Maybe SemanticImpactSnapshot)` | `(.semanticImpact)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:70` | `ScaffoldModuleRoleRow` | data | yes | `srrRole` | `role` | `!ModuleRole` | `(.role)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:71` | `ScaffoldModuleRoleRow` | data | yes | `srrKind` | `kind` | `!ModuleKind` | `(.kind)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:72` | `ScaffoldModuleRoleRow` | data | yes | `srrPath` | `path` | `!FilePath` | `(.path)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:80` | `ProcessReactionRecordRow` | data | yes | `processName` | `processName` | `!Text` | `(.processName)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:81` | `ProcessReactionRecordRow` | data | yes | `verification` | `verification` | `!Text` | `(.verification)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:82` | `ProcessReactionRecordRow` | data | yes | `version` | `version` | `!(Maybe Natural)` | `(.version)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:83` | `ProcessReactionRecordRow` | data | yes | `fingerprint` | `fingerprint` | `!(Maybe Text)` | `(.fingerprint)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/ScaffoldRecord.hs:84` | `ProcessReactionRecordRow` | data | yes | `holeObligations` | `holeObligations` | `![Text]` | `(.holeObligations)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/ScaffoldRun.hs:198` | `GeneratedHaskellEditionUse` | data | yes | `path` | `path` | `!FilePath` | `(.path)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` | | `keiro-dsl/src/Keiro/Dsl/ScaffoldRun.hs:199` | `GeneratedHaskellEditionUse` | data | yes | `line` | `line` | `!Int` | `(.line)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` | | `keiro-dsl/src/Keiro/Dsl/ScaffoldRun.hs:200` | `GeneratedHaskellEditionUse` | data | yes | `current` | `current` | `!Text` | `(.current)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Ord, Show)` |@@ -1462,8 +1470,8 @@ | `keiro-dsl/src/Keiro/Dsl/Validate.hs:781` | `Diagnostic` | data | yes | `code` | `code` | `!DiagnosticCode` | `(.code)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/Validate.hs:782` | `Diagnostic` | data | yes | `relatedLocations` | `relatedLocations` | `![(Int, Text)]` | `(.relatedLocations)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/Validate.hs:783` | `Diagnostic` | data | yes | `message` | `message` | `!Text` | `(.message)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/Validate.hs:1725` | `NullabilityFacts` | data | no | `nfTopNull` | `topNull` | `!Bool` | `(.topNull)`, pattern, or construction | rendered/canonical output | `none` |-| `keiro-dsl/src/Keiro/Dsl/Validate.hs:1726` | `NullabilityFacts` | data | no | `nfBadOptional` | `badOptional` | `!Bool` | `(.badOptional)`, pattern, or construction | rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Validate.hs:1746` | `NullabilityFacts` | data | no | `nfTopNull` | `topNull` | `!Bool` | `(.topNull)`, pattern, or construction | rendered/canonical output | `none` |+| `keiro-dsl/src/Keiro/Dsl/Validate.hs:1747` | `NullabilityFacts` | data | no | `nfBadOptional` | `badOptional` | `!Bool` | `(.badOptional)`, pattern, or construction | rendered/canonical output | `none` | | `keiro-dsl/src/Keiro/Dsl/Workspace.hs:140` | `WorkspaceManifest` | data | yes | `wmfService` | `service` | `!Text` | `(.service)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/Workspace.hs:141` | `WorkspaceManifest` | data | yes | `wmfServiceLoc` | `serviceLoc` | `!Loc` | `(.serviceLoc)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/Workspace.hs:143` | `WorkspaceManifest` | data | yes | `wmfRuntimePackage` | `runtimePackage` | `!(Maybe RuntimePackageName)` | `(.runtimePackage)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Show)` |@@ -1537,14 +1545,15 @@ | `keiro-dsl/src/Keiro/Dsl/WorkspaceRecord.hs:207` | `WorkspaceRecord` | data | yes | `wrMappings` | `mappings` | `![MappingIdentity]` | `(.mappings)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/WorkspaceRecord.hs:208` | `WorkspaceRecord` | data | yes | `wrIdDomains` | `idDomains` | `![Text]` | `(.idDomains)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/WorkspaceRecord.hs:209` | `WorkspaceRecord` | data | yes | `wrNominalEqualities` | `nominalEqualities` | `![Text]` | `(.nominalEqualities)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/WorkspaceRecord.hs:210` | `WorkspaceRecord` | data | yes | `wrBindingObligations` | `bindingObligations` | `![BindingHole]` | `(.bindingObligations)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/WorkspaceRecord.hs:211` | `WorkspaceRecord` | data | yes | `requirements` | `requirements` | `![BehaviorRecordRow]` | `(.requirements)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/WorkspaceRecord.hs:212` | `WorkspaceRecord` | data | yes | `wrProjectionCatalogFacts` | `projectionCatalogFacts` | `![Text]` | `(.projectionCatalogFacts)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/WorkspaceRecord.hs:213` | `WorkspaceRecord` | data | yes | `wrQueryContractBaseline` | `queryContractBaseline` | `!Bool` | `(.queryContractBaseline)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/WorkspaceRecord.hs:214` | `WorkspaceRecord` | data | yes | `wrQueryContracts` | `queryContracts` | `![QueryContractIdentity]` | `(.queryContracts)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/WorkspaceRecord.hs:215` | `WorkspaceRecord` | data | yes | `wrRouterSelections` | `routerSelections` | `![RouterSelectionSnapshot]` | `(.routerSelections)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/WorkspaceRecord.hs:216` | `WorkspaceRecord` | data | yes | `wrAdopted` | `adopted` | `![AdoptedRow]` | `(.adopted)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |-| `keiro-dsl/src/Keiro/Dsl/WorkspaceRecord.hs:217` | `WorkspaceRecord` | data | yes | `wrSemanticImpact` | `semanticImpact` | `!(Maybe SemanticImpactSnapshot)` | `(.semanticImpact)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/WorkspaceRecord.hs:210` | `WorkspaceRecord` | data | yes | `structuralEnumEqualities` | `structuralEnumEqualities` | `![Text]` | `(.structuralEnumEqualities)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/WorkspaceRecord.hs:211` | `WorkspaceRecord` | data | yes | `wrBindingObligations` | `bindingObligations` | `![BindingHole]` | `(.bindingObligations)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/WorkspaceRecord.hs:212` | `WorkspaceRecord` | data | yes | `requirements` | `requirements` | `![BehaviorRecordRow]` | `(.requirements)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/WorkspaceRecord.hs:213` | `WorkspaceRecord` | data | yes | `wrProjectionCatalogFacts` | `projectionCatalogFacts` | `![Text]` | `(.projectionCatalogFacts)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/WorkspaceRecord.hs:214` | `WorkspaceRecord` | data | yes | `wrQueryContractBaseline` | `queryContractBaseline` | `!Bool` | `(.queryContractBaseline)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/WorkspaceRecord.hs:215` | `WorkspaceRecord` | data | yes | `wrQueryContracts` | `queryContracts` | `![QueryContractIdentity]` | `(.queryContracts)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/WorkspaceRecord.hs:216` | `WorkspaceRecord` | data | yes | `wrRouterSelections` | `routerSelections` | `![RouterSelectionSnapshot]` | `(.routerSelections)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/WorkspaceRecord.hs:217` | `WorkspaceRecord` | data | yes | `wrAdopted` | `adopted` | `![AdoptedRow]` | `(.adopted)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` |+| `keiro-dsl/src/Keiro/Dsl/WorkspaceRecord.hs:218` | `WorkspaceRecord` | data | yes | `wrSemanticImpact` | `semanticImpact` | `!(Maybe SemanticImpactSnapshot)` | `(.semanticImpact)`, pattern, or construction | serialized/wire review risk, rendered/canonical output | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/WorkspaceScaffold.hs:167` | `WorkspacePlan` | data | yes | `wpWorkspace` | `workspace` | `!WorkspaceSpec` | `(.workspace)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/WorkspaceScaffold.hs:168` | `WorkspacePlan` | data | yes | `wpCheckedService` | `checkedService` | `!CheckedService` | `(.checkedService)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Show)` | | `keiro-dsl/src/Keiro/Dsl/WorkspaceScaffold.hs:169` | `WorkspacePlan` | data | yes | `wpContext` | `context` | `!Context` | `(.context)`, pattern, or construction | rendered/canonical output | `deriving stock (Eq, Show)` |
src/Keiro/Dsl/AggregateType.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE PatternSynonyms #-}+{-# LANGUAGE ViewPatterns #-} {-# OPTIONS_GHC -Werror=incomplete-patterns #-}  -- | Canonical aggregate type resolution and capability policy.@@ -8,7 +10,9 @@ module Keiro.Dsl.AggregateType   ( AggregateUseSite (..),     AggregateCapability (..),-    ResolvedAggregateType (..),+    ResolvedAggregateType (AggregateText, AggregateInt, AggregateInteger, AggregateBool, AggregateTime, AggregateNatural, AggregateNominal, AggregateVertex, AggregateStructuralEnum, AggregateMapped),+    StructuralEnumEquality (..),+    structuralEnumEqualityIdentity,     AggregateSymbols,     aggregateSymbols,     aggregateSymbolsFromGraph,@@ -35,6 +39,9 @@   ) where +import Data.Aeson qualified as Aeson+import Data.ByteString.Lazy qualified as BL+import Data.List (sort) import Data.List.NonEmpty qualified as NE import Data.Map.Strict (Map) import Data.Map.Strict qualified as Map@@ -42,6 +49,7 @@ import Data.Set qualified as Set import Data.Text (Text) import Data.Text qualified as T+import Data.Text.Encoding qualified as TE import Data.Time.Calendar (toGregorian) import Data.Time.Clock (UTCTime (..), diffTimeToPicoseconds) import Data.Time.Format.ISO8601 (iso8601ParseM)@@ -79,9 +87,54 @@   | AggregateNatural   | AggregateNominal !ResolvedNominalType   | AggregateVertex !Name-  | AggregateMapped !MappedKey+  | AggregateMappedValue !MappedKey+  | AggregateStructuralEnum !StructuralEnumEquality   deriving stock (Eq, Ord, Show) +-- | Checked declaration evidence. Locations and fixture labels are deliberately+-- excluded from equality identity; the declared owner and total binding are not.+data StructuralEnumEquality = StructuralEnumEquality+  { key :: !MappedKey,+    owner :: !HaskellSource,+    binding :: !QualifiedValueName,+    bindingVersion :: !BindingVersion,+    canonical :: !CanonicalTypeId,+    constructors :: !(NE.NonEmpty (Name, Text))+  }+  deriving stock (Eq, Ord, Show)++structuralEnumEqualityIdentity :: StructuralEnumEquality -> Text+structuralEnumEqualityIdentity evidence =+  "keiro-dsl/structural-enum-equality/1:"+    <> TE.decodeUtf8+      ( BL.toStrict+          ( Aeson.encode+              [ unMappedKey evidence.key,+                evidence.owner.package,+                evidence.owner.moduleName,+                evidence.owner.valueType,+                unQualifiedValueName evidence.binding,+                unBindingVersion evidence.bindingVersion,+                unCanonicalTypeId evidence.canonical,+                TE.decodeUtf8 (BL.toStrict (Aeson.encode (sort (NE.toList evidence.constructors))))+              ]+          )+      )++-- | The common mapped-value view keeps codecs, initials, samples and writes on+-- the structural binding path. Equality inspects AggregateStructuralEnum first.+pattern AggregateMapped :: MappedKey -> ResolvedAggregateType+pattern AggregateMapped key <- (mappedAggregateKey -> Just key)+  where+    AggregateMapped key = AggregateMappedValue key++mappedAggregateKey :: ResolvedAggregateType -> Maybe MappedKey+mappedAggregateKey (AggregateMappedValue key) = Just key+mappedAggregateKey (AggregateStructuralEnum evidence) = Just evidence.key+mappedAggregateKey _ = Nothing++{-# COMPLETE AggregateText, AggregateInt, AggregateInteger, AggregateBool, AggregateTime, AggregateNatural, AggregateNominal, AggregateVertex, AggregateMapped #-}+ data AggregateSymbols = AggregateSymbols   { nominals :: !(Map Name ResolvedNominalType),     vertices :: !(Map Name [Name]),@@ -147,6 +200,8 @@     TRef name       | Just nominal <- Map.lookup name ((.nominals) symbols) -> pure (AggregateNominal nominal)       | Map.member name ((.vertices) symbols) -> pure (AggregateVertex name)+      | Just (ResolvedStructural declaration (REnum (entry : entries))) <- Map.lookup (MappedKey name) symbols.mapped ->+          pure (AggregateStructuralEnum (StructuralEnumEquality (MappedKey name) declaration.haskell declaration.binding declaration.bindingVersion declaration.canonical (NE.fromList (sort [(value.ctor, value.tag) | value <- entry : entries]))))       | Map.member (MappedKey name) ((.mapped) symbols) -> pure (AggregateMapped (MappedKey name))       | otherwise -> Left (AggregateTypeError loc useSite (UnknownAggregateType name))   case aggregateCapability useSite resolved of@@ -175,6 +230,7 @@ aggregateCapability :: AggregateUseSite -> ResolvedAggregateType -> AggregateCapability aggregateCapability useSite resolved = case useSite of   EqualityGuardUse -> case resolved of+    AggregateStructuralEnum {} -> SolverVisible     AggregateMapped {} -> Unsupported     AggregateNominal nominal -> case (.representation) nominal of       ScalarRepresentation {} -> SolverVisible
src/Keiro/Dsl/ExplainBindings.hs view
@@ -10,6 +10,7 @@     BindingHole (..),     bindingObligations,     bindingObligationsForService,+    structuralEnumEqualityIdentitiesForService,     bindingHoles,     bindingHolesForService,     renderBindingObligations,@@ -24,11 +25,13 @@ import Data.Set qualified as Set import Data.Text (Text) import Data.Text qualified as T+import Keiro.Dsl.AggregateType import Keiro.Dsl.Grammar import Keiro.Dsl.HaskellName qualified as HaskellName import Keiro.Dsl.IdDomain (idDomainContractForDeclaration, idDomainVersion)+import Keiro.Dsl.LanguageVersion (RuntimeCapability (StructuralEnumEqualityGuards), runtimeProfileHasCapability) import Keiro.Dsl.NominalType-import Keiro.Dsl.SemanticContract (CheckedService, checkedLanguageContract, checkedSpec, checkedTypeGraph, legacyCheckedService)+import Keiro.Dsl.SemanticContract (CheckedService, EffectiveLanguageContract (..), checkedLanguageContract, checkedSpec, checkedTypeGraph, legacyCheckedService) import Keiro.Dsl.TypeGraph  data BindingResolutionError@@ -138,6 +141,20 @@           <*> value .:? "path"           <*> value .: "signature" +-- | Declaration-scoped capability provenance. Executable binding laws remain+-- separate qualification evidence; checking cannot execute consumer functions.+structuralEnumEqualityIdentitiesForService :: CheckedService -> [Text]+structuralEnumEqualityIdentitiesForService service+  | runtimeProfileHasCapability (checkedLanguageContract service).runtimeProfile StructuralEnumEqualityGuards =+      case checkedTypeGraph service of+        Left _ -> []+        Right graph ->+          [ structuralEnumEqualityIdentity evidence+          | ResolvedStructural declaration REnum {} <- Map.elems graph.declarations,+            Right (AggregateStructuralEnum evidence) <- [resolveAggregateType (aggregateSymbolsFromGraph graph (checkedSpec service)) declaration.loc EqualityGuardUse (TRef declaration.name)]+          ]+  | otherwise = []+ bindingObligations :: Spec -> Either (NonEmpty BindingResolutionError) [BindingObligation] bindingObligations = bindingObligationsForService . legacyCheckedService @@ -147,13 +164,18 @@   nominalRegistry <- first (fmap BindingNominalTypeError) (resolveNominalTypes spec)   pure . sortOn obligationSortKey $     concat-      [ obligationsFor graph declaration+      [ map (withEquality graph declaration) (obligationsFor graph declaration)       | ResolvedStructural declaration _ <- Map.elems ((.declarations) graph)       ]       <> concatMap (liftObligationsFor graph) (Map.elems graph.declarations)       <> concatMap (nominalObligationsFor service graph) (Map.elems (nominalTypes nominalRegistry))   where     spec = checkedSpec service+    withEquality graph declaration obligation =+      case resolveAggregateType (aggregateSymbolsFromGraph graph spec) declaration.loc EqualityGuardUse (TRef declaration.name) of+        Right (AggregateStructuralEnum evidence)+          | runtimeProfileHasCapability (checkedLanguageContract service).runtimeProfile StructuralEnumEqualityGuards -> obligation {equalityContract = Just (structuralEnumEqualityIdentity evidence)}+        _ -> obligation  bindingHoles :: Spec -> Either (NonEmpty BindingResolutionError) [BindingHole] bindingHoles = bindingHolesForService . legacyCheckedService
src/Keiro/Dsl/Expression.hs view
@@ -39,6 +39,7 @@ import Data.TypeID qualified as TypeID import Keiro.Dsl.AggregateType import Keiro.Dsl.Grammar+import Keiro.Dsl.NominalType import Keiro.Dsl.TypeGraph  data ExpressionEnvironment = ExpressionEnvironment@@ -558,6 +559,7 @@   LiteralQualified typeName constructor -> resolveEnumLiteral environment loc expected typeName constructor   LiteralId typeName value -> resolveIdLiteral environment loc expected typeName value   where+    invalid :: Text -> Either (NonEmpty ExpressionDiagnostic) a     invalid message = failure loc ScalarLiteralInvalid message     mismatch other syntax =       failure@@ -566,24 +568,28 @@         (syntax <> " literal cannot inhabit scalar type '" <> aggregateCanonicalName other <> "'")  resolveEnumLiteral :: ExpressionEnvironment -> Loc -> ExpectedScalarType -> Name -> Name -> Either (NonEmpty ExpressionDiagnostic) TypedScalarExpr-resolveEnumLiteral environment loc expected typeName constructor = case find ((== typeName) . (.name)) ((.enums) ((.spec) environment)) of-  Nothing -> failure loc ScalarLiteralInvalid ("unknown enum literal type '" <> typeName <> "'")-  Just declaration-    | constructor `notElem` map fst ((.ctors) declaration) ->-        failure loc ScalarLiteralInvalid ("enum '" <> typeName <> "' has no constructor '" <> constructor <> "'")-    | otherwise -> do-        resolved <- resolveDeclared typeName-        requireExpected resolved-        pure (literalExpr loc resolved (ScalarEnumValue typeName constructor))+resolveEnumLiteral environment loc expected typeName constructor = do+  resolved <- case resolveAggregateType environment.symbols loc WholeValueWriteUse (TRef typeName) of+    Right value -> Right value+    Left _ -> invalid ("unknown enum literal type '" <> typeName <> "'")+  constructors <- case resolved of+    AggregateStructuralEnum evidence -> Right (map fst (NE.toList evidence.constructors))+    AggregateNominal nominal -> case nominal.representation of+      EnumRepresentation entries -> Right (map fst (NE.toList entries))+      _ -> invalid ("unknown enum literal type '" <> typeName <> "'")+    _ -> invalid ("unknown enum literal type '" <> typeName <> "'")+  if constructor `elem` constructors+    then pure ()+    else invalid ("enum '" <> typeName <> "' has no constructor '" <> constructor <> "'")+  case expected of+    InferScalarType -> pure ()+    ExpectScalarType wanted+      | wanted == resolved -> pure ()+      | otherwise -> failure loc (nominalMismatchCode resolved wanted) ("enum literal has type '" <> aggregateCanonicalName resolved <> "', expected '" <> aggregateCanonicalName wanted <> "'")+  pure (literalExpr loc resolved (ScalarEnumValue typeName constructor))   where-    resolveDeclared name = case resolveAggregateType ((.symbols) environment) loc WholeValueWriteUse (TRef name) of-      Left _ -> failure loc ScalarLiteralInvalid ("enum type '" <> name <> "' is not available at this aggregate use")-      Right resolved -> Right resolved-    requireExpected resolved = case expected of-      InferScalarType -> Right ()-      ExpectScalarType wanted-        | wanted == resolved -> Right ()-        | otherwise -> failure loc (nominalMismatchCode resolved wanted) ("enum literal has type '" <> aggregateCanonicalName resolved <> "', expected '" <> aggregateCanonicalName wanted <> "'")+    invalid :: Text -> Either (NonEmpty ExpressionDiagnostic) a+    invalid message = failure loc ScalarLiteralInvalid message  resolveIdLiteral :: ExpressionEnvironment -> Loc -> ExpectedScalarType -> Name -> Text -> Either (NonEmpty ExpressionDiagnostic) TypedScalarExpr resolveIdLiteral environment loc expected typeName value = case find ((== typeName) . (.name)) ((.ids) ((.spec) environment)) of
src/Keiro/Dsl/FoldEvidence.hs view
@@ -133,7 +133,7 @@           global             ++ map snd directNominals             ++ map snd nestedNominals-            ++ ["nominal-equality-use:" <> identity | identity <- Set.toAscList (Set.fromList (map snd equalityUses))]+            ++ [(if "keiro-dsl/structural-enum-equality/" `T.isPrefixOf` identity then "structural-enum-equality-use:" else "nominal-equality-use:") <> identity | identity <- Set.toAscList (Set.fromList (map snd equalityUses))]             ++ transitionSegments             ++ map ruleSegment (referencedRules ((.transitions) aggregate)),         aggregateSegments = global ++ [segment | (Nothing, segment) <- nominals],@@ -282,6 +282,7 @@       TypedNotEqual left _ -> equalityIdentity left       _ -> []     equalityIdentity operand = case (.valueType) operand of+      AggregateStructuralEnum evidence -> [(unMappedKey evidence.key, structuralEnumEqualityIdentity evidence)]       AggregateNominal nominal -> [((.name) nominal, identity) | identity <- maybeToList (nominalEqualityIdentityForService languageContract nominal)]       _ -> []     children = case (.node) expression of
src/Keiro/Dsl/Harness.hs view
@@ -902,6 +902,7 @@         ++ ["step" | not (null (initialSyntheticProbeEntries a))]         ++ ["validateTransducer"]         ++ ["fieldWitnessAgrees" | not (null (nominalScalarHarnessTypes a)) || not (null (enforcedConsumerNominalIdHarnessTypes a))]+        ++ ["fieldWitnessGet" | harnessSamplesByProjectedKey a]         ++ ["(!)" | not (null replayTransitions) && not (null ((.regs) a))]     upcastAssertions =       [ "(" <> tshow (upcastLabel e m) <> ", upcasts" <> (.name) e <> ")"@@ -931,6 +932,7 @@           ++ generatedNominalTypeImportsForService (aggregateCheckedService a) ((.context) a) (generatedNominalHarnessTypes a)           ++ mappedHarnessImports a           ++ nominalHarnessImports a+          ++ ["import " <> structuralProjectionModule ((.context) a) <> " qualified as StructuralProjections" | harnessSamplesStructuralByKey a]           ++ aggregateHarnessImports a           ++ T.lines (renderPlannedImports (harnessImportPlan a))           ++ goldenImports@@ -1207,33 +1209,159 @@  commandSampleValue :: Agg -> Transition -> Text -> ResolvedAggregateType -> Text commandSampleValue aggregate transition name valueType = case valueType of-  AggregateNominal _+  AggregateStructuralEnum evidence+    | Just register <- structuralEnumRegisterEquality aggregate transition name evidence ->+        registerInitialSample aggregate register+    | Just declaration <- structuralEnumDeclaration aggregate evidence,+      filters@(_ : _) <- structuralEnumSampleFilters aggregate transition name evidence ->+        "(case [value | (_, value) <- NonEmpty.toList (fixtureCases " <> renderHarnessReference aggregate (harnessQualifiedValueReference declaration.fixtures) <> "), " <> T.intercalate ", " filters <> "] of value : _ -> value; [] -> error \"enum guard requires a matching supplied fixture\")"+  AggregateNominal nominal     | guardEquatesCommandAndRegister transition name -> case find matchesRegister ((.regs) aggregate) of-        Just register -> regInitialValueForHarness aggregate register+        Just register -> registerInitialSample aggregate register         Nothing -> fallback+    | ConsumerNominal binding <- (.ownership) nominal,+      filters@(_ : _) <- consumerEnumSampleFilters aggregate transition name nominal ->+        "(case [value | fixture <- NonEmpty.toList (nominalFixtureCases " <> renderHarnessReference aggregate (harnessQualifiedValueReference ((.fixtures) binding)) <> "), let value = nominalFixtureDomain fixture, " <> T.intercalate ", " filters <> "] of value : _ -> value; [] -> error \"enum guard requires a matching supplied fixture\")"   _ -> fallback   where     fallback = sampleValue aggregate name valueType     matchesRegister register = (.name) register == name && (.valueType) register == valueType-    regInitialValueForHarness owner register = case (.initial) register of-      InitialNominal _ value -> renderHarnessReference owner (harnessQualifiedValueReference value)-      InitialMapped _ value -> renderHarnessReference owner (harnessQualifiedValueReference value)-      _ -> case (.valueType) register of-        AggregateNominal nominal -> case (.ownership) nominal of-          ConsumerNominal {} -> renderRegisterInitial ((.initial) register)-          GeneratedNominal ->-            fromMaybe-              (renderRegisterInitial ((.initial) register))-              (generatedIdSampleName nominal <$ generatedIdSampleHaskell owner nominal)-        _ -> renderRegisterInitial ((.initial) register) +registerInitialSample :: Agg -> ResolvedRegister -> Text+registerInitialSample owner register = case (.initial) register of+  InitialNominal _ value -> renderHarnessReference owner (harnessQualifiedValueReference value)+  InitialMapped _ value -> renderHarnessReference owner (harnessQualifiedValueReference value)+  _ -> case (.valueType) register of+    AggregateNominal nominal -> case (.ownership) nominal of+      ConsumerNominal {} -> renderRegisterInitial ((.initial) register)+      GeneratedNominal ->+        fromMaybe+          (renderRegisterInitial ((.initial) register))+          (generatedIdSampleName nominal <$ generatedIdSampleHaskell owner nominal)+    _ -> renderRegisterInitial ((.initial) register)++structuralEnumDeclaration :: Agg -> StructuralEnumEquality -> Maybe StructuralDecl+structuralEnumDeclaration aggregate evidence =+  case aggregate.typeGraph >>= Map.lookup evidence.key . (.declarations) of+    Just (ResolvedStructural declaration _) -> Just declaration+    _ -> Nothing++-- | The same-named register when the guard equates the command field with it.+-- That comparison forces the register initial as the sample.+structuralEnumRegisterEquality :: Agg -> Transition -> Text -> StructuralEnumEquality -> Maybe ResolvedRegister+structuralEnumRegisterEquality aggregate transition name evidence+  | guardEquatesCommandAndRegister transition name = structuralEnumRegister aggregate name evidence+  | otherwise = Nothing++structuralEnumRegister :: Agg -> Text -> StructuralEnumEquality -> Maybe ResolvedRegister+structuralEnumRegister aggregate name evidence =+  find (\register -> (.name) register == name && (.valueType) register == AggregateStructuralEnum evidence) aggregate.regs++-- | Fixture filters for a structural enum command field that is not forced to+-- the register initial: a register inequality excludes that initial, and each+-- qualified literal compared directly with the field constrains the projected+-- wire key through the generated witness. The first supplied fixture passing+-- every filter is sampled, so fixture order is not a harness contract.+structuralEnumSampleFilters :: Agg -> Transition -> Text -> StructuralEnumEquality -> [Text]+structuralEnumSampleFilters aggregate transition name evidence =+  [ "value /= " <> registerInitialSample aggregate register+  | Just register <- [structuralEnumRegister aggregate name evidence],+    guardComparesCommandAndRegister OpNeq transition name+  ]+    <> structuralEnumLiteralFilters aggregate transition name evidence++structuralEnumLiteralFilters :: Agg -> Transition -> Text -> StructuralEnumEquality -> [Text]+structuralEnumLiteralFilters aggregate transition name evidence =+  [ "fieldWitnessGet StructuralProjections." <> witness <> " value " <> (if operator == OpEq then "==" else "/=") <> " " <> tshow wire+  | Just witness <- [aggregate.typeGraph >>= \graph -> projectionWitnessName graph evidence.key ""],+    (operator, constructor) <- commandLiteralComparisons transition name (unMappedKey evidence.key),+    Just wire <- [lookup constructor (NE.toList evidence.constructors)]+  ]++-- | Fixture filters for a consumer-bound nominal enum command field that is+-- not forced to the register initial. They mirror the structural enum path: a+-- register inequality excludes the initial, and each qualified literal+-- constrains the canonical key through the nominal equality witness.+consumerEnumSampleFilters :: Agg -> Transition -> Text -> ResolvedNominalType -> [Text]+consumerEnumSampleFilters aggregate transition name nominal =+  [ "value /= " <> registerInitialSample aggregate register+  | EnumRepresentation {} <- [(.representation) nominal],+    Just register <- [find (\register -> (.name) register == name && (.valueType) register == AggregateNominal nominal) aggregate.regs],+    guardComparesCommandAndRegister OpNeq transition name+  ]+    <> consumerEnumLiteralFilters transition name nominal++consumerEnumLiteralFilters :: Transition -> Text -> ResolvedNominalType -> [Text]+consumerEnumLiteralFilters transition name nominal =+  [ "fieldWitnessGet NominalProjections." <> nominalEqualityWitnessName nominal <> " value " <> (if operator == OpEq then "==" else "/=") <> " " <> tshow wire+  | EnumRepresentation constructors <- [(.representation) nominal],+    (operator, constructor) <- commandLiteralComparisons transition name ((.name) nominal),+    Just wire <- [lookup constructor (NE.toList constructors)]+  ]++-- | Qualified literals of one declaration compared with a command field by+-- @==@ or @!=@. Conjunctions contribute every comparison; a disjunction+-- contributes only its first alternative, since satisfying it satisfies the+-- guard.+commandLiteralComparisons :: Transition -> Text -> Name -> [(CmpOp, Name)]+commandLiteralComparisons transition name typeName = maybe [] collect transition.guard+  where+    collect = \case+      EAnd left right -> collect left <> collect right+      EOr left _ -> collect left+      ECmp operator left right+        | operator `elem` [OpEq, OpNeq] ->+            [(operator, constructor) | Just constructor <- [literalOperand left right, literalOperand right left]]+      _ -> []+    literalOperand (EPath _ CommandRoot [field]) (ELiteral _ (LiteralQualified literalType constructor))+      | field == name && literalType == typeName = Just constructor+    literalOperand _ _ = Nothing++-- | Every command field sampled by a synthetic probe.+probeCommandFields :: Agg -> [(Transition, Text, ResolvedAggregateType)]+probeCommandFields aggregate =+  [ (transition, (.dslName) identity, valueType)+  | entry <- initialSyntheticProbeEntries aggregate,+    let transition = (.transition) entry,+    command <- (.commands) aggregate,+    (.name) command == (.command) transition,+    (identity, valueType) <- (.fields) command+  ]++-- | Whether a probe samples a structural enum field by projected wire key,+-- which requires the generated structural projection witnesses.+harnessSamplesStructuralByKey :: Agg -> Bool+harnessSamplesStructuralByKey aggregate =+  or+    [ not (null (structuralEnumLiteralFilters aggregate transition name evidence))+    | (transition, name, AggregateStructuralEnum evidence) <- probeCommandFields aggregate,+      Nothing <- [structuralEnumRegisterEquality aggregate transition name evidence]+    ]++-- | Whether a probe samples a consumer nominal enum field by canonical key,+-- which requires the generated nominal projection witnesses.+harnessSamplesNominalByKey :: Agg -> Bool+harnessSamplesNominalByKey aggregate =+  or+    [ not (null (consumerEnumLiteralFilters transition name nominal))+    | (transition, name, AggregateNominal nominal) <- probeCommandFields aggregate,+      ConsumerNominal {} <- [(.ownership) nominal],+      not (guardEquatesCommandAndRegister transition name)+    ]++harnessSamplesByProjectedKey :: Agg -> Bool+harnessSamplesByProjectedKey aggregate = harnessSamplesStructuralByKey aggregate || harnessSamplesNominalByKey aggregate+ guardEquatesCommandAndRegister :: Transition -> Text -> Bool-guardEquatesCommandAndRegister transition name = maybe False containsEquality ((.guard) transition)+guardEquatesCommandAndRegister = guardComparesCommandAndRegister OpEq++guardComparesCommandAndRegister :: CmpOp -> Transition -> Text -> Bool+guardComparesCommandAndRegister operator transition name = maybe False containsEquality ((.guard) transition)   where     containsEquality = \case       EOr left right -> containsEquality left || containsEquality right       EAnd left right -> containsEquality left || containsEquality right-      ECmp OpEq left right -> matchingPaths left right || matchingPaths right left+      ECmp selected left right | selected == operator -> matchingPaths left right || matchingPaths right left       _ -> False     matchingPaths (EPath _ CommandRoot [commandField]) (EPath _ RegisterRoot [registerField]) =       commandField == name && registerField == name@@ -1300,7 +1428,7 @@                    "import Keiro.Codec.IdDomain (" <> T.intercalate ", " (idDomainConstructors <> ["validateIdDomainText"]) <> ")"                  ]            )-        <> ["import " <> nominalProjectionModule ((.context) aggregate) <> " qualified as NominalProjections" | not (null (nominalScalarHarnessTypes aggregate)) || not (null enforcedIds)]+        <> ["import " <> nominalProjectionModule ((.context) aggregate) <> " qualified as NominalProjections" | not (null (nominalScalarHarnessTypes aggregate)) || not (null enforcedIds) || harnessSamplesNominalByKey aggregate]   where     nominals = consumerNominalHarnessTypes aggregate     enforcedIds = enforcedConsumerNominalIdHarnessTypes aggregate@@ -1545,6 +1673,7 @@       "Map",       "NominalProjections",       "NonEmpty",+      "StructuralProjections",       "T"     ] 
src/Keiro/Dsl/LanguageVersion.hs view
@@ -148,6 +148,7 @@   | TextSetMappings   | RefinedBase16Mappings   | ExplicitIdAdmissionDomains+  | StructuralEnumEqualityGuards   deriving stock (Eq, Ord, Show, Enum, Bounded)  -- | An immutable, explicitly named set of runtime capabilities.  The@@ -191,6 +192,8 @@ -- Admission identity is declaration-scoped so unrelated candidate services -- retain their existing fold fingerprints. capabilityFoldSegment ExplicitIdAdmissionDomains = Nothing+-- Equality contributes declaration-scoped identity only at actual use sites.+capabilityFoldSegment StructuralEnumEqualityGuards = Nothing  runtimeProfileFoldSegments :: RuntimeSemanticsProfile -> [Text] runtimeProfileFoldSegments RuntimeSemanticsProfile {capabilities} =@@ -358,7 +361,7 @@ runtimeProfileV5 =   RuntimeSemanticsProfile     "keiro-dsl/runtime-semantics/5"-    (Set.insert ExplicitIdAdmissionDomains (Set.insert RefinedBase16Mappings (Set.insert TextSetMappings (Set.insert CalendarDayMappings (Set.insert BareStructuralMappings (Set.insert StructuralNominalLeaves (Set.insert DelegatedInboxRuntime ((.capabilities) runtimeProfileV4))))))))+    (Set.insert StructuralEnumEqualityGuards (Set.insert ExplicitIdAdmissionDomains (Set.insert RefinedBase16Mappings (Set.insert TextSetMappings (Set.insert CalendarDayMappings (Set.insert BareStructuralMappings (Set.insert StructuralNominalLeaves (Set.insert DelegatedInboxRuntime ((.capabilities) runtimeProfileV4)))))))))  -- | Supported versions, derived from 'languageRegistry'. supportedLanguageVersions :: NonEmpty LanguageVersion
src/Keiro/Dsl/Scaffold.hs view
@@ -89,7 +89,10 @@     resolveAggForService,     resolveAgg,     nominalEqualityUsedInGeneratedExpressions,+    nominalEqualityWitnessName,     projectionSpecs,+    projectionWitnessName,+    structuralProjectionModule,     resolveProjectionModules,     nominalProjectionModule,     codecMappedDeclarations,@@ -364,6 +367,8 @@               "exactFieldWitness",               "fieldWitnessGet",               "fieldWitnessAgrees",+              "checkFieldProjectionOwner",+              "checkFieldProjectionKey",               "applyEventsEither",               "defaultValidationOptions",               "step",@@ -2626,6 +2631,7 @@     binding :: !QualifiedValueName,     fixtures :: !QualifiedValueName,     terminalNominal :: !(Maybe NominalLeaf),+    rootEnum :: !(Maybe (Text, [(Name, Text)])),     selectors :: ![(Text, Text)]   }   deriving stock (Eq, Show)@@ -2640,7 +2646,7 @@ projectionsForRoot :: TypeGraph -> StructuralDecl -> ResolvedMappedShape -> [StructuralProjection] projectionsForRoot graph root rootShape = case rootShape of   RRecord _ _ fields -> concatMap (walkField [] []) fields-  REnum {} -> []+  REnum entries -> [(mkProjection [] [] "Text" Nothing) {rootEnum = Just ("__SHAPE__." <> root.name, [(entry.ctor, entry.tag) | entry <- entries])}]   RUnion {} -> []   RBare {} -> []   RRefined {} -> []@@ -2688,6 +2694,7 @@           binding = (.binding) root,           fixtures = (.fixtures) root,           terminalNominal = nominal,+          rootEnum = Nothing,           selectors = selectors         }       where@@ -2771,6 +2778,7 @@           binding = spec.binding,           fixtures = spec.fixtures,           terminalNominal = spec.terminalNominal,+          rootEnum = spec.rootEnum,           selectors = spec.selectors         }       where@@ -2813,10 +2821,11 @@   where     moduleName = structuralProjectionModule ctx     specs = map (resolveProjectionModules ctx) (projectionSpecs graph)-    exactSpecs = [spec | spec <- specs, maybe False projectionLeafHasExactDomain ((.terminalNominal) spec)]+    exactSpecs = filter isExactProjection specs+    nominalExactSpecs = [spec | spec <- exactSpecs, spec.rootEnum == Nothing]     hasExact = not (null exactSpecs)     hasExactId = any (maybe False projectionLeafIsId . (.terminalNominal)) exactSpecs-    hasExactEnum = any (maybe False projectionLeafIsEnum . (.terminalNominal)) exactSpecs+    hasExactEnum = any (\spec -> isJust spec.rootEnum || maybe False projectionLeafIsEnum spec.terminalNominal) exactSpecs     hasExactConsumer = any (maybe False projectionLeafIsConsumer . (.terminalNominal)) exactSpecs     resultTypes = Set.fromList (map (.result) specs)     projectionExports spec = [(.witness) spec, (.getter) spec] <> maybeToList ((.rawGetter) spec)@@ -2825,7 +2834,7 @@         <> ["import Data.Time (UTCTime)" | "UTCTime" `Set.member` resultTypes]         <> ["import Numeric.Natural (Natural)" | "Natural" `Set.member` resultTypes]         <> ["import Data.List.NonEmpty (NonEmpty (..))" | hasExactEnum]-        <> ["import Data.List.NonEmpty qualified as NonEmpty" | hasExact]+        <> ["import Data.List.NonEmpty qualified as NonEmpty" | not (null nominalExactSpecs)]         <> ["import Data.KindID qualified as KindID" | any (maybe False projectionLeafIsConsumerId . (.terminalNominal)) specs]         <> [ "import Keiro.Codec.IdDomain (" <> T.intercalate ", " structuralProjectionIdImports <> ")"            | hasExactId@@ -2845,7 +2854,8 @@         <> ["nominalFromRepresentation" | hasExactConsumer]     structuralCodecImports =       ["bindingToShape"]-        <> if hasExact then ["bindingFromShape", "fixtureCases"] else []+        <> ["bindingFromShape" | hasExact]+        <> ["fixtureCases" | not (null nominalExactSpecs)]     keikiCoreImports =       ["FieldProjection (..)", "FieldWitness"]         <> (if hasExact then ["ExactFieldProjection (..)", "exactFieldWitness"] else [])@@ -2886,7 +2896,7 @@         ( Set.fromList             ( [haskellTypeReference ((.owner) spec) | spec <- specs]                 <> [qualifiedValueReference ((.binding) spec) | spec <- specs]-                <> [qualifiedValueReference ((.fixtures) spec) | spec <- exactSpecs]+                <> [qualifiedValueReference ((.fixtures) spec) | spec <- nominalExactSpecs]                 <> [nominalLeafTypeReference ctx leaf | spec <- specs, Just leaf <- [(.terminalNominal) spec]]                 <> concatMap projectionConstructorReferences exactSpecs                 <> concatMap (maybe [] (projectionNominalReferences ctx) . (.terminalNominal)) specs@@ -2926,7 +2936,7 @@     witnessConstructor spec       | isExactProjection spec = "exactFieldWitness"       | otherwise = "fieldWitness"-    isExactProjection spec = maybe False projectionLeafHasExactDomain ((.terminalNominal) spec)+    isExactProjection spec = isJust spec.rootEnum || maybe False projectionLeafHasExactDomain ((.terminalNominal) spec)     renderProjectionDomain spec = case (.terminalNominal) spec of       Just NominalLeaf {kind = NominalIdLeaf prefix admission} ->         [ projectionPatternName spec <> " :: TextPattern",@@ -2934,6 +2944,15 @@           ""         ]       _ -> []+    renderExactProjection spec+      | Just (shapeModule, entries) <- spec.rootEnum =+          [ "",+            "instance ExactFieldProjection " <> spec.tag <> " where",+            "  fieldProjectionDomain _ = finiteProjectionDomain (" <> renderNonEmpty (map (tshow . snd) entries) <> ")",+            "  reconstructFieldOwner _ value = case value of"+          ]+            <> ["    " <> tshow wire <> " -> Just (bindingFromShape " <> bindingValue spec <> " " <> renderedConstructor shapeModule constructor <> ")" | (constructor, wire) <- entries]+            <> ["    _ -> Nothing"]     renderExactProjection spec = case (.terminalNominal) spec of       Just leaf         | projectionLeafHasExactDomain leaf ->@@ -2953,6 +2972,10 @@       NominalScalarLeaf {} -> error "nominal scalar reached exact structural projection rendering"     bindingValue spec = renderReferenceOrDie importPlan (qualifiedValueReference ((.binding) spec))     fixturesValue spec = renderReferenceOrDie importPlan (qualifiedValueReference ((.fixtures) spec))+    renderedConstructor shapeModule constructor = renderReferenceOrDie importPlan (HaskellReference shapeModule constructor ConstructorNamespace RequireQualified)+    projectionConstructorReferences spec+      | Just (shapeModule, entries) <- spec.rootEnum =+          [HaskellReference shapeModule constructor ConstructorNamespace RequireQualified | (constructor, _) <- entries]     projectionConstructorReferences spec =       [ HaskellReference shapeModuleName constructor ConstructorNamespace RequireQualified       | (shapeModuleName, _selector) <- (.selectors) spec,@@ -3001,6 +3024,9 @@         )         ("bindingToShape " <> renderReferenceOrDie importPlan (qualifiedValueReference ((.binding) spec)) <> " owner")         ((.selectors) spec)+    renderProjectionGetter spec+      | Just (shapeModule, entries) <- spec.rootEnum =+          "case " <> renderGetter spec <> " of " <> T.intercalate "; " [renderedConstructor shapeModule constructor <> " -> " <> tshow wire | (constructor, wire) <- entries]     renderProjectionGetter spec = case (.terminalNominal) spec of       Nothing -> renderGetter spec       Just leaf -> case (.rawGetter) spec of@@ -3117,6 +3143,7 @@       binding = spec.binding,       fixtures = spec.fixtures,       terminalNominal = spec.terminalNominal,+      rootEnum = fmap (\(marker, entries) -> (replaceModule marker, entries)) spec.rootEnum,       selectors =         [ (replaceModule marker, selector)         | (marker, selector) <- spec.selectors@@ -8700,9 +8727,26 @@   TypedAnd left right -> [left, right]   TypedOr left right -> [left, right] +structuralEnumLiteral :: TypedScalarExpr -> Bool+structuralEnumLiteral expression = case (expression.valueType, expression.node) of+  (AggregateStructuralEnum {}, TypedLiteral ScalarEnumValue {}) -> True+  _ -> False++-- | Consumer nominal literals rendered through 'renderKeikiLiteral', which+-- needs the binding, the representation constructors and, for IDs, KindID. A+-- literal that is a direct comparison operand lowers to its canonical key text+-- instead; planning those names for it leaves them unused, which the+-- generated-output @-Werror@ rejects. typedConsumerLiteralNominals :: TypedScalarExpr -> [ResolvedNominalType]-typedConsumerLiteralNominals expression = own <> concatMap typedConsumerLiteralNominals (typedExpressionChildren expression)+typedConsumerLiteralNominals expression = case (.node) expression of+  TypedEqual left right -> concatMap operand [left, right]+  TypedNotEqual left right -> concatMap operand [left, right]+  TypedCompare _ left right -> concatMap operand [left, right]+  _ -> own <> concatMap typedConsumerLiteralNominals (typedExpressionChildren expression)   where+    operand child = case (.node) child of+      TypedLiteral {} -> []+      _ -> typedConsumerLiteralNominals child     own = case ((.valueType) expression, (.node) expression) of       (AggregateNominal nominal, TypedLiteral ScalarEnumValue {})         | ConsumerNominal {} <- (.ownership) nominal -> [nominal]@@ -8752,6 +8796,7 @@       TypedNotEqual left right -> mapMaybe nominalTarget [left, right]       _ -> []     nominalTarget operand = case ((.valueType) operand, (.node) operand) of+      (AggregateStructuralEnum evidence, TypedRoot provenance) -> Just (StructuralProjectionAlias provenance (ResolvedScalarProjection evidence.key "" [] Nothing))       (AggregateNominal nominal, TypedRoot provenance)         | nominalComparisonProjection nominal -> Just (NominalProjectionAlias nominal provenance)       _ -> Nothing@@ -8874,6 +8919,10 @@  renderComparisonTerm :: HaskellImportPlan -> [ProjectionAlias] -> Agg -> Transition -> TypedScalarExpr -> RenderedKeikiExpr renderComparisonTerm importPlan aliases aggregate transition expression = case ((.valueType) expression, (.node) expression) of+  (AggregateStructuralEnum evidence, TypedRoot provenance) ->+    renderedAtom (projectionAliasFor aliases (StructuralProjectionAlias provenance (ResolvedScalarProjection evidence.key "" [] Nothing)))+  (AggregateStructuralEnum evidence, TypedLiteral (ScalarEnumValue _ constructor)) ->+    renderedAtom ("K.lit (" <> tshow (fromMaybe (error "checked structural enum constructor disappeared") (lookup constructor (NE.toList evidence.constructors))) <> " :: Text)")   (AggregateNominal nominal, TypedRoot provenance)     | nominalComparisonProjection nominal ->         renderedAtom (projectionAliasFor aliases (NominalProjectionAlias nominal provenance))@@ -9090,6 +9139,8 @@   ScalarBoolValue value -> "K.lit " <> if value then "True" else "False"   ScalarTimeValue value -> "K.lit " <> renderRegisterInitial (InitialTime value)   ScalarEnumValue _typeName constructor -> case scalarType of+    AggregateStructuralEnum evidence ->+      "K.opaqueLit (case K.checkFieldProjectionKey StructuralProjections." <> fromMaybe (error "checked root enum witness disappeared") (aggregate.typeGraph >>= \graph -> projectionWitnessName graph evidence.key "") <> " " <> tshow (fromMaybe (error "checked constructor disappeared") (lookup constructor (NE.toList evidence.constructors))) <> " of Right owner -> owner; Left problem -> error (show problem))"     AggregateNominal nominal -> case (.ownership) nominal of       GeneratedNominal -> "K.lit " <> constructor       ConsumerNominal binding ->@@ -9224,7 +9275,7 @@     projectionTargets = map (.target) projectionAliases     structuralProjectionImport =       [ "import " <> structuralProjectionModule ((.context) aggregate) <> " qualified as StructuralProjections"-      | any isStructuralProjection projectionTargets+      | any isStructuralProjection projectionTargets || any (anyTypedExpression structuralEnumLiteral) resolvedExpressions       ]     generatedNominalProjectionImport =       [ "import " <> generatedNominalModule ((.context) aggregate) <> " qualified as GeneratedNominals"@@ -9703,7 +9754,7 @@     projectionTargets = nub (concatMap projectionAliasTargets outcomeExpressions)     structuralProjectionImports =       [ "import " <> structuralProjectionModule ((.context) a) <> " qualified as StructuralProjections"-      | any isStructuralProjection projectionTargets+      | any isStructuralProjection projectionTargets || any (anyTypedExpression structuralEnumLiteral) outcomeExpressions       ]     generatedNominalProjectionImports =       [ "import " <> generatedNominalModule ((.context) a) <> " qualified as GeneratedNominals"
src/Keiro/Dsl/ScaffoldRecord.hs view
@@ -54,6 +54,7 @@     mappings :: ![MappingIdentity],     idDomains :: ![Text],     nominalEqualities :: ![Text],+    structuralEnumEqualities :: ![Text],     bindingObligations :: ![BindingHole],     behaviorRequirements :: ![BehaviorRecordRow],     projectionCatalogFacts :: ![Text],@@ -149,6 +150,7 @@       <> map renderMapping ((.mappings) record)       <> map ("id-domain " <>) ((.idDomains) record)       <> map ("nominal-equality " <>) ((.nominalEqualities) record)+      <> map ("structural-enum-equality " <>) record.structuralEnumEqualities       <> map renderBindingObligation ((.bindingObligations) record)       <> map renderBehaviorRequirement ((.behaviorRequirements) record)       <> map ("projection-catalog-fact " <>) ((.projectionCatalogFacts) record)@@ -188,6 +190,7 @@         let mappings = ordinaryMappings <> nominalMappings         let idDomains = [identity | row <- rows, Just identity <- [T.stripPrefix "id-domain " row]]         let nominalEqualities = [identity | row <- rows, Just identity <- [T.stripPrefix "nominal-equality " row]]+        let structuralEnumEqualities = [identity | row <- rows, Just identity <- [T.stripPrefix "structural-enum-equality " row]]         bindingEntries <- traverse parseBindingObligation (filter ("binding " `T.isPrefixOf`) rows)         behaviorEntries <- traverse parseBehaviorRequirement (filter ("behavior " `T.isPrefixOf`) rows)         let catalogFacts = [fact | row <- rows, Just fact <- [T.stripPrefix "projection-catalog-fact " row]]@@ -196,7 +199,7 @@         routerSelections <- traverse parseRouterSelection (filter ("router-selection " `T.isPrefixOf`) rows)         processReactions <- traverse parseProcessReaction (filter ("process-reaction " `T.isPrefixOf`) rows)         semanticImpact <- parseSemanticImpact rows-        if hasDuplicateMappingNames mappings || hasDuplicates idDomains || hasDuplicates nominalEqualities || hasDuplicateBindingObligations bindingEntries || hasDuplicateBehaviorRequirements behaviorEntries || hasDuplicates catalogFacts || hasDuplicates (map queryContractIdentityKey queryContracts) || hasDuplicates (map (.router) routerSelections) || hasDuplicates (map (.processName) processReactions)+        if hasDuplicateMappingNames mappings || hasDuplicates idDomains || hasDuplicates nominalEqualities || hasDuplicates structuralEnumEqualities || hasDuplicateBindingObligations bindingEntries || hasDuplicateBehaviorRequirements behaviorEntries || hasDuplicates catalogFacts || hasDuplicates (map queryContractIdentityKey queryContracts) || hasDuplicates (map (.router) routerSelections) || hasDuplicates (map (.processName) processReactions)           then Nothing           else             pure@@ -212,6 +215,7 @@                   mappings = mappings,                   idDomains = idDomains,                   nominalEqualities = nominalEqualities,+                  structuralEnumEqualities = structuralEnumEqualities,                   bindingObligations = bindingEntries,                   behaviorRequirements = behaviorEntries,                   projectionCatalogFacts = catalogFacts,
src/Keiro/Dsl/ScaffoldRun.hs view
@@ -99,7 +99,7 @@     renderConformancePackageReport,   ) import Keiro.Dsl.CoordinationImpact (ProcessReactionDrift, ProcessReactionSnapshot (..), RouterSelectionDrift, processReactionDrift, processReactionSnapshots, renderProcessReactionDrift, renderRouterSelectionDrift, routerSelectionDrift, routerSelectionSnapshots)-import Keiro.Dsl.ExplainBindings (BindingHole (..), BindingObligationKind (..), bindingHolesForService)+import Keiro.Dsl.ExplainBindings (BindingHole (..), BindingObligationKind (..), bindingHolesForService, structuralEnumEqualityIdentitiesForService) import Keiro.Dsl.FoldFingerprint (FoldSurfaceError, aggregateFoldSurfaceForService, renderFoldSurfaceError) import Keiro.Dsl.GeneratedHaskellLanguage (idiomaticV2LabelMigrations) import Keiro.Dsl.Goldens (GoldenPayload)@@ -1714,6 +1714,7 @@       mappings = (.mappings) (consumerPlanForService service),       idDomains = idDomainIdentitiesForService service,       nominalEqualities = nominalEqualityIdentitiesForService service,+      structuralEnumEqualities = structuralEnumEqualityIdentitiesForService service,       bindingObligations = either (const []) id (bindingHolesForService service),       behaviorRequirements = currentBehavior,       projectionCatalogFacts = projectionCatalogFactsForService service,
src/Keiro/Dsl/StructuralConformance.hs view
@@ -195,7 +195,7 @@     <> ["import Data.Maybe (isJust, isNothing)" | any shapeUsesMaybe structural]     <> ["import Data.Proxy (Proxy (..))" | not (null structural) || not (null consumerNominals)]     <> ["import Data.Text qualified as T" | not (null structural) || not (null opaque)]-    <> ["import Keiki.Core (fieldWitnessAgrees)" | not (null projections)]+    <> ["import Keiki.Core (" <> T.intercalate ", " (["fieldWitnessAgrees" | any (\spec -> spec.rootEnum == Nothing) projections] <> ["checkFieldProjectionOwner, checkFieldProjectionKey" | any (\spec -> spec.rootEnum /= Nothing) projections]) <> ")" | not (null projections)]     <> ["import Keiki.Shape (CanonicalTypeName (..))" | not (null structural) || not (null consumerNominals)]     <> ["import Keiro.Codec.Nominal (nominalDomainRoundTrip, nominalFixtureCases, nominalFixtureDomain, nominalRepresentationRoundTrip, nominalToRepresentation)" | not (null consumerNominals)]     <> ["import Keiro.Codec.Structural (" <> T.intercalate ", " structuralCodecImports <> ")" | not (null structural) || not (null opaque)]@@ -366,13 +366,13 @@     (renderPlannedReference ((.importPlan) rendering) reference)  bindingAssertionDecl :: ConformanceRendering -> (StructuralDecl, ResolvedMappedShape) -> [Text]-bindingAssertionDecl rendering (declaration, _shape) =+bindingAssertionDecl rendering (declaration, shape) =   [ "",     valueName <> " :: [(String, Bool)]",     valueName <> " =",     "  (\"fixture labels: " <> canonical <> "\", validFixtureLabels cases) :",     "  (\"canonical identity: " <> canonical <> "\", canonicalTypeName (Proxy @" <> consumerType <> ") == " <> tshow canonical <> ") :",-    "  concat",+    "  " <> (case shape of REnum entries -> "[(\"exhaustive enum shape round-trip: " <> canonical <> "\", all (bindingShapeRoundTrip " <> binding <> ") [" <> T.intercalate ", " [shapeConstructor rendering declaration.name entry.ctor | entry <- entries] <> "])] <> "; _ -> "") <> "concat",     "    [ [ (\"binding domain round-trip: " <> canonical <> "/\" <> T.unpack label, bindingDomainRoundTrip " <> binding <> " value)",     "      , (\"binding shape round-trip: " <> canonical <> "/\" <> T.unpack label, bindingShapeRoundTrip " <> binding <> " (bindingToShape " <> binding <> " value))",     "      ]",@@ -688,6 +688,9 @@       ]   where     specs = (.projections) rendering+    assertion spec+      | Just (_, entries) <- spec.rootEnum =+          "(\"projection owner law: " <> unCanonicalTypeId spec.canonical <> "\", all (\\(_, owner) -> either (const False) (const True) (checkFieldProjectionOwner StructuralProjections." <> spec.witness <> " owner)) (NonEmpty.toList (fixtureCases " <> ownerFixtures spec <> "))),\n  (\"projection key law: " <> unCanonicalTypeId spec.canonical <> "\", all (either (const False) (const True) . checkFieldProjectionKey StructuralProjections." <> spec.witness <> ") [" <> T.intercalate ", " [tshow wire | (_, wire) <- entries] <> "])"     assertion spec =       "(\"projection witness agreement: "         <> unCanonicalTypeId ((.canonical) spec)
src/Keiro/Dsl/Validate.hs view
@@ -859,7 +859,7 @@  validateCheckedSpec :: EffectiveLanguageContract -> Either (NE.NonEmpty TypeGraphError) TypeGraph -> ProjectionSupplyAnalysis -> Spec -> [Diagnostic] validateCheckedSpec languageContract typeGraphResult supplyAnalysis spec =-  sortOn (.line) (validateNames languageContract typeGraphResult spec ++ validateMapped languageContract typeGraphResult spec ++ validateNominal languageContract spec ++ validateAggregateTypes typeGraphResult spec ++ specLevelRules languageContract supplyAnalysis spec ++ concatMap (validateNode languageContract typeGraphResult supplyAnalysis spec) ((.nodes) spec))+  sortOn (.line) (validateNames languageContract typeGraphResult spec ++ validateMapped languageContract typeGraphResult spec ++ validateNominal languageContract spec ++ validateAggregateTypes languageContract typeGraphResult spec ++ specLevelRules languageContract supplyAnalysis spec ++ concatMap (validateNode languageContract typeGraphResult supplyAnalysis spec) ((.nodes) spec))  -- | Rules added before language 4 ships consult the effective semantic -- contract, not the numeric source spelling. Versions 1 through 3 retain their@@ -917,8 +917,8 @@     problem loc diagnosticCode detail = mkErr (locLine loc) diagnosticCode (detail <> "; GHC and conformance validate consumer function bodies")  -- | Resolve every direct aggregate type once at the earliest semantic gate.-validateAggregateTypes :: Either (NE.NonEmpty TypeGraphError) TypeGraph -> Spec -> [Diagnostic]-validateAggregateTypes typeGraphResult spec = case Nominal.resolveNominalTypes spec of+validateAggregateTypes :: EffectiveLanguageContract -> Either (NE.NonEmpty TypeGraphError) TypeGraph -> Spec -> [Diagnostic]+validateAggregateTypes languageContract typeGraphResult spec = case Nominal.resolveNominalTypes spec of   Left _ -> []   Right _ -> concatMap aggregateRules aggregates   where@@ -959,8 +959,25 @@                   "aggregate '" <> (.name) aggregate <> "' declares unknown or unsupported " <> label <> " outcome type '" <> name <> "'"               ] -    transitionRules aggregate transition = ownershipRules ++ outcomeExpressionRules+    transitionRules aggregate transition = capabilityRules ++ ownershipRules ++ outcomeExpressionRules       where+        capabilityRules+          | runtimeProfileHasCapability languageContract.runtimeProfile StructuralEnumEqualityGuards = []+          | otherwise =+              [ mkErr (locLine expression.loc) AggregateGuardCapabilityUnsupported "mapped structural enum equality and constructors require Language 6"+              | Right expression <- maybe [] (pure . resolveGuardExpr environment) transition.guard <> map (uncurry (resolveWriteExpr environment)) transition.writes,+                usesStructuralEnumEquality expression+              ]+        usesStructuralEnumEquality expression = case expression.node of+          TypedEqual left right -> isStructuralEnum left.valueType || usesStructuralEnumEquality left || usesStructuralEnumEquality right+          TypedNotEqual left right -> isStructuralEnum left.valueType || usesStructuralEnumEquality left || usesStructuralEnumEquality right+          TypedLiteral ScalarEnumValue {} -> isStructuralEnum expression.valueType+          TypedMappedLift _ _ child -> usesStructuralEnumEquality child+          TypedAnd left right -> usesStructuralEnumEquality left || usesStructuralEnumEquality right+          TypedOr left right -> usesStructuralEnumEquality left || usesStructuralEnumEquality right+          _ -> False+        isStructuralEnum AggregateStructuralEnum {} = True+        isStructuralEnum _ = False         environment = expressionEnvironmentFromGraphResult typeGraphResult spec aggregate transition         ownershipRules = case (.implementation) transition of           LegacyHoleImplementation ->@@ -986,7 +1003,11 @@             Left _ -> []             Right expected ->               case resolveScalarExpr environment (ExpectScalarType expected) expression of-                Right _ -> []+                Right typed+                  | not (runtimeProfileHasCapability languageContract.runtimeProfile StructuralEnumEqualityGuards),+                    usesStructuralEnumEquality typed ->+                      [mkErr (locLine typed.loc) AggregateGuardCapabilityUnsupported "mapped structural enum equality and constructors require Language 6"]+                  | otherwise -> []                 Left diagnostics -> map (outcomeExpressionDiagnostic label . id) (NE.toList diagnostics)           where             declaration = case (.domainOutcomeTypes) aggregate of
src/Keiro/Dsl/WorkspaceRecord.hs view
@@ -207,6 +207,7 @@     mappings :: ![MappingIdentity],     idDomains :: ![Text],     nominalEqualities :: ![Text],+    structuralEnumEqualities :: ![Text],     bindingObligations :: ![BindingHole],     requirements :: ![BehaviorRecordRow],     projectionCatalogFacts :: ![Text],@@ -239,6 +240,7 @@       <> [mappingRowPrefix mapping <> encodeRow mapping | mapping <- (.mappings) record]       <> ["id-domain " <> identity | identity <- (.idDomains) record]       <> ["nominal-equality " <> identity | identity <- (.nominalEqualities) record]+      <> ["structural-enum-equality " <> identity | identity <- record.structuralEnumEqualities]       <> ["binding " <> encodeRow obligation | obligation <- (.bindingObligations) record]       <> ["behavior " <> encodeRow requirement | requirement <- (.requirements) record]       <> ["projection-catalog-fact " <> fact | fact <- (.projectionCatalogFacts) record]@@ -276,6 +278,7 @@         let mappings = ordinaryMappings <> nominalMappings         let idDomains = [identity | row <- rows, Just identity <- [T.stripPrefix "id-domain " row]]         let nominalEqualities = [identity | row <- rows, Just identity <- [T.stripPrefix "nominal-equality " row]]+        let structuralEnumEqualities = [identity | row <- rows, Just identity <- [T.stripPrefix "structural-enum-equality " row]]         obligations <- traverse (decodeRow "binding ") (rowsWith "binding " rows)         requirements <- traverse (decodeRow "behavior ") (rowsWith "behavior " rows)         let catalogFacts = [fact | row <- rows, Just fact <- [T.stripPrefix "projection-catalog-fact " row]]@@ -290,6 +293,7 @@           || hasDuplicates (map (.specName) mappings)           || hasDuplicates idDomains           || hasDuplicates nominalEqualities+          || hasDuplicates structuralEnumEqualities           || hasDuplicates (map bindingKey obligations)           || hasDuplicates (map (.key) requirements)           || hasDuplicates catalogFacts@@ -312,6 +316,7 @@                   mappings = mappings,                   idDomains = idDomains,                   nominalEqualities = nominalEqualities,+                  structuralEnumEqualities = structuralEnumEqualities,                   bindingObligations = obligations,                   requirements = requirements,                   projectionCatalogFacts = catalogFacts,
src/Keiro/Dsl/WorkspaceScaffold.hs view
@@ -70,7 +70,7 @@     renderConformancePackageReport,   ) import Keiro.Dsl.CoordinationImpact (RouterSelectionDrift, renderRouterSelectionDrift, routerSelectionDrift, routerSelectionSnapshots)-import Keiro.Dsl.ExplainBindings (BindingHole (..), bindingHolesForService)+import Keiro.Dsl.ExplainBindings (BindingHole (..), bindingHolesForService, structuralEnumEqualityIdentitiesForService) import Keiro.Dsl.Goldens (GoldenPayload) import Keiro.Dsl.Grammar import Keiro.Dsl.Harness (harnessForServiceWithGoldens, harnessProcessForService, harnessReadModelForService, harnessRouterForService, harnessWorkflow)@@ -720,6 +720,7 @@       mappings = (.mappings) (consumerPlanForService checkedService),       idDomains = idDomainIdentitiesForService checkedService,       nominalEqualities = nominalEqualityIdentitiesForService checkedService,+      structuralEnumEqualities = structuralEnumEqualityIdentitiesForService checkedService,       bindingObligations = either (const []) id (bindingHolesForService checkedService),       requirements = workspaceBehaviorRows checkedService workspace,       projectionCatalogFacts = projectionCatalogFactsForService checkedService,
+ test/Keiro/Dsl/ConsumerEnumLiterals.hs view
@@ -0,0 +1,60 @@+module Keiro.Dsl.ConsumerEnumLiterals (consumerEnumLiteralsSpec) where++import Data.Text (Text)+import Data.Text qualified as T+import Data.Text.IO qualified as TIO+import Keiro.Dsl.Grammar hiding (Spec)+import Keiro.Dsl.Parser+import Keiro.Dsl.Scaffold+import Keiro.Dsl.ScaffoldRun (scaffoldServiceModules)+import Keiro.Dsl.SemanticContract+import Keiro.Dsl.Validate+import Test.Hspec++consumerEnumLiteralsSpec :: Spec+consumerEnumLiteralsSpec = describe "consumer nominal enum literals" $ do+  it "plans binding and representation imports only for literals outside comparisons" $ do+    guarded <- modulesFor (replaceGuard "cmd.orderId == reg.orderId && cmd.status == OrderStatus.Draft")+    let transducer = moduleText "NominalLedger/Transducer.hs" guarded+    transducer `shouldSatisfy` T.isInfixOf "commandStatus .== K.lit (\"draft\" :: Text)"+    transducer `shouldSatisfy` (not . T.isInfixOf "nominalFromRepresentation")+    transducer `shouldSatisfy` (not . T.isInfixOf "Shape.OrderStatus")+    transducer `shouldSatisfy` (not . T.isInfixOf "qualified as Bindings")+    written <- modulesFor (T.replace "write status := cmd.status" "write status := OrderStatus.Submitted")+    let writer = moduleText "NominalLedger/Transducer.hs" written+    writer `shouldSatisfy` T.isInfixOf "import Keiro.Codec.Nominal (nominalFromRepresentation)"+    writer `shouldSatisfy` T.isInfixOf "K.lit (nominalFromRepresentation Bindings.orderStatusBinding ShapeOrderStatus.Submitted)"+  it "samples literal-guarded consumer enum commands by canonical key instead of fixture order" $ do+    let sampled filters = "(case [value | fixture <- NonEmpty.toList (nominalFixtureCases Bindings.orderStatusFixtures), let value = nominalFixtureDomain fixture, " <> filters <> "] of value : _ -> value; [] -> error \"enum guard requires a matching supplied fixture\")"+        harnessFor guardText = moduleText "NominalLedger/Harness.hs" <$> modulesFor (replaceGuard guardText)+    equality <- harnessFor "cmd.orderId == reg.orderId && cmd.status == OrderStatus.Draft"+    equality `shouldSatisfy` T.isInfixOf "fieldWitnessGet"+    equality `shouldSatisfy` T.isInfixOf "qualified as NominalProjections"+    equality `shouldSatisfy` T.isInfixOf ("(RecordNominals (RecordNominalsData Bindings.initialOrderId " <> sampled "fieldWitnessGet NominalProjections.orderStatusEqualityWitness value == \"draft\"")+    inequality <- harnessFor "cmd.orderId == reg.orderId && cmd.status != reg.status"+    inequality `shouldSatisfy` T.isInfixOf ("(RecordNominals (RecordNominalsData Bindings.initialOrderId " <> sampled "value /= Bindings.initialOrderStatus")+    combined <- harnessFor "cmd.orderId == reg.orderId && cmd.status != reg.status && cmd.status != OrderStatus.Submitted"+    combined `shouldSatisfy` T.isInfixOf ("(RecordNominals (RecordNominalsData Bindings.initialOrderId " <> sampled "value /= Bindings.initialOrderStatus, fieldWitnessGet NominalProjections.orderStatusEqualityWitness value /= \"submitted\"")+    original <- moduleText "NominalLedger/Harness.hs" <$> modulesFor id+    original `shouldSatisfy` T.isInfixOf "(RecordNominals (RecordNominalsData Bindings.initialOrderId Bindings.initialOrderStatus "+    original `shouldSatisfy` (not . T.isInfixOf "fieldWitnessGet")++fixture :: IO Text+fixture = TIO.readFile "test/fixtures/nominal-scalars.keiro"++modulesFor :: (Text -> Text) -> IO [ScaffoldModule]+modulesFor transform = do+  source <- fixture+  service <- case parseSource "nominal-scalars.keiro" (transform source) of+    Left failure -> expectationFailure (T.unpack (renderParseFailure failure)) >> fail "parse failed"+    Right parsed -> pure (checkedSource parsed)+  filter ((== Error) . (.severity)) (validateService service) `shouldBe` []+  let modules = scaffoldServiceModules (defaultContext "nominal-scalars") service+  firewallBreaches modules `shouldBe` []+  pure modules++replaceGuard :: Text -> Text -> Text+replaceGuard guardText = T.replace "guard cmd.orderId == reg.orderId && cmd.status == reg.status" ("guard " <> guardText)++moduleText :: Text -> [ScaffoldModule] -> Text+moduleText suffix modules = T.unlines [value.text | value <- modules, suffix `T.isSuffixOf` T.pack value.path]
test/Keiro/Dsl/FrontendProfiles.hs view
@@ -33,7 +33,7 @@                      [GeneratedIdDomainTypeIdV7, NominalEqualityV2],                      [GeneratedIdDomainTypeIdV7, NominalEqualityV2, ContractIdDomainTypeIdV7, StrictSpecSurfaceValidation],                      [GeneratedIdDomainTypeIdV7, NominalEqualityV2, ContractIdDomainTypeIdV7, StrictSpecSurfaceValidation, ProjectionCatalogRuntime, TypedDomainCommandOutcomes, SeparatedProjectionQueryPolicy],-                     [GeneratedIdDomainTypeIdV7, NominalEqualityV2, ContractIdDomainTypeIdV7, StrictSpecSurfaceValidation, ProjectionCatalogRuntime, TypedDomainCommandOutcomes, SeparatedProjectionQueryPolicy, DelegatedInboxRuntime, StructuralNominalLeaves, BareStructuralMappings, CalendarDayMappings, TextSetMappings, RefinedBase16Mappings, ExplicitIdAdmissionDomains]+                     [GeneratedIdDomainTypeIdV7, NominalEqualityV2, ContractIdDomainTypeIdV7, StrictSpecSurfaceValidation, ProjectionCatalogRuntime, TypedDomainCommandOutcomes, SeparatedProjectionQueryPolicy, DelegatedInboxRuntime, StructuralNominalLeaves, BareStructuralMappings, CalendarDayMappings, TextSetMappings, RefinedBase16Mappings, ExplicitIdAdmissionDomains, StructuralEnumEqualityGuards]                    ]       map (runtimeProfileFoldSegments . (.runtimeSemanticsProfile)) (NE.toList languageRegistry)         `shouldBe` [ [],
+ test/Keiro/Dsl/MappedStructuralEnumEquality.hs view
@@ -0,0 +1,226 @@+module Keiro.Dsl.MappedStructuralEnumEquality (mappedStructuralEnumEqualitySpec) where++import Control.Monad (forM_)+import Data.List.NonEmpty qualified as NE+import Data.Text (Text)+import Data.Text qualified as T+import Data.Text.IO qualified as TIO+import Keiro.Dsl.AggregateType+import Keiro.Dsl.Diff qualified as Diff+import Keiro.Dsl.ExplainBindings+import Keiro.Dsl.Expression+import Keiro.Dsl.FoldFingerprint+import Keiro.Dsl.Grammar hiding (Spec)+import Keiro.Dsl.LanguageVersion+import Keiro.Dsl.Parser+import Keiro.Dsl.ReplayImpact+import Keiro.Dsl.Scaffold+import Keiro.Dsl.ScaffoldRecord+import Keiro.Dsl.ScaffoldRun (scaffoldServiceModules)+import Keiro.Dsl.SemanticContract+import Keiro.Dsl.TypeGraph (MappedKey (..))+import Keiro.Dsl.Validate+import Keiro.Dsl.WorkspaceRecord qualified as WR+import Test.Hspec++mappedStructuralEnumEqualitySpec :: Spec+mappedStructuralEnumEqualitySpec = describe "mapped structural enum equality" $ do+  it "admits only Language 6 and adds no global fold segment" $ do+    let definitions = NE.toList languageRegistry+    [definition.version | definition <- definitions, runtimeProfileHasCapability definition.runtimeSemanticsProfile StructuralEnumEqualityGuards] `shouldBe` [currentAuthoringLanguageVersion]+    capabilityFoldSegment StructuralEnumEqualityGuards `shouldBe` Nothing+    source <- fixture+    forM_ ["4", "5"] $ \version -> do+      service <- parseChecked (T.replace "language keiro-dsl 6" ("language keiro-dsl " <> version) source)+      codes service `shouldContain` [AggregateGuardCapabilityUnsupported]+      wrapped <- parseChecked (T.replace "language keiro-dsl 6" ("language keiro-dsl " <> version) (replaceGuard "(cmd.requiredScope == reg.requiredScope) == true" source))+      codes wrapped `shouldContain` [AggregateGuardCapabilityUnsupported]+      literalWrite <- parseChecked (T.replace "language keiro-dsl 6" ("language keiro-dsl " <> version) (T.unlines (filter (not . T.isPrefixOf "    guard ") (T.lines source))))+      codes literalWrite `shouldContain` [AggregateGuardCapabilityUnsupported]+  it "checks both operators with roots, qualified constructors on either side, and self comparisons" $ do+    source <- fixture+    forM_ [left <> " " <> operator <> " " <> right | operator <- ["==", "!="], (left, right) <- [("cmd.requiredScope", "reg.requiredScope"), ("cmd.requiredScope", "RequiredScope.PipelineScope"), ("RequiredScope.DiagnosticScope", "reg.requiredScope"), ("cmd.requiredScope", "cmd.requiredScope"), ("RequiredScope.PipelineScope", "RequiredScope.DiagnosticScope")]] $ \guardText -> do+      service <- parseChecked (replaceGuard guardText source)+      errors service `shouldBe` []+      let modules = scaffoldServiceModules (defaultContext "mapped-structural-enum-equality") service+      firewallBreaches modules `shouldBe` []+  it "rejects invalid operands and operations at the expression" $ do+    source <- fixture+    forM_+      [ ("cmd.requiredScope == \"pipeline\"", AggregateExpressionOperandTypeMismatch),+        ("cmd.requiredScope < reg.requiredScope", AggregateExpressionOperatorUnsupported),+        ("cmd.requiredScope + reg.requiredScope == cmd.requiredScope", AggregateExpressionOperatorUnsupported),+        ("cmd.requiredScope == RequiredScope.Unknown", AggregateExpressionLiteralInvalid),+        ("cmd.requiredScope == PipelineScope", AggregateExpressionRootUnknown),+        ("cmd.request == cmd.request", AggregateExpressionOperatorUnsupported)+      ]+      $ \(guardText, code) -> do+        service <- parseChecked (replaceGuard guardText source)+        codes service `shouldContain` [code]+  it "separates structural and nominal enums despite identical strings" $ do+    source <- fixture+    service <- parseChecked (replaceGuard "cmd.requiredScope == NominalScope.Pipeline" (T.replace "context mapped-structural-enum-equality" "context mapped-structural-enum-equality\nenum NominalScope { Pipeline=pipeline Diagnostic=diagnostic }" source))+    codes service `shouldContain` [AggregateGuardTypeMismatch]+  it "keeps declaration identity even when two enums share their Haskell owner" $ do+    source <- fixture+    let (_, enumAndRest) = T.breakOn "mapped structural enum RequiredScope" source+        (enumSource, _) = T.breakOn "mapped structural record Request" enumAndRest+        second sameOwner = T.replace "type=OtherScope" (if sameOwner then "type=RequiredScope" else "type=OtherScope") (T.replace "RequiredScope" "OtherScope" enumSource)+    forM_ [False, True] $ \sameOwner -> do+      service <- parseChecked (replaceGuard "cmd.requiredScope == cmd.otherScope" (T.replace "mapped structural record Request" (second sameOwner <> "mapped structural record Request") (T.replace "command Match {" "command Match { otherScope:OtherScope" source)))+      let spec = checkedSpec service+          owner = aggregate service+          transition = head owner.transitions+          Just syntax = transition.guard+      case resolveGuardExpr (expressionEnvironment spec owner transition) syntax of+        Left diagnostics -> map (.code) (NE.toList diagnostics) `shouldContain` [ScalarOperandTypeMismatch]+        Right _ -> expectationFailure "cross-declaration equality was accepted"+  it "retains mapped codecs, samples, initials and writes while rejecting other mapped shapes" $ do+    source <- fixture+    service <- parseChecked source+    let symbols = aggregateSymbols (checkedSpec service)+    case resolveAggregateType symbols noLoc CommandFieldUse (TRef "RequiredScope") of+      Right resolved@(AggregateStructuralEnum _) -> do+        case resolved of AggregateMapped key -> key `shouldBe` MappedKey "RequiredScope"; _ -> expectationFailure "lost mapped-value view"+        aggregateCapability EqualityGuardUse resolved `shouldBe` SolverVisible+        aggregateCapability OrderingGuardUse resolved `shouldBe` Unsupported+        aggregateCapability CommandFieldUse resolved `shouldBe` OpaqueOnly+      other -> expectationFailure (show other)+    forM_+      [ T.replace "mapped structural enum RequiredScope" "mapped structural union RequiredScope" . T.replace "wire string { PipelineScope as \"pipeline\" DiagnosticScope as \"diagnostic\" }" "wire tagged-object tag=\"tag\" contents=\"contents\" unknown-fields=reject { PipelineScope as \"pipeline\" DiagnosticScope as \"diagnostic\" }",+        T.replace "mapped structural enum RequiredScope" "mapped opaque RequiredScope" . T.replace "  wire string { PipelineScope as \"pipeline\" DiagnosticScope as \"diagnostic\" }" "  codec = \"scope.json\"\n  version = \"1\"" . T.replace "  binding = \"Conformance.MappedStructuralEnumEquality.Bindings.requiredScopeBinding\"\n" "" . T.replace "  binding-version = \"1\"\n" "" . T.replace "  canonical-type = \"conformance.RequiredScope.v1\"\n" ""+      ]+      $ \transform -> do+        other <- parseChecked (transform source)+        codes other `shouldContain` [AggregateExpressionOperatorUnsupported]+  it "rejects incomplete binding metadata statically" $ do+    source <- fixture+    incomplete <- parseChecked (T.replace "  binding = \"Conformance.MappedStructuralEnumEquality.Bindings.requiredScopeBinding\"\n" "" source)+    codes incomplete `shouldContain` [MappedMissingIngredient]+  it "emits finite root witnesses and exhaustive binding laws without fixture-selected reconstruction" $ do+    source <- fixture+    service <- parseChecked source+    let modules = scaffoldServiceModules (defaultContext "mapped-structural-enum-equality") service+        projections = moduleText "StructuralProjections.hs" modules+        conformance = moduleText "StructuralConformance.hs" modules+    projections `shouldSatisfy` T.isInfixOf "finiteProjectionDomain"+    projections `shouldSatisfy` T.isInfixOf "bindingFromShape"+    projections `shouldSatisfy` (not . T.isInfixOf "NonEmpty.head")+    conformance `shouldSatisfy` T.isInfixOf "exhaustive enum shape round-trip"+    conformance `shouldSatisfy` T.isInfixOf "checkFieldProjectionOwner"+    conformance `shouldSatisfy` T.isInfixOf "checkFieldProjectionKey"+  it "records a distinct equality row and explains its total binding obligation" $ do+    source <- fixture+    service <- parseChecked source+    let identities = structuralEnumEqualityIdentitiesForService service+    identities `shouldSatisfy` (not . null)+    case bindingObligationsForService service of+      Left failure -> expectationFailure (show failure)+      Right obligations -> do+        let contracts = [identity | obligation <- obligations, Just identity <- [obligation.equalityContract]]+        contracts `shouldSatisfy` (not . null)+        contracts `shouldSatisfy` all (`elem` identities)+    contents <- TIO.readFile "test/conformance-mapped-structural-enum-equality/keiro-dsl-ledger.context.mapped-structural-enum-equality.txt"+    case parseRecord contents of+      Nothing -> expectationFailure "scaffold record did not parse"+      Just record -> do+        let updated = record {structuralEnumEqualities = identities}+        parseRecord (renderRecord updated) `shouldBe` Just updated+        parseRecord (renderRecord updated <> "structural-enum-equality " <> NE.head (NE.fromList identities) <> "\n") `shouldBe` Nothing+        renderRecord updated `shouldSatisfy` T.isInfixOf "structural-enum-equality keiro-dsl/structural-enum-equality/1:"+    workspaceContents <- TIO.readFile "test/conformance-workspace-nominals/keiro-dsl-ledger.workspace.workspace-nominal-proof.txt"+    case WR.parseWorkspaceRecord workspaceContents of+      Nothing -> expectationFailure "workspace ledger did not parse"+      Just record -> do+        let updated = record {WR.structuralEnumEqualities = identities}+        WR.parseWorkspaceRecord (WR.renderWorkspaceRecord updated) `shouldBe` Just updated+  it "scopes fold identity to equality use and keeps fixture names and order out of it" $ do+    source <- fixture+    service <- parseChecked source+    let fingerprint value = either (error . show) id (aggregateFoldFingerprintForService value (aggregate value))+        surface value = either (error . show) id (aggregateFoldSurfaceForService value (aggregate value))+    surface service `shouldSatisfy` T.isInfixOf "structural-enum-equality-use:keiro-dsl/structural-enum-equality/1:"+    forM_ [T.replace "Bindings.requiredScopeFixtures" "Bindings.changedFixtures", T.replace "PipelineScope as \"pipeline\" DiagnosticScope as \"diagnostic\"" "DiagnosticScope as \"diagnostic\" PipelineScope as \"pipeline\""] $ \transform -> do+      same <- parseChecked (transform source)+      fingerprint same `shouldBe` fingerprint service+      replayImpactServices service same `shouldBe` Right ReplayNeutral+    forM_ [T.replace "binding-version = \"1\"" "binding-version = \"2\"", T.replace "\"pipeline\"" "\"pipeline-v2\"", replaceGuard "cmd.requiredScope != reg.requiredScope", T.replace "Bindings.requiredScopeBinding" "Bindings.changedBinding", T.replace "conformance.RequiredScope.v1" "conformance.RequiredScope.v2"] $ \transform -> do+      changed <- parseChecked (transform source)+      fingerprint changed `shouldNotBe` fingerprint service+      replayImpactServices service changed `shouldSatisfy` (/= Right ReplayNeutral)+      Diff.diffServices service changed `shouldSatisfy` either (const False) (not . null)+    noEquality <- parseChecked (stripGuards source)+    surface noEquality `shouldSatisfy` (not . T.isInfixOf "structural-enum-equality-use:")+    oldLanguage <- parseChecked (T.replace "language keiro-dsl 6" "language keiro-dsl 5" (stripGuards source))+    errors oldLanguage `shouldBe` []+    fingerprint noEquality `shouldBe` fingerprint oldLanguage+    surface noEquality `shouldBe` surface oldLanguage+    noGuardDiff <- pure (Diff.diffServices noEquality service)+    noGuardDiff `shouldSatisfy` either (const False) (not . null)+    replayImpactServices noEquality service `shouldSatisfy` (/= Right ReplayNeutral)++  it "compares each supported-history revision against its own graph and preserves unrelated controls" $ do+    let load name = TIO.readFile ("test/fixtures/mapped-structural-enum-equality-history/" <> name <> ".keiro") >>= parseChecked+        fingerprints service = [(owner.name, either (error . show) id (aggregateFoldFingerprintForService service owner)) | NAggregate owner <- (checkedSpec service).nodes]+    old <- load "guarded"+    forM_ [("data-only", False), ("binding-v2", False), ("wire-v2", False), ("fixture-only", True), ("reordered", True)] $ \(name, neutral) -> do+      new <- load name+      errors new `shouldBe` []+      lookup "ScopeControl" (fingerprints new) `shouldBe` lookup "ScopeControl" (fingerprints old)+      (lookup "ScopeGate" (fingerprints new) == lookup "ScopeGate" (fingerprints old)) `shouldBe` neutral+      result <- either (\failure -> expectationFailure (show failure) >> fail "replay comparison failed") pure (replayImpactServices old new)+      (result == ReplayNeutral) `shouldBe` neutral+    dataOnly <- load "data-only"+    let surface = either (error . show) id (aggregateFoldSurfaceForService dataOnly (aggregate dataOnly))+        fingerprint = either (error . show) id (aggregateFoldFingerprintForService dataOnly (aggregate dataOnly))+    expected <- TIO.readFile "test/fixtures/mapped-structural-enum-data-only-fold.golden"+    fingerprint <> "\n" <> surface <> "\n" `shouldBe` expected+  it "samples literal-guarded commands by projected wire key instead of fixture order" $ do+    source <- fixture+    let harnessFor checked = do+          errors checked `shouldBe` []+          let modules = scaffoldServiceModules (defaultContext "mapped-structural-enum-equality") checked+          firewallBreaches modules `shouldBe` []+          pure (moduleText "ScopeGate/Harness.hs" modules)+        sampled filters = "(case [value | (_, value) <- NonEmpty.toList (fixtureCases Bindings.requiredScopeFixtures), " <> filters <> "] of value : _ -> value; [] -> error \"enum guard requires a matching supplied fixture\")"+    harness <- parseChecked source >>= harnessFor+    harness `shouldSatisfy` T.isInfixOf "import Generated.MappedStructuralEnumEquality.StructuralProjections qualified as StructuralProjections"+    harness `shouldSatisfy` T.isInfixOf "(Match (MatchData Bindings.initialScope "+    harness `shouldSatisfy` T.isInfixOf ("(Differ (DifferData " <> sampled "value /= Bindings.initialScope")+    harness `shouldSatisfy` T.isInfixOf ("(EqRight (EqRightData " <> sampled "fieldWitnessGet StructuralProjections.requiredScopeWitness value == \"pipeline\"")+    harness `shouldSatisfy` T.isInfixOf ("(EqLeft (EqLeftData " <> sampled "fieldWitnessGet StructuralProjections.requiredScopeWitness value == \"pipeline\"")+    harness `shouldSatisfy` T.isInfixOf ("(NeRight (NeRightData " <> sampled "fieldWitnessGet StructuralProjections.requiredScopeWitness value /= \"diagnostic\"")+    harness `shouldSatisfy` T.isInfixOf ("(NeLeft (NeLeftData " <> sampled "fieldWitnessGet StructuralProjections.requiredScopeWitness value /= \"diagnostic\"")+    combined <- parseChecked (replaceGuard "cmd.requiredScope != reg.requiredScope && cmd.requiredScope != RequiredScope.DiagnosticScope" source) >>= harnessFor+    combined `shouldSatisfy` T.isInfixOf ("(Match (MatchData " <> sampled "value /= Bindings.initialScope, fieldWitnessGet StructuralProjections.requiredScopeWitness value /= \"diagnostic\"")+    alternative <- parseChecked (replaceGuard "cmd.requiredScope == RequiredScope.DiagnosticScope || cmd.requiredScope == RequiredScope.PipelineScope" source) >>= harnessFor+    alternative `shouldSatisfy` T.isInfixOf ("(Match (MatchData " <> sampled "fieldWitnessGet StructuralProjections.requiredScopeWitness value == \"diagnostic\"")+    unguarded <- parseChecked (stripGuards source) >>= harnessFor+    unguarded `shouldSatisfy` (not . T.isInfixOf "StructuralProjections")+    unguarded `shouldSatisfy` (not . T.isInfixOf "fieldWitnessGet")++fixture :: IO Text+fixture = TIO.readFile "test/fixtures/mapped-structural-enum-equality.keiro"++parseChecked :: Text -> IO CheckedService+parseChecked source = case parseSource "mapped-structural-enum-equality.keiro" source of+  Left failure -> expectationFailure (T.unpack (renderParseFailure failure)) >> fail "parse failed"+  Right parsed -> pure (checkedSource parsed)++aggregate :: CheckedService -> Aggregate+aggregate service = head [value | NAggregate value <- (checkedSpec service).nodes]++errors :: CheckedService -> [Diagnostic]+errors = filter ((== Error) . (.severity)) . validateService++codes :: CheckedService -> [DiagnosticCode]+codes = map (.code) . errors++replaceGuard :: Text -> Text -> Text+replaceGuard = T.replace "cmd.requiredScope == reg.requiredScope"++stripGuards :: Text -> Text+stripGuards = T.replace "write requiredScope := RequiredScope.PipelineScope" "write requiredScope := cmd.requiredScope" . T.unlines . filter (not . T.isPrefixOf "    guard ") . T.lines++moduleText :: Text -> [ScaffoldModule] -> Text+moduleText suffix modules = T.unlines [value.text | value <- modules, suffix `T.isSuffixOf` T.pack value.path]
test/Main.hs view
@@ -60,6 +60,7 @@ import Keiro.Dsl.CodecCompare import Keiro.Dsl.ConformanceBaseline (conformanceBaselineSpec) import Keiro.Dsl.ConformancePackage+import Keiro.Dsl.ConsumerEnumLiterals (consumerEnumLiteralsSpec) import Keiro.Dsl.ConsumerTypePlan import Keiro.Dsl.CoordinationImpact import Keiro.Dsl.Coverage qualified as Coverage@@ -88,6 +89,7 @@ import Keiro.Dsl.MappedConsumer (ConsumerPlan (..), MappingIdentity (..), consumerPlan) import Keiro.Dsl.MappedDiff (MappedFinding (..), diffMapped) import Keiro.Dsl.MappedRegisterConstruction (mappedRegisterConstructionSpec)+import Keiro.Dsl.MappedStructuralEnumEquality (mappedStructuralEnumEqualitySpec) import Keiro.Dsl.NominalType hiding (NominalInvalidHaskellSource, NominalInvalidIdPrefix, NominalInvalidIdentity, NominalMissingIngredient) import Keiro.Dsl.Parser (parseSource, parseSourceDocument, parseSpec) import Keiro.Dsl.PrettyPrint (renderSource, renderSpec, renderTransition)@@ -244,6 +246,8 @@   frontendCompatibilitySpec   frontendSurfaceSpec   mappedRegisterConstructionSpec+  mappedStructuralEnumEqualitySpec+  consumerEnumLiteralsSpec   frontendProfilesSpec    describe "calendar-day codec policy v1" $ do@@ -678,6 +682,7 @@                   mappings = [],                   idDomains = [],                   nominalEqualities = [],+                  structuralEnumEqualities = [],                   bindingObligations = [],                   behaviorRequirements = [],                   projectionCatalogFacts = [],@@ -1968,6 +1973,13 @@             "language-v1.keiro",             "language-zero.keiro",             "mapped-register-construction.keiro",+            "mapped-structural-enum-equality.keiro",+            "mapped-structural-enum-equality-history/guarded.keiro",+            "mapped-structural-enum-equality-history/data-only.keiro",+            "mapped-structural-enum-equality-history/binding-v2.keiro",+            "mapped-structural-enum-equality-history/wire-v2.keiro",+            "mapped-structural-enum-equality-history/fixture-only.keiro",+            "mapped-structural-enum-equality-history/reordered.keiro",             "mapped-keyed-map-enum-key.keiro",             "mapped-keyed-map-language5.keiro",             "mapped-nominal-leaf-default.keiro",@@ -4338,6 +4350,7 @@                 mappings = [],                 idDomains = [],                 nominalEqualities = [],+                structuralEnumEqualities = [],                 bindingObligations = [],                 behaviorRequirements = rows,                 projectionCatalogFacts = [],@@ -4372,6 +4385,7 @@                 mappings = [],                 idDomains = [],                 nominalEqualities = [],+                structuralEnumEqualities = [],                 bindingObligations = [],                 requirements = ownedRows,                 projectionCatalogFacts = [],@@ -4536,6 +4550,7 @@                 mappings = (.mappings) plan,                 idDomains = [],                 nominalEqualities = nominalEqualityIdentities spec,+                structuralEnumEqualities = [],                 bindingObligations = [],                 behaviorRequirements = [],                 projectionCatalogFacts = [],@@ -5705,6 +5720,7 @@                 mappings = [],                 idDomains = [],                 nominalEqualities = [],+                structuralEnumEqualities = [],                 bindingObligations = [],                 behaviorRequirements = [],                 projectionCatalogFacts = [],@@ -6423,6 +6439,7 @@                   mappings = [],                   idDomains = [],                   nominalEqualities = [],+                  structuralEnumEqualities = [],                   bindingObligations = [],                   behaviorRequirements = [],                   projectionCatalogFacts = [],@@ -12333,6 +12350,7 @@                   mappings = [],                   idDomains = [],                   nominalEqualities = [],+                  structuralEnumEqualities = [],                   bindingObligations = [],                   behaviorRequirements = Behavior.behaviorRecordRows requirements,                   projectionCatalogFacts = [],@@ -14799,6 +14817,7 @@       mappings = (.mappings) (consumerPlan ((.mergedSpec) workspace)),       idDomains = [],       nominalEqualities = nominalEqualityIdentities ((.mergedSpec) workspace),+      structuralEnumEqualities = [],       bindingObligations = either (const []) id (bindingHoles ((.mergedSpec) workspace)),       requirements = [],       projectionCatalogFacts = [],@@ -14849,6 +14868,7 @@             mappings = [],             idDomains = [],             nominalEqualities = [],+            structuralEnumEqualities = [],             bindingObligations = [],             behaviorRequirements = behaviorRows,             projectionCatalogFacts = [],@@ -14873,6 +14893,7 @@             mappings = [],             idDomains = [],             nominalEqualities = [],+            structuralEnumEqualities = [],             bindingObligations = [],             requirements = behaviorRows,             projectionCatalogFacts = [],@@ -15178,6 +15199,7 @@     recordMappings     recordIdDomains     recordNominalEqualities+    recordStructuralEnumEqualities     recordBindingObligations     recordBehaviorRequirements     recordProjectionCatalogFacts@@ -15198,6 +15220,7 @@         recordMappings         recordIdDomains         recordNominalEqualities+        recordStructuralEnumEqualities         recordBindingObligations         recordBehaviorRequirements         recordProjectionCatalogFacts@@ -17577,8 +17600,8 @@   WorkspaceModuleRow kind path owner role  workspaceRecordWithEditionAndModules :: GeneratedHaskellNamingEdition -> [WorkspaceModuleRow] -> WorkspaceRecord -> WorkspaceRecord-workspaceRecordWithEditionAndModules namingEdition modules (WorkspaceRecord service manifest contextName moduleRoot layout members sourceLanguages languageContract _ _ mappings idDomains nominalEqualities bindingObligations requirements projectionCatalogFacts queryContractBaseline queryContracts routerSelections adopted semanticImpact) =-  WorkspaceRecord service manifest contextName moduleRoot layout members sourceLanguages languageContract namingEdition modules mappings idDomains nominalEqualities bindingObligations requirements projectionCatalogFacts queryContractBaseline queryContracts routerSelections adopted semanticImpact+workspaceRecordWithEditionAndModules namingEdition modules (WorkspaceRecord service manifest contextName moduleRoot layout members sourceLanguages languageContract _ _ mappings idDomains nominalEqualities structuralEnumEqualities bindingObligations requirements projectionCatalogFacts queryContractBaseline queryContracts routerSelections adopted semanticImpact) =+  WorkspaceRecord service manifest contextName moduleRoot layout members sourceLanguages languageContract namingEdition modules mappings idDomains nominalEqualities structuralEnumEqualities bindingObligations requirements projectionCatalogFacts queryContractBaseline queryContracts routerSelections adopted semanticImpact  timerNodeWithPayload :: [FieldBinding] -> TimerNode -> TimerNode timerNodeWithPayload payload (TimerNode name identity fireAt _ fire decodeUnknown maxAttempts deadLetter loc) =
test/conformance-aggregate-scalars/Generated/AggregateScalars/BehaviorSourceMap.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context aggregate-scalars behavior source map; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context aggregate-scalars behavior source map; do not edit. module Generated.AggregateScalars.BehaviorSourceMap   ( BehaviorSourceLocation (..)   , behaviorSourceLocation
test/conformance-aggregate-scalars/Generated/AggregateScalars/ReplayAudit.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context aggregate-scalars replay-audit assembly; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context aggregate-scalars replay-audit assembly; do not edit. -- -- Deployment contract: --   * replay-neutral diff: no data audit is required;
test/conformance-aggregate-scalars/Generated/AggregateScalars/ScalarLedger/BehaviorContract.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate ScalarLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate ScalarLedger; do not edit. module Generated.AggregateScalars.ScalarLedger.BehaviorContract   ( BehaviorKey (..)   , unBehaviorKey
test/conformance-aggregate-scalars/Generated/AggregateScalars/ScalarLedger/Codec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate ScalarLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate ScalarLedger; do not edit. module Generated.AggregateScalars.ScalarLedger.Codec (     scalarLedgerCodec,     parseScalarLedgerEvent,
test/conformance-aggregate-scalars/Generated/AggregateScalars/ScalarLedger/Domain.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE TemplateHaskell #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate ScalarLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate ScalarLedger; do not edit. module Generated.AggregateScalars.ScalarLedger.Domain where  import Data.Aeson (FromJSON, ToJSON)
test/conformance-aggregate-scalars/Generated/AggregateScalars/ScalarLedger/EventStream.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate ScalarLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate ScalarLedger; do not edit. module Generated.AggregateScalars.ScalarLedger.EventStream   ( scalarLedgerCategory   , scalarLedgerCommandCategory
test/conformance-aggregate-scalars/Generated/AggregateScalars/ScalarLedger/Harness.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate ScalarLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate ScalarLedger; do not edit. module Generated.AggregateScalars.ScalarLedger.Harness (harnessAssertions) where  import Generated.AggregateScalars.ScalarLedger.Domain
test/conformance-aggregate-scalars/Generated/AggregateScalars/ScalarLedger/Projection.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate ScalarLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate ScalarLedger; do not edit. module Generated.AggregateScalars.ScalarLedger.Projection () where  -- No projection declarations are present; this module keeps the generated manifest inventory total.
test/conformance-aggregate-scalars/Generated/AggregateScalars/ScalarLedger/Transducer.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE BlockArguments #-} {-# LANGUAGE QualifiedDo #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate ScalarLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate ScalarLedger; do not edit. module Generated.AggregateScalars.ScalarLedger.Transducer   ( scalarLedgerTransducer   , scalarLedgerFoldFingerprint
test/conformance-bare-containers/Generated/BareContainers/BareJobs/Queue.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from workqueue bare_jobs; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from workqueue bare_jobs; do not edit. module Generated.BareContainers.BareJobs.Queue   ( BareJob (..)   , encodeBareJob
test/conformance-bare-containers/Generated/BareContainers/BareJobs/QueueCodec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from workqueue bare_jobs; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from workqueue bare_jobs; do not edit. -- | Versioned job payload envelope: @{\"v\",\"t\",\"data\"}@. -- -- Deploy workers before producers when raising its schema version. Do not
test/conformance-bare-containers/Generated/BareContainers/BareJobs/QueuePolicy.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from workqueue bare_jobs; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from workqueue bare_jobs; do not edit. module Generated.BareContainers.BareJobs.QueuePolicy   ( BareJobsOutcome (..)   , retryPolicy, jobOutcomeFor
test/conformance-bare-containers/Generated/BareContainers/BareLookup/QueryContract.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from readmodel bare_lookup; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from readmodel bare_lookup; do not edit. module Generated.BareContainers.BareLookup.QueryContract   ( BareLookupQueryInput   , BareLookupQueryResult
test/conformance-bare-containers/Generated/BareContainers/BareLookup/ReadModel.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from readmodel bare_lookup; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from readmodel bare_lookup; do not edit. module Generated.BareContainers.BareLookup.ReadModel   ( bareLookupReadModel   , bareLookupQualifiedTable
test/conformance-bare-containers/Generated/BareContainers/BareLookup/ReadModelHarness.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from readmodel bare_lookup; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from readmodel bare_lookup; do not edit. module Generated.BareContainers.BareLookup.ReadModelHarness (readModelFacts, readModelFactResults, runReadModelFacts, catalogFactsAgainst) where  import Generated.BareContainers.BareLookup.ReadModel (bareLookupReadModel)
test/conformance-bare-containers/Generated/BareContainers/BareLookup/ReadModelTable.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from readmodel bare_lookup; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from readmodel bare_lookup; do not edit. module Generated.BareContainers.BareLookup.ReadModelTable (bareLookupQualifiedTable) where  import Data.Text (Text)
test/conformance-bare-containers/Generated/BareContainers/BareStore/BehaviorContract.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate BareStore; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate BareStore; do not edit. module Generated.BareContainers.BareStore.BehaviorContract   ( BehaviorKey (..)   , unBehaviorKey
test/conformance-bare-containers/Generated/BareContainers/BareStore/Codec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate BareStore; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate BareStore; do not edit. module Generated.BareContainers.BareStore.Codec (     bareStoreCodec,     parseBareStoreEvent,
test/conformance-bare-containers/Generated/BareContainers/BareStore/Domain.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE TemplateHaskell #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate BareStore; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate BareStore; do not edit. module Generated.BareContainers.BareStore.Domain where  import Data.Aeson (FromJSON, ToJSON)
test/conformance-bare-containers/Generated/BareContainers/BareStore/EventStream.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate BareStore; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate BareStore; do not edit. module Generated.BareContainers.BareStore.EventStream   ( bareStoreCategory   , bareStoreCommandCategory
test/conformance-bare-containers/Generated/BareContainers/BareStore/Harness.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate BareStore; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate BareStore; do not edit. module Generated.BareContainers.BareStore.Harness (harnessAssertions) where  import Generated.BareContainers.BareStore.Domain
test/conformance-bare-containers/Generated/BareContainers/BareStore/Projection.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate BareStore; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate BareStore; do not edit. module Generated.BareContainers.BareStore.Projection () where  -- No projection declarations are present; this module keeps the generated manifest inventory total.
test/conformance-bare-containers/Generated/BareContainers/BareStore/Transducer.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE BlockArguments #-} {-# LANGUAGE QualifiedDo #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate BareStore; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate BareStore; do not edit. module Generated.BareContainers.BareStore.Transducer   ( bareStoreTransducer   , bareStoreFoldFingerprint
test/conformance-bare-containers/Generated/BareContainers/BehaviorSourceMap.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context bare-containers behavior source map; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context bare-containers behavior source map; do not edit. module Generated.BareContainers.BehaviorSourceMap   ( BehaviorSourceLocation (..)   , behaviorSourceLocation
test/conformance-bare-containers/Generated/BareContainers/Nominals.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context bare-containers generated nominal declarations; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context bare-containers generated nominal declarations; do not edit. module Generated.BareContainers.Nominals   ( ItemId   , parseItemId
test/conformance-bare-containers/Generated/BareContainers/Nominals/Internal.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context bare-containers generated nominal ID internals; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context bare-containers generated nominal ID internals; do not edit. module Generated.BareContainers.Nominals.Internal   ( ItemId   , parseItemId
test/conformance-bare-containers/Generated/BareContainers/ProjectionCatalog.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from projection-catalog bare-containers; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from projection-catalog bare-containers; do not edit. {-# LANGUAGE OverloadedStrings #-} module Generated.BareContainers.ProjectionCatalog   ( projectionCatalog
test/conformance-bare-containers/Generated/BareContainers/ReplayAudit.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context bare-containers replay-audit assembly; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context bare-containers replay-audit assembly; do not edit. -- -- Deployment contract: --   * replay-neutral diff: no data audit is required;
test/conformance-bare-containers/Generated/BareContainers/Structural/NominalLeaves.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context bare-containers structural nominal leaves; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context bare-containers structural nominal leaves; do not edit. module Generated.BareContainers.Structural.NominalLeaves where  import Data.Aeson (Value (..), withText)
test/conformance-bare-containers/Generated/BareContainers/Structural/Shape/BareEnvelope.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from mapped structural BareEnvelope; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from mapped structural BareEnvelope; do not edit. module Generated.BareContainers.Structural.Shape.BareEnvelope (BareEnvelopeShape (..)) where  import GHC.Generics (Generic)
test/conformance-bare-containers/Generated/BareContainers/Structural/Shape/MaybeText.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from mapped structural MaybeText; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from mapped structural MaybeText; do not edit. module Generated.BareContainers.Structural.Shape.MaybeText (MaybeTextShape) where  import Data.Text (Text)
test/conformance-bare-containers/Generated/BareContainers/Structural/Shape/NestedIds.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from mapped structural NestedIds; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from mapped structural NestedIds; do not edit. module Generated.BareContainers.Structural.Shape.NestedIds (NestedIdsShape) where  import Generated.BareContainers.Nominals qualified as Nominals
test/conformance-bare-containers/Generated/BareContainers/Structural/Shape/TextList.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from mapped structural TextList; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from mapped structural TextList; do not edit. module Generated.BareContainers.Structural.Shape.TextList (TextListShape) where  import Data.Text (Text)
test/conformance-bare-containers/Generated/BareContainers/Structural/Shape/TextMap.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from mapped structural TextMap; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from mapped structural TextMap; do not edit. module Generated.BareContainers.Structural.Shape.TextMap (TextMapShape) where  import Data.Map.Strict (Map)
test/conformance-bare-containers/Generated/BareContainers/StructuralConformance.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context bare-containers structural conformance; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context bare-containers structural conformance; do not edit. module Generated.BareContainers.StructuralConformance   ( structuralConformanceAssertions   ) where
test/conformance-baseline.json view
@@ -20,6 +20,7 @@     {"path": "test/fixtures/outcome-identifier-legacy.keiro", "sourceForm": "legacy-unversioned", "effectiveVersion": 1, "role": "compatibility-proof", "reason": "released outcome-identifier compatibility proof"}   ],   "compiledSuites": [+    {"component": "keiro-dsl-conformance-mapped-structural-enum-equality", "directory": "test/conformance-mapped-structural-enum-equality", "source": "test/fixtures/mapped-structural-enum-equality.keiro", "generation": "source", "role": "candidate-primary", "languageVersion": 6, "reason": "exact finite structural enum equality, literals, model reconstruction, total-binding conformance and replay"},     {"component": "keiro-dsl-conformance-mapped-register-construction", "directory": "test/conformance-mapped-register-construction", "source": "test/fixtures/mapped-register-construction.keiro", "generation": "source", "role": "candidate-primary", "languageVersion": 6, "reason": "candidate Language 6 guarded target initial and mapped lift construction with complete register replay"},     {"component": "keiro-dsl-conformance-keyword-segments", "directory": "test/conformance-keyword-segments", "source": "test/fixtures/keyword-segments.keiro", "generation": "source", "role": "candidate-primary", "languageVersion": 6, "reason": "Language 6 compiled read-model and workqueue keyword-segment naming proof for BUG-11"},     {"component": "keiro-dsl-conformance-history-dependent-holes", "directory": "test/conformance-history-dependent-holes", "source": "test/fixtures/history-dependent-holes.keiro", "generation": "source", "role": "candidate-primary", "languageVersion": 6, "reason": "Language 6 history-backed initial-hole acceptance, exact live/replay-only attribution, and persisted-codec replay proof for BUG-10"},
test/conformance-behavior-complete/Generated/BehaviorComplete/BehaviorSourceMap.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context behavior-complete behavior source map; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context behavior-complete behavior source map; do not edit. module Generated.BehaviorComplete.BehaviorSourceMap   ( BehaviorSourceLocation (..)   , behaviorSourceLocation
test/conformance-behavior-complete/Generated/BehaviorComplete/Journey/BehaviorContract.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Journey; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Journey; do not edit. module Generated.BehaviorComplete.Journey.BehaviorContract   ( BehaviorKey (..)   , unBehaviorKey
test/conformance-behavior-complete/Generated/BehaviorComplete/Journey/Codec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Journey; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Journey; do not edit. module Generated.BehaviorComplete.Journey.Codec (     journeyCodec,     parseJourneyEvent,
test/conformance-behavior-complete/Generated/BehaviorComplete/Journey/Domain.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE TemplateHaskell #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Journey; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Journey; do not edit. module Generated.BehaviorComplete.Journey.Domain where  import Data.Aeson (FromJSON, ToJSON)
test/conformance-behavior-complete/Generated/BehaviorComplete/Journey/EventStream.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Journey; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Journey; do not edit. module Generated.BehaviorComplete.Journey.EventStream   ( journeyCategory   , journeyCommandCategory
test/conformance-behavior-complete/Generated/BehaviorComplete/Journey/Harness.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Journey; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Journey; do not edit. module Generated.BehaviorComplete.Journey.Harness (harnessAssertions) where  import Generated.BehaviorComplete.Journey.Domain
test/conformance-behavior-complete/Generated/BehaviorComplete/Journey/Projection.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Journey; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Journey; do not edit. module Generated.BehaviorComplete.Journey.Projection () where  -- No projection declarations are present; this module keeps the generated manifest inventory total.
test/conformance-behavior-complete/Generated/BehaviorComplete/Journey/Transducer.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE BlockArguments #-} {-# LANGUAGE QualifiedDo #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Journey; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Journey; do not edit. module Generated.BehaviorComplete.Journey.Transducer   ( journeyTransducer   , journeyFoldFingerprint
test/conformance-behavior-complete/Generated/BehaviorComplete/Nominals.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context behavior-complete generated nominal declarations; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context behavior-complete generated nominal declarations; do not edit. module Generated.BehaviorComplete.Nominals   ( RequestId   , parseRequestId
test/conformance-behavior-complete/Generated/BehaviorComplete/Nominals/Internal.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context behavior-complete generated nominal ID internals; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context behavior-complete generated nominal ID internals; do not edit. module Generated.BehaviorComplete.Nominals.Internal   ( RequestId   , parseRequestId
test/conformance-behavior-complete/Generated/BehaviorComplete/ReplayAudit.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context behavior-complete replay-audit assembly; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context behavior-complete replay-audit assembly; do not edit. -- -- Deployment contract: --   * replay-neutral diff: no data audit is required;
test/conformance-behavior-complete/Generated/BehaviorComplete/Structural/Shape/StartPayload.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from mapped structural StartPayload; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from mapped structural StartPayload; do not edit. module Generated.BehaviorComplete.Structural.Shape.StartPayload (StartPayloadShape (..)) where  import Data.Text (Text)
test/conformance-behavior-complete/Generated/BehaviorComplete/StructuralConformance.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context behavior-complete structural conformance; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context behavior-complete structural conformance; do not edit. module Generated.BehaviorComplete.StructuralConformance   ( structuralConformanceAssertions   ) where
test/conformance-behavior-complete/Generated/BehaviorComplete/StructuralProjections.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE TypeFamilies #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context behavior-complete mapped structural facade; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context behavior-complete mapped structural facade; do not edit. -- Equality witnesses are emitted for Text, Int, Bool, Natural, and UTCTime. -- Nominal ID and enum leaves carry exact canonical-text domains. -- Int, Natural, and UTCTime belong to Keiki's ordered subset.
test/conformance-calendar-days/Generated/CalendarDays/BehaviorSourceMap.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context calendar-days behavior source map; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context calendar-days behavior source map; do not edit. module Generated.CalendarDays.BehaviorSourceMap   ( BehaviorSourceLocation (..)   , behaviorSourceLocation
test/conformance-calendar-days/Generated/CalendarDays/CalendarJobs/Queue.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from workqueue calendar_jobs; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from workqueue calendar_jobs; do not edit. module Generated.CalendarDays.CalendarJobs.Queue   ( CalendarJob (..)   , encodeCalendarJob
test/conformance-calendar-days/Generated/CalendarDays/CalendarJobs/QueueCodec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from workqueue calendar_jobs; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from workqueue calendar_jobs; do not edit. -- | Versioned job payload envelope: @{\"v\",\"t\",\"data\"}@. -- -- Deploy workers before producers when raising its schema version. Do not
test/conformance-calendar-days/Generated/CalendarDays/CalendarJobs/QueuePolicy.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from workqueue calendar_jobs; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from workqueue calendar_jobs; do not edit. module Generated.CalendarDays.CalendarJobs.QueuePolicy   ( CalendarJobsOutcome (..)   , retryPolicy, jobOutcomeFor
test/conformance-calendar-days/Generated/CalendarDays/CalendarLookup/QueryContract.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from readmodel calendar_lookup; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from readmodel calendar_lookup; do not edit. module Generated.CalendarDays.CalendarLookup.QueryContract   ( CalendarLookupQueryInput   , CalendarLookupQueryResult
test/conformance-calendar-days/Generated/CalendarDays/CalendarLookup/ReadModel.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from readmodel calendar_lookup; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from readmodel calendar_lookup; do not edit. module Generated.CalendarDays.CalendarLookup.ReadModel   ( calendarLookupReadModel   , calendarLookupQualifiedTable
test/conformance-calendar-days/Generated/CalendarDays/CalendarLookup/ReadModelHarness.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from readmodel calendar_lookup; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from readmodel calendar_lookup; do not edit. module Generated.CalendarDays.CalendarLookup.ReadModelHarness (readModelFacts, readModelFactResults, runReadModelFacts, catalogFactsAgainst) where  import Generated.CalendarDays.CalendarLookup.ReadModel (calendarLookupReadModel)
test/conformance-calendar-days/Generated/CalendarDays/CalendarLookup/ReadModelTable.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from readmodel calendar_lookup; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from readmodel calendar_lookup; do not edit. module Generated.CalendarDays.CalendarLookup.ReadModelTable (calendarLookupQualifiedTable) where  import Data.Text (Text)
test/conformance-calendar-days/Generated/CalendarDays/CalendarStore/BehaviorContract.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate CalendarStore; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate CalendarStore; do not edit. module Generated.CalendarDays.CalendarStore.BehaviorContract   ( BehaviorKey (..)   , unBehaviorKey
test/conformance-calendar-days/Generated/CalendarDays/CalendarStore/Codec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate CalendarStore; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate CalendarStore; do not edit. module Generated.CalendarDays.CalendarStore.Codec (     calendarStoreCodec,     parseCalendarStoreEvent,
test/conformance-calendar-days/Generated/CalendarDays/CalendarStore/Domain.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE TemplateHaskell #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate CalendarStore; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate CalendarStore; do not edit. module Generated.CalendarDays.CalendarStore.Domain where  import Data.Aeson (FromJSON, ToJSON)
test/conformance-calendar-days/Generated/CalendarDays/CalendarStore/EventStream.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate CalendarStore; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate CalendarStore; do not edit. module Generated.CalendarDays.CalendarStore.EventStream   ( calendarStoreCategory   , calendarStoreCommandCategory
test/conformance-calendar-days/Generated/CalendarDays/CalendarStore/Harness.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate CalendarStore; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate CalendarStore; do not edit. module Generated.CalendarDays.CalendarStore.Harness (harnessAssertions) where  import Generated.CalendarDays.CalendarStore.Domain
test/conformance-calendar-days/Generated/CalendarDays/CalendarStore/Projection.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate CalendarStore; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate CalendarStore; do not edit. module Generated.CalendarDays.CalendarStore.Projection () where  -- No projection declarations are present; this module keeps the generated manifest inventory total.
test/conformance-calendar-days/Generated/CalendarDays/CalendarStore/Transducer.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE BlockArguments #-} {-# LANGUAGE QualifiedDo #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate CalendarStore; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate CalendarStore; do not edit. module Generated.CalendarDays.CalendarStore.Transducer   ( calendarStoreTransducer   , calendarStoreFoldFingerprint
test/conformance-calendar-days/Generated/CalendarDays/ProjectionCatalog.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from projection-catalog calendar-days; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from projection-catalog calendar-days; do not edit. {-# LANGUAGE OverloadedStrings #-} module Generated.CalendarDays.ProjectionCatalog   ( projectionCatalog
test/conformance-calendar-days/Generated/CalendarDays/ReplayAudit.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context calendar-days replay-audit assembly; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context calendar-days replay-audit assembly; do not edit. -- -- Deployment contract: --   * replay-neutral diff: no data audit is required;
test/conformance-calendar-days/Generated/CalendarDays/Structural/Shape/CalendarEnvelope.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from mapped structural CalendarEnvelope; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from mapped structural CalendarEnvelope; do not edit. module Generated.CalendarDays.Structural.Shape.CalendarEnvelope (CalendarEnvelopeShape (..)) where  import Data.Map.Strict (Map)
test/conformance-calendar-days/Generated/CalendarDays/Structural/Shape/LocalDay.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from mapped structural LocalDay; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from mapped structural LocalDay; do not edit. module Generated.CalendarDays.Structural.Shape.LocalDay (LocalDayShape) where  import Data.Time.Calendar (Day)
test/conformance-calendar-days/Generated/CalendarDays/Structural/Shape/MaybeLocalDay.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from mapped structural MaybeLocalDay; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from mapped structural MaybeLocalDay; do not edit. module Generated.CalendarDays.Structural.Shape.MaybeLocalDay (MaybeLocalDayShape) where  import Data.Time.Calendar (Day)
test/conformance-calendar-days/Generated/CalendarDays/StructuralConformance.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context calendar-days structural conformance; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context calendar-days structural conformance; do not edit. module Generated.CalendarDays.StructuralConformance   ( structuralConformanceAssertions   ) where
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/BehaviorSourceMap.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context checked-mapping-replay behavior source map; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context checked-mapping-replay behavior source map; do not edit. module Generated.CheckedMappingReplay.BehaviorSourceMap   ( BehaviorSourceLocation (..)   , behaviorSourceLocation
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/Nominals.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context checked-mapping-replay generated nominal declarations; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context checked-mapping-replay generated nominal declarations; do not edit. module Generated.CheckedMappingReplay.Nominals   ( RetainedId   , parseRetainedId
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/Nominals/Internal.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context checked-mapping-replay generated nominal ID internals; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context checked-mapping-replay generated nominal ID internals; do not edit. module Generated.CheckedMappingReplay.Nominals.Internal   ( RetainedId   , parseRetainedId
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ProjectionCatalog.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from projection-catalog checked-mapping-replay; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from projection-catalog checked-mapping-replay; do not edit. {-# LANGUAGE OverloadedStrings #-} module Generated.CheckedMappingReplay.ProjectionCatalog   ( projectionCatalog
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayAudit.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context checked-mapping-replay replay-audit assembly; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context checked-mapping-replay replay-audit assembly; do not edit. -- -- Deployment contract: --   * replay-neutral diff: no data audit is required;
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayEvents/Contract.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from contract replay_events; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from contract replay_events; do not edit. module Generated.CheckedMappingReplay.ReplayEvents.Contract   ( ReplayEventsPayload (..)   , ReplayLinkedData (..)
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayJobs/Queue.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from workqueue replay_jobs; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from workqueue replay_jobs; do not edit. module Generated.CheckedMappingReplay.ReplayJobs.Queue   ( ReplayJob (..)   , encodeReplayJob
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayJobs/QueueCodec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from workqueue replay_jobs; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from workqueue replay_jobs; do not edit. -- | Versioned job payload envelope: @{\"v\",\"t\",\"data\"}@. -- -- Deploy workers before producers when raising its schema version. Do not
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayJobs/QueuePolicy.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from workqueue replay_jobs; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from workqueue replay_jobs; do not edit. module Generated.CheckedMappingReplay.ReplayJobs.QueuePolicy   ( ReplayJobsOutcome (..)   , retryPolicy, jobOutcomeFor
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayLedger/BehaviorContract.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate ReplayLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate ReplayLedger; do not edit. module Generated.CheckedMappingReplay.ReplayLedger.BehaviorContract   ( BehaviorKey (..)   , unBehaviorKey
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayLedger/Codec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate ReplayLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate ReplayLedger; do not edit. module Generated.CheckedMappingReplay.ReplayLedger.Codec (     replayLedgerCodec,     parseReplayLedgerEvent,
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayLedger/Domain.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE TemplateHaskell #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate ReplayLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate ReplayLedger; do not edit. module Generated.CheckedMappingReplay.ReplayLedger.Domain where  import Data.Aeson (FromJSON, ToJSON)
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayLedger/EventStream.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate ReplayLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate ReplayLedger; do not edit. module Generated.CheckedMappingReplay.ReplayLedger.EventStream   ( replayLedgerCategory   , replayLedgerCommandCategory
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayLedger/Harness.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate ReplayLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate ReplayLedger; do not edit. module Generated.CheckedMappingReplay.ReplayLedger.Harness (harnessAssertions) where  import Generated.CheckedMappingReplay.ReplayLedger.Domain
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayLedger/Projection.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate ReplayLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate ReplayLedger; do not edit. module Generated.CheckedMappingReplay.ReplayLedger.Projection () where  -- No projection declarations are present; this module keeps the generated manifest inventory total.
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayLedger/Transducer.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE BlockArguments #-} {-# LANGUAGE QualifiedDo #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate ReplayLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate ReplayLedger; do not edit. module Generated.CheckedMappingReplay.ReplayLedger.Transducer   ( replayLedgerTransducer   , replayLedgerFoldFingerprint
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayLookup/QueryContract.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from readmodel replay_lookup; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from readmodel replay_lookup; do not edit. module Generated.CheckedMappingReplay.ReplayLookup.QueryContract   ( ReplayLookupQueryInput   , ReplayLookupQueryResult
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayLookup/ReadModel.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from readmodel replay_lookup; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from readmodel replay_lookup; do not edit. module Generated.CheckedMappingReplay.ReplayLookup.ReadModel   ( replayLookupReadModel   , replayLookupQualifiedTable
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayLookup/ReadModelHarness.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from readmodel replay_lookup; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from readmodel replay_lookup; do not edit. module Generated.CheckedMappingReplay.ReplayLookup.ReadModelHarness (readModelFacts, readModelFactResults, runReadModelFacts, catalogFactsAgainst) where  import Generated.CheckedMappingReplay.ReplayLookup.ReadModel (replayLookupReadModel)
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayLookup/ReadModelTable.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from readmodel replay_lookup; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from readmodel replay_lookup; do not edit. module Generated.CheckedMappingReplay.ReplayLookup.ReadModelTable (replayLookupQualifiedTable) where  import Data.Text (Text)
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayReaction/Input.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE DeriveAnyClass #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from process input ReplayReaction; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from process input ReplayReaction; do not edit. module Generated.CheckedMappingReplay.ReplayReaction.Input (ReplayReactionInput (..)) where  import Data.Aeson (FromJSON, ToJSON)
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayReaction/Process.hs view
@@ -1,5 +1,5 @@ {-# OPTIONS_GHC -Wno-missing-signatures #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from process reaction ReplayReaction; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from process reaction ReplayReaction; do not edit. module Generated.CheckedMappingReplay.ReplayReaction.Process   ( ReplayReactionInput (..)   , replayReactionProcessName
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayReaction/ProcessHarness.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from process ReplayReaction; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from process ReplayReaction; do not edit. module Generated.CheckedMappingReplay.ReplayReaction.ProcessHarness (processHarnessValues) where  -- | (label, value): the spec's deterministic process/timer decisions,
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayTarget/BehaviorContract.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate ReplayTarget; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate ReplayTarget; do not edit. module Generated.CheckedMappingReplay.ReplayTarget.BehaviorContract   ( BehaviorKey (..)   , unBehaviorKey
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayTarget/Codec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate ReplayTarget; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate ReplayTarget; do not edit. module Generated.CheckedMappingReplay.ReplayTarget.Codec (     replayTargetCodec,     parseReplayTargetEvent,
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayTarget/Domain.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE TemplateHaskell #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate ReplayTarget; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate ReplayTarget; do not edit. module Generated.CheckedMappingReplay.ReplayTarget.Domain where  import Data.Proxy (Proxy (..))
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayTarget/EventStream.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate ReplayTarget; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate ReplayTarget; do not edit. module Generated.CheckedMappingReplay.ReplayTarget.EventStream   ( replayTargetCategory   , replayTargetCommandCategory
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayTarget/Harness.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate ReplayTarget; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate ReplayTarget; do not edit. module Generated.CheckedMappingReplay.ReplayTarget.Harness (harnessAssertions) where  import Generated.CheckedMappingReplay.ReplayTarget.Domain
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayTarget/Projection.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate ReplayTarget; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate ReplayTarget; do not edit. module Generated.CheckedMappingReplay.ReplayTarget.Projection () where  -- No projection declarations are present; this module keeps the generated manifest inventory total.
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/ReplayTarget/Transducer.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE BlockArguments #-} {-# LANGUAGE QualifiedDo #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate ReplayTarget; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate ReplayTarget; do not edit. module Generated.CheckedMappingReplay.ReplayTarget.Transducer   ( replayTargetTransducer   , replayTargetFoldFingerprint
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/Structural/NominalLeaves.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context checked-mapping-replay structural nominal leaves; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context checked-mapping-replay structural nominal leaves; do not edit. module Generated.CheckedMappingReplay.Structural.NominalLeaves where  import Data.Aeson (Value (..), withText)
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/Structural/Shape/ContentHash.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from mapped structural ContentHash; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from mapped structural ContentHash; do not edit. module Generated.CheckedMappingReplay.Structural.Shape.ContentHash (ContentHashShape) where  import Data.ByteString (ByteString)
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/Structural/Shape/ImportantDays.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from mapped structural ImportantDays; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from mapped structural ImportantDays; do not edit. module Generated.CheckedMappingReplay.Structural.Shape.ImportantDays (ImportantDaysShape) where  import Data.Time.Calendar (Day)
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/Structural/Shape/MaybeContentHash.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from mapped structural MaybeContentHash; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from mapped structural MaybeContentHash; do not edit. module Generated.CheckedMappingReplay.Structural.Shape.MaybeContentHash (MaybeContentHashShape) where  import Generated.CheckedMappingReplay.Structural.Shape.ContentHash qualified as ContentHash
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/Structural/Shape/MaybeLabel.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from mapped structural MaybeLabel; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from mapped structural MaybeLabel; do not edit. module Generated.CheckedMappingReplay.Structural.Shape.MaybeLabel (MaybeLabelShape) where  import Data.Text (Text)
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/Structural/Shape/ReplayEnvelope.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from mapped structural ReplayEnvelope; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from mapped structural ReplayEnvelope; do not edit. module Generated.CheckedMappingReplay.Structural.Shape.ReplayEnvelope (ReplayEnvelopeShape (..)) where  import Data.Map.Strict (Map)
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/Structural/Shape/TextLabels.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from mapped structural TextLabels; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from mapped structural TextLabels; do not edit. module Generated.CheckedMappingReplay.Structural.Shape.TextLabels (TextLabelsShape) where  import Data.Set (Set)
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/StructuralConformance.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context checked-mapping-replay structural conformance; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context checked-mapping-replay structural conformance; do not edit. module Generated.CheckedMappingReplay.StructuralConformance   ( structuralConformanceAssertions   ) where
test/conformance-checked-mapping-replay/Generated/CheckedMappingReplay/StructuralProjections.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE TypeFamilies #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context checked-mapping-replay mapped structural facade; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context checked-mapping-replay mapped structural facade; do not edit. -- Equality witnesses are emitted for Text, Int, Bool, Natural, and UTCTime. -- Nominal ID and enum leaves carry exact canonical-text domains. -- Int, Natural, and UTCTime belong to Keiki's ordered subset.
test/conformance-coldstart/Generated/Billing/BehaviorSourceMap.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context billing behavior source map; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context billing behavior source map; do not edit. module Generated.Billing.BehaviorSourceMap   ( BehaviorSourceLocation (..)   , behaviorSourceLocation
test/conformance-coldstart/Generated/Billing/Nominals.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE TypeFamilies #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context billing generated nominal declarations; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context billing generated nominal declarations; do not edit. module Generated.Billing.Nominals   ( CustomerId   , parseCustomerId
test/conformance-coldstart/Generated/Billing/Nominals/Internal.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context billing generated nominal ID internals; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context billing generated nominal ID internals; do not edit. module Generated.Billing.Nominals.Internal   ( CustomerId   , parseCustomerId
test/conformance-coldstart/Generated/Billing/ReplayAudit.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context billing replay-audit assembly; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context billing replay-audit assembly; do not edit. -- -- Deployment contract: --   * replay-neutral diff: no data audit is required;
test/conformance-coldstart/Generated/Billing/Subscription/BehaviorContract.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Subscription; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Subscription; do not edit. module Generated.Billing.Subscription.BehaviorContract   ( BehaviorKey (..)   , unBehaviorKey
test/conformance-coldstart/Generated/Billing/Subscription/Codec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Subscription; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Subscription; do not edit. module Generated.Billing.Subscription.Codec (     subscriptionCodec,     parseSubscriptionEvent,
test/conformance-coldstart/Generated/Billing/Subscription/Domain.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE TemplateHaskell #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Subscription; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Subscription; do not edit. module Generated.Billing.Subscription.Domain where  import Data.Proxy (Proxy (..))
test/conformance-coldstart/Generated/Billing/Subscription/EventStream.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Subscription; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Subscription; do not edit. module Generated.Billing.Subscription.EventStream   ( subscriptionCategory   , subscriptionCommandCategory
test/conformance-coldstart/Generated/Billing/Subscription/Harness.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Subscription; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Subscription; do not edit. module Generated.Billing.Subscription.Harness (harnessAssertions) where  import Generated.Billing.Subscription.Domain
test/conformance-coldstart/Generated/Billing/Subscription/Projection.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Subscription; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Subscription; do not edit. module Generated.Billing.Subscription.Projection   ( subscriptionsProjection   , subscriptionsStatusFor
test/conformance-coldstart/Generated/Billing/Subscription/Transducer.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE BlockArguments #-} {-# LANGUAGE OverloadedLabels #-} {-# LANGUAGE QualifiedDo #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Subscription; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Subscription; do not edit. module Generated.Billing.Subscription.Transducer   ( subscriptionTransducer   , subscriptionFoldFingerprint
test/conformance-contract-declared-id/Generated/ContractDeclaredId/Nominals.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context contract-declared-id generated nominal declarations; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context contract-declared-id generated nominal declarations; do not edit. module Generated.ContractDeclaredId.Nominals   ( TemplateId   , parseTemplateId
test/conformance-contract-declared-id/Generated/ContractDeclaredId/Nominals/Internal.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context contract-declared-id generated nominal ID internals; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context contract-declared-id generated nominal ID internals; do not edit. module Generated.ContractDeclaredId.Nominals.Internal   ( TemplateId   , parseTemplateId
test/conformance-contract-declared-id/Generated/ContractDeclaredId/Structural/NominalLeaves.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context contract-declared-id structural nominal leaves; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context contract-declared-id structural nominal leaves; do not edit. module Generated.ContractDeclaredId.Structural.NominalLeaves where  import Data.Aeson (Value (..), withText)
test/conformance-contract-declared-id/Generated/ContractDeclaredId/StructuralConformance.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context contract-declared-id structural conformance; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context contract-declared-id structural conformance; do not edit. module Generated.ContractDeclaredId.StructuralConformance   ( structuralConformanceAssertions   ) where
test/conformance-contract-declared-id/Generated/ContractDeclaredId/Templates/Contract.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from contract templates; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from contract templates; do not edit. module Generated.ContractDeclaredId.Templates.Contract   ( TemplatesPayload (..)   , TemplateClaimedData (..)
test/conformance-contract-list-fields/Generated/ContractListFields/Nominals.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context contract-list-fields generated nominal declarations; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context contract-list-fields generated nominal declarations; do not edit. module Generated.ContractListFields.Nominals   ( TemplateId   , parseTemplateId
test/conformance-contract-list-fields/Generated/ContractListFields/Nominals/Internal.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context contract-list-fields generated nominal ID internals; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context contract-list-fields generated nominal ID internals; do not edit. module Generated.ContractListFields.Nominals.Internal   ( TemplateId   , parseTemplateId
test/conformance-contract-list-fields/Generated/ContractListFields/Structural/NominalLeaves.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context contract-list-fields structural nominal leaves; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context contract-list-fields structural nominal leaves; do not edit. module Generated.ContractListFields.Structural.NominalLeaves where  import Data.Aeson (Value (..), withText)
test/conformance-contract-list-fields/Generated/ContractListFields/StructuralConformance.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context contract-list-fields structural conformance; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context contract-list-fields structural conformance; do not edit. module Generated.ContractListFields.StructuralConformance   ( structuralConformanceAssertions   ) where
test/conformance-contract-list-fields/Generated/ContractListFields/Templates/Contract.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from contract templates; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from contract templates; do not edit. module Generated.ContractListFields.Templates.Contract   ( TemplatesPayload (..)   , TemplatesReassignedData (..)
test/conformance-contract-v1-compat/Generated/HospitalCapacity/Emergency/Contract.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 1) from contract emergency; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 1) from contract emergency; do not edit. module Generated.HospitalCapacity.Emergency.Contract   ( EmergencyPayload (..)   , IncidentTransferNeedDeclaredData (..)
test/conformance-contract/Generated/HospitalCapacity/Emergency/Contract.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from contract emergency; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from contract emergency; do not edit. module Generated.HospitalCapacity.Emergency.Contract   ( EmergencyPayload (..)   , IncidentTransferNeedDeclaredData (..)
test/conformance-declarative-router/Generated/TransferRouting/BehaviorSourceMap.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from context transfer-routing behavior source map; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from context transfer-routing behavior source map; do not edit. module Generated.TransferRouting.BehaviorSourceMap   ( BehaviorSourceLocation (..)   , behaviorSourceLocation
test/conformance-declarative-router/Generated/TransferRouting/Hospital/BehaviorContract.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from aggregate Hospital; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from aggregate Hospital; do not edit. module Generated.TransferRouting.Hospital.BehaviorContract   ( BehaviorKey (..)   , unBehaviorKey
test/conformance-declarative-router/Generated/TransferRouting/Hospital/Codec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from aggregate Hospital; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from aggregate Hospital; do not edit. module Generated.TransferRouting.Hospital.Codec (     hospitalCodec,     parseHospitalEvent,
test/conformance-declarative-router/Generated/TransferRouting/Hospital/Domain.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE TemplateHaskell #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from aggregate Hospital; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from aggregate Hospital; do not edit. module Generated.TransferRouting.Hospital.Domain where  import Data.Proxy (Proxy (..))
test/conformance-declarative-router/Generated/TransferRouting/Hospital/EventStream.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from aggregate Hospital; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from aggregate Hospital; do not edit. module Generated.TransferRouting.Hospital.EventStream   ( hospitalCategory   , hospitalCommandCategory
test/conformance-declarative-router/Generated/TransferRouting/Hospital/Harness.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from aggregate Hospital; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from aggregate Hospital; do not edit. module Generated.TransferRouting.Hospital.Harness (harnessAssertions) where  import Generated.TransferRouting.Hospital.Domain
test/conformance-declarative-router/Generated/TransferRouting/Hospital/Projection.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from aggregate Hospital; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from aggregate Hospital; do not edit. module Generated.TransferRouting.Hospital.Projection () where  -- No projection declarations are present; this module keeps the generated manifest inventory total.
test/conformance-declarative-router/Generated/TransferRouting/Hospital/Transducer.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE BlockArguments #-} {-# LANGUAGE QualifiedDo #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from aggregate Hospital; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from aggregate Hospital; do not edit. module Generated.TransferRouting.Hospital.Transducer   ( hospitalTransducer   , hospitalFoldFingerprint
test/conformance-declarative-router/Generated/TransferRouting/HospitalLoad/QueryContract.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from readmodel hospital_load; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from readmodel hospital_load; do not edit. module Generated.TransferRouting.HospitalLoad.QueryContract   ( HospitalLoadQueryInput   , HospitalLoadQueryResult
test/conformance-declarative-router/Generated/TransferRouting/HospitalLoad/ReadModel.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from readmodel hospital_load; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from readmodel hospital_load; do not edit. module Generated.TransferRouting.HospitalLoad.ReadModel   ( hospitalLoadReadModel   , hospitalLoadQualifiedTable
test/conformance-declarative-router/Generated/TransferRouting/HospitalLoad/ReadModelHarness.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from readmodel hospital_load; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from readmodel hospital_load; do not edit. module Generated.TransferRouting.HospitalLoad.ReadModelHarness (readModelFacts, readModelFactResults, runReadModelFacts, catalogFactsAgainst) where  import Generated.TransferRouting.HospitalLoad.ReadModel (hospitalLoadReadModel)
test/conformance-declarative-router/Generated/TransferRouting/HospitalLoad/ReadModelTable.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from readmodel hospital_load; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from readmodel hospital_load; do not edit. module Generated.TransferRouting.HospitalLoad.ReadModelTable (hospitalLoadQualifiedTable) where  import Data.Text (Text)
test/conformance-declarative-router/Generated/TransferRouting/HospitalTransferRouter/Router.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from router HospitalTransferRouter; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from router HospitalTransferRouter; do not edit. module Generated.TransferRouting.HospitalTransferRouter.Router   ( hospitalTransferRouterName   , hospitalTransferRouterWorkerOptions
test/conformance-declarative-router/Generated/TransferRouting/HospitalTransferRouter/RouterHarness.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from router HospitalTransferRouter; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from router HospitalTransferRouter; do not edit. module Generated.TransferRouting.HospitalTransferRouter.RouterHarness (routerHarnessValues) where  routerHarnessValues :: [(String, String)]
test/conformance-declarative-router/Generated/TransferRouting/ProjectionCatalog.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from projection-catalog transfer-routing; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from projection-catalog transfer-routing; do not edit. {-# LANGUAGE OverloadedStrings #-} module Generated.TransferRouting.ProjectionCatalog   ( projectionCatalog
test/conformance-declarative-router/Generated/TransferRouting/ReplayAudit.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from context transfer-routing replay-audit assembly; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from context transfer-routing replay-audit assembly; do not edit. -- -- Deployment contract: --   * replay-neutral diff: no data audit is required;
test/conformance-declarative-router/Generated/TransferRouting/Structural/Shape/HospitalLoadRow.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from mapped structural HospitalLoadRow; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from mapped structural HospitalLoadRow; do not edit. module Generated.TransferRouting.Structural.Shape.HospitalLoadRow (HospitalLoadRowShape (..)) where  import Data.Text (Text)
test/conformance-declarative-router/Generated/TransferRouting/Structural/Shape/TransferRouteInput.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from mapped structural TransferRouteInput; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from mapped structural TransferRouteInput; do not edit. module Generated.TransferRouting.Structural.Shape.TransferRouteInput (TransferRouteInputShape (..)) where  import Data.Text (Text)
test/conformance-declarative-router/Generated/TransferRouting/StructuralConformance.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from context transfer-routing structural conformance; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from context transfer-routing structural conformance; do not edit. module Generated.TransferRouting.StructuralConformance   ( structuralConformanceAssertions   ) where
test/conformance-declarative-router/Generated/TransferRouting/StructuralProjections.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE TypeFamilies #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from context transfer-routing mapped structural facade; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from context transfer-routing mapped structural facade; do not edit. -- Equality witnesses are emitted for Text, Int, Bool, Natural, and UTCTime. -- Nominal ID and enum leaves carry exact canonical-text domains. -- Int, Natural, and UTCTime belong to Keiki's ordered subset.
test/conformance-dispatch-full/Generated/HospitalCapacity/AcceptedTransferNeeds/ReadModel.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from readmodel accepted_transfer_needs; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from readmodel accepted_transfer_needs; do not edit. module Generated.HospitalCapacity.AcceptedTransferNeeds.ReadModel   ( acceptedTransferNeedsReadModel   , acceptedTransferNeedsQualifiedTable
test/conformance-dispatch-full/Generated/HospitalCapacity/AcceptedTransferNeeds/ReadModelHarness.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from readmodel accepted_transfer_needs; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from readmodel accepted_transfer_needs; do not edit. module Generated.HospitalCapacity.AcceptedTransferNeeds.ReadModelHarness (readModelFacts, readModelFactResults, runReadModelFacts) where  import Generated.HospitalCapacity.AcceptedTransferNeeds.ReadModel (acceptedTransferNeedsReadModel, acceptedTransferNeedsAsyncProjection)
test/conformance-dispatch-full/Generated/HospitalCapacity/AcceptedTransferNeeds/ReadModelTable.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from readmodel accepted_transfer_needs; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from readmodel accepted_transfer_needs; do not edit. module Generated.HospitalCapacity.AcceptedTransferNeeds.ReadModelTable (acceptedTransferNeedsQualifiedTable) where  import Data.Text (Text)
test/conformance-dispatch-full/Generated/HospitalCapacity/ReservationWork/Queue.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from workqueue reservation_work; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from workqueue reservation_work; do not edit. module Generated.HospitalCapacity.ReservationWork.Queue   ( ReservationWorkItem (..)   , encodeReservationWorkItem
test/conformance-dispatch-full/Generated/HospitalCapacity/ReservationWork/QueueCodec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from workqueue reservation_work; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from workqueue reservation_work; do not edit. -- | Versioned job payload envelope: @{\"v\",\"t\",\"data\"}@. -- -- Deploy workers before producers when raising its schema version. Do not
test/conformance-dispatch-full/Generated/HospitalCapacity/ReservationWork/QueuePolicy.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from workqueue reservation_work; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from workqueue reservation_work; do not edit. module Generated.HospitalCapacity.ReservationWork.QueuePolicy   ( ReservationWorkOutcome (..)   , retryPolicy, jobOutcomeFor
test/conformance-dispatch-full/Generated/HospitalCapacity/TransferDecisions/ReadModel.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from readmodel transfer_decisions; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from readmodel transfer_decisions; do not edit. module Generated.HospitalCapacity.TransferDecisions.ReadModel   ( transferDecisionsReadModel   , transferDecisionsQualifiedTable
test/conformance-dispatch-full/Generated/HospitalCapacity/TransferDecisions/ReadModelHarness.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from readmodel transfer_decisions; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from readmodel transfer_decisions; do not edit. module Generated.HospitalCapacity.TransferDecisions.ReadModelHarness (readModelFacts, readModelFactResults, runReadModelFacts) where  import Generated.HospitalCapacity.TransferDecisions.ReadModel (transferDecisionsReadModel, transferDecisionsAsyncProjection)
test/conformance-dispatch-full/Generated/HospitalCapacity/TransferDecisions/ReadModelTable.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from readmodel transfer_decisions; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from readmodel transfer_decisions; do not edit. module Generated.HospitalCapacity.TransferDecisions.ReadModelTable (transferDecisionsQualifiedTable) where  import Data.Text (Text)
test/conformance-domain-outcomes/Generated/DomainOutcomes/BehaviorSourceMap.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from context domain-outcomes behavior source map; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from context domain-outcomes behavior source map; do not edit. module Generated.DomainOutcomes.BehaviorSourceMap   ( BehaviorSourceLocation (..)   , behaviorSourceLocation
test/conformance-domain-outcomes/Generated/DomainOutcomes/Nominals.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE DeriveAnyClass #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from context domain-outcomes generated nominal declarations; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from context domain-outcomes generated nominal declarations; do not edit. module Generated.DomainOutcomes.Nominals where  import Data.Aeson (FromJSON, ToJSON)
test/conformance-domain-outcomes/Generated/DomainOutcomes/ReplayAudit.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from context domain-outcomes replay-audit assembly; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from context domain-outcomes replay-audit assembly; do not edit. -- -- Deployment contract: --   * replay-neutral diff: no data audit is required;
test/conformance-domain-outcomes/Generated/DomainOutcomes/Reservation/BehaviorContract.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from aggregate Reservation; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from aggregate Reservation; do not edit. module Generated.DomainOutcomes.Reservation.BehaviorContract   ( BehaviorKey (..)   , unBehaviorKey
test/conformance-domain-outcomes/Generated/DomainOutcomes/Reservation/Codec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from aggregate Reservation; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from aggregate Reservation; do not edit. module Generated.DomainOutcomes.Reservation.Codec (     reservationCodec,     parseReservationEvent,
test/conformance-domain-outcomes/Generated/DomainOutcomes/Reservation/Domain.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE TemplateHaskell #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from aggregate Reservation; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from aggregate Reservation; do not edit. module Generated.DomainOutcomes.Reservation.Domain where  import Data.Proxy (Proxy (..))
test/conformance-domain-outcomes/Generated/DomainOutcomes/Reservation/EventStream.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from aggregate Reservation; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from aggregate Reservation; do not edit. module Generated.DomainOutcomes.Reservation.EventStream   ( reservationCategory   , reservationCommandCategory
test/conformance-domain-outcomes/Generated/DomainOutcomes/Reservation/Harness.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from aggregate Reservation; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from aggregate Reservation; do not edit. module Generated.DomainOutcomes.Reservation.Harness (harnessAssertions) where  import Generated.DomainOutcomes.Reservation.Domain
test/conformance-domain-outcomes/Generated/DomainOutcomes/Reservation/Projection.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from aggregate Reservation; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from aggregate Reservation; do not edit. module Generated.DomainOutcomes.Reservation.Projection () where  -- No projection declarations are present; this module keeps the generated manifest inventory total.
test/conformance-domain-outcomes/Generated/DomainOutcomes/Reservation/Transducer.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE BlockArguments #-} {-# LANGUAGE QualifiedDo #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from aggregate Reservation; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from aggregate Reservation; do not edit. module Generated.DomainOutcomes.Reservation.Transducer   ( reservationTransducer   , reservationFoldFingerprint
test/conformance-history-dependent-holes/Generated/HistoryDependentHoles/Assignment/BehaviorContract.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate Assignment; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate Assignment; do not edit. module Generated.HistoryDependentHoles.Assignment.BehaviorContract   ( BehaviorKey (..)   , unBehaviorKey
test/conformance-history-dependent-holes/Generated/HistoryDependentHoles/Assignment/Codec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate Assignment; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate Assignment; do not edit. module Generated.HistoryDependentHoles.Assignment.Codec (     assignmentCodec,     parseAssignmentEvent,
test/conformance-history-dependent-holes/Generated/HistoryDependentHoles/Assignment/Domain.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE TemplateHaskell #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate Assignment; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate Assignment; do not edit. module Generated.HistoryDependentHoles.Assignment.Domain where  import Data.Proxy (Proxy (..))
test/conformance-history-dependent-holes/Generated/HistoryDependentHoles/Assignment/EventStream.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate Assignment; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate Assignment; do not edit. module Generated.HistoryDependentHoles.Assignment.EventStream   ( assignmentCategory   , assignmentCommandCategory
test/conformance-history-dependent-holes/Generated/HistoryDependentHoles/Assignment/Harness.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate Assignment; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate Assignment; do not edit. module Generated.HistoryDependentHoles.Assignment.Harness (harnessAssertions) where  import Generated.HistoryDependentHoles.Assignment.Domain
test/conformance-history-dependent-holes/Generated/HistoryDependentHoles/Assignment/Projection.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate Assignment; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate Assignment; do not edit. module Generated.HistoryDependentHoles.Assignment.Projection () where  -- No projection declarations are present; this module keeps the generated manifest inventory total.
test/conformance-history-dependent-holes/Generated/HistoryDependentHoles/Assignment/Transducer.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE BlockArguments #-} {-# LANGUAGE QualifiedDo #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate Assignment; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate Assignment; do not edit. module Generated.HistoryDependentHoles.Assignment.Transducer   ( assignmentTransducer   , assignmentFoldFingerprint
test/conformance-history-dependent-holes/Generated/HistoryDependentHoles/BehaviorSourceMap.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context history-dependent-holes behavior source map; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context history-dependent-holes behavior source map; do not edit. module Generated.HistoryDependentHoles.BehaviorSourceMap   ( BehaviorSourceLocation (..)   , behaviorSourceLocation
test/conformance-history-dependent-holes/Generated/HistoryDependentHoles/ReplayAudit.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context history-dependent-holes replay-audit assembly; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context history-dependent-holes replay-audit assembly; do not edit. -- -- Deployment contract: --   * replay-neutral diff: no data audit is required;
test/conformance-history-dependent-holes/Generated/HistoryDependentHoles/StructuralConformance.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context history-dependent-holes structural conformance; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context history-dependent-holes structural conformance; do not edit. module Generated.HistoryDependentHoles.StructuralConformance   ( structuralConformanceAssertions   ) where
test/conformance-id-admission-domains/Generated/IdAdmissionDomains/BehaviorSourceMap.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context id-admission-domains behavior source map; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context id-admission-domains behavior source map; do not edit. module Generated.IdAdmissionDomains.BehaviorSourceMap   ( BehaviorSourceLocation (..)   , behaviorSourceLocation
test/conformance-id-admission-domains/Generated/IdAdmissionDomains/Identities/Contract.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from contract identities; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from contract identities; do not edit. module Generated.IdAdmissionDomains.Identities.Contract   ( IdentitiesPayload (..)   , IdentityLinkedData (..)
test/conformance-id-admission-domains/Generated/IdAdmissionDomains/IdentityLedger/BehaviorContract.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate IdentityLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate IdentityLedger; do not edit. module Generated.IdAdmissionDomains.IdentityLedger.BehaviorContract   ( BehaviorKey (..)   , unBehaviorKey
test/conformance-id-admission-domains/Generated/IdAdmissionDomains/IdentityLedger/Codec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate IdentityLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate IdentityLedger; do not edit. module Generated.IdAdmissionDomains.IdentityLedger.Codec (     identityLedgerCodec,     parseIdentityLedgerEvent,
test/conformance-id-admission-domains/Generated/IdAdmissionDomains/IdentityLedger/Domain.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE TemplateHaskell #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate IdentityLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate IdentityLedger; do not edit. module Generated.IdAdmissionDomains.IdentityLedger.Domain where  import Data.Proxy (Proxy (..))
test/conformance-id-admission-domains/Generated/IdAdmissionDomains/IdentityLedger/EventStream.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate IdentityLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate IdentityLedger; do not edit. module Generated.IdAdmissionDomains.IdentityLedger.EventStream   ( identityLedgerCategory   , identityLedgerCommandCategory
test/conformance-id-admission-domains/Generated/IdAdmissionDomains/IdentityLedger/Harness.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate IdentityLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate IdentityLedger; do not edit. module Generated.IdAdmissionDomains.IdentityLedger.Harness (harnessAssertions) where  import Generated.IdAdmissionDomains.IdentityLedger.Domain
test/conformance-id-admission-domains/Generated/IdAdmissionDomains/IdentityLedger/Projection.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate IdentityLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate IdentityLedger; do not edit. module Generated.IdAdmissionDomains.IdentityLedger.Projection () where  -- No projection declarations are present; this module keeps the generated manifest inventory total.
test/conformance-id-admission-domains/Generated/IdAdmissionDomains/IdentityLedger/Transducer.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE BlockArguments #-} {-# LANGUAGE QualifiedDo #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate IdentityLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate IdentityLedger; do not edit. module Generated.IdAdmissionDomains.IdentityLedger.Transducer   ( identityLedgerTransducer   , identityLedgerFoldFingerprint
test/conformance-id-admission-domains/Generated/IdAdmissionDomains/IdentityWork/Queue.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from workqueue identity_work; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from workqueue identity_work; do not edit. module Generated.IdAdmissionDomains.IdentityWork.Queue   ( IdentityWork (..)   , encodeIdentityWork
test/conformance-id-admission-domains/Generated/IdAdmissionDomains/IdentityWork/QueueCodec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from workqueue identity_work; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from workqueue identity_work; do not edit. -- | Versioned job payload envelope: @{\"v\",\"t\",\"data\"}@. -- -- Deploy workers before producers when raising its schema version. Do not
test/conformance-id-admission-domains/Generated/IdAdmissionDomains/IdentityWork/QueuePolicy.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from workqueue identity_work; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from workqueue identity_work; do not edit. module Generated.IdAdmissionDomains.IdentityWork.QueuePolicy   ( IdentityWorkOutcome (..)   , retryPolicy, jobOutcomeFor
test/conformance-id-admission-domains/Generated/IdAdmissionDomains/Nominals.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context id-admission-domains generated nominal declarations; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context id-admission-domains generated nominal declarations; do not edit. module Generated.IdAdmissionDomains.Nominals   ( LegacyId   , parseLegacyId
test/conformance-id-admission-domains/Generated/IdAdmissionDomains/Nominals/Internal.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context id-admission-domains generated nominal ID internals; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context id-admission-domains generated nominal ID internals; do not edit. module Generated.IdAdmissionDomains.Nominals.Internal   ( LegacyId   , parseLegacyId
test/conformance-id-admission-domains/Generated/IdAdmissionDomains/ReplayAudit.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context id-admission-domains replay-audit assembly; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context id-admission-domains replay-audit assembly; do not edit. -- -- Deployment contract: --   * replay-neutral diff: no data audit is required;
test/conformance-id-admission-domains/Generated/IdAdmissionDomains/Structural/NominalLeaves.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context id-admission-domains structural nominal leaves; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context id-admission-domains structural nominal leaves; do not edit. module Generated.IdAdmissionDomains.Structural.NominalLeaves where  import Data.Aeson (Value (..), withText)
test/conformance-id-admission-domains/Generated/IdAdmissionDomains/Structural/Shape/IdentityEnvelope.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from mapped structural IdentityEnvelope; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from mapped structural IdentityEnvelope; do not edit. module Generated.IdAdmissionDomains.Structural.Shape.IdentityEnvelope (IdentityEnvelopeShape (..)) where  import Data.Map.Strict (Map)
test/conformance-id-admission-domains/Generated/IdAdmissionDomains/StructuralConformance.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context id-admission-domains structural conformance; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context id-admission-domains structural conformance; do not edit. module Generated.IdAdmissionDomains.StructuralConformance   ( structuralConformanceAssertions   ) where
test/conformance-id-admission-domains/Generated/IdAdmissionDomains/StructuralProjections.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE TypeFamilies #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context id-admission-domains mapped structural facade; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context id-admission-domains mapped structural facade; do not edit. -- Equality witnesses are emitted for Text, Int, Bool, Natural, and UTCTime. -- Nominal ID and enum leaves carry exact canonical-text domains. -- Int, Natural, and UTCTime belong to Keiki's ordered subset.
test/conformance-id-domain-migration/Generated/IdDomainMigration/BehaviorSourceMap.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 3) from context id-domain-migration behavior source map; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 3) from context id-domain-migration behavior source map; do not edit. module Generated.IdDomainMigration.BehaviorSourceMap   ( BehaviorSourceLocation (..)   , behaviorSourceLocation
test/conformance-id-domain-migration/Generated/IdDomainMigration/Nominals.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 3) from context id-domain-migration generated nominal declarations; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 3) from context id-domain-migration generated nominal declarations; do not edit. module Generated.IdDomainMigration.Nominals   ( OrderId   , parseOrderId
test/conformance-id-domain-migration/Generated/IdDomainMigration/Nominals/Internal.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 3) from context id-domain-migration generated nominal ID internals; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 3) from context id-domain-migration generated nominal ID internals; do not edit. module Generated.IdDomainMigration.Nominals.Internal   ( OrderId   , parseOrderId
test/conformance-id-domain-migration/Generated/IdDomainMigration/OrderBook/BehaviorContract.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 3) from aggregate OrderBook; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 3) from aggregate OrderBook; do not edit. module Generated.IdDomainMigration.OrderBook.BehaviorContract   ( BehaviorKey (..)   , unBehaviorKey
test/conformance-id-domain-migration/Generated/IdDomainMigration/OrderBook/Codec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 3) from aggregate OrderBook; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 3) from aggregate OrderBook; do not edit. module Generated.IdDomainMigration.OrderBook.Codec (     orderBookCodec,     parseOrderBookEvent,
test/conformance-id-domain-migration/Generated/IdDomainMigration/OrderBook/Domain.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE TemplateHaskell #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 3) from aggregate OrderBook; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 3) from aggregate OrderBook; do not edit. module Generated.IdDomainMigration.OrderBook.Domain where  import Data.Aeson (FromJSON, ToJSON)
test/conformance-id-domain-migration/Generated/IdDomainMigration/OrderBook/EventStream.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 3) from aggregate OrderBook; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 3) from aggregate OrderBook; do not edit. module Generated.IdDomainMigration.OrderBook.EventStream   ( orderBookCategory   , orderBookCommandCategory
test/conformance-id-domain-migration/Generated/IdDomainMigration/OrderBook/Harness.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 3) from aggregate OrderBook; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 3) from aggregate OrderBook; do not edit. module Generated.IdDomainMigration.OrderBook.Harness (harnessAssertions) where  import Generated.IdDomainMigration.OrderBook.Domain
test/conformance-id-domain-migration/Generated/IdDomainMigration/OrderBook/Projection.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 3) from aggregate OrderBook; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 3) from aggregate OrderBook; do not edit. module Generated.IdDomainMigration.OrderBook.Projection () where  -- No projection declarations are present; this module keeps the generated manifest inventory total.
test/conformance-id-domain-migration/Generated/IdDomainMigration/OrderBook/Transducer.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE BlockArguments #-} {-# LANGUAGE QualifiedDo #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 3) from aggregate OrderBook; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 3) from aggregate OrderBook; do not edit. module Generated.IdDomainMigration.OrderBook.Transducer   ( orderBookTransducer   , orderBookFoldFingerprint
test/conformance-id-domain-migration/Generated/IdDomainMigration/ReplayAudit.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 3) from context id-domain-migration replay-audit assembly; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 3) from context id-domain-migration replay-audit assembly; do not edit. -- -- Deployment contract: --   * replay-neutral diff: no data audit is required;
test/conformance-import-planning/Generated/ImportPlanningCollisions/BehaviorSourceMap.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context import-planning-collisions behavior source map; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context import-planning-collisions behavior source map; do not edit. module Generated.ImportPlanningCollisions.BehaviorSourceMap   ( BehaviorSourceLocation (..)   , behaviorSourceLocation
test/conformance-import-planning/Generated/ImportPlanningCollisions/CollisionLedger/BehaviorContract.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate CollisionLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate CollisionLedger; do not edit. module Generated.ImportPlanningCollisions.CollisionLedger.BehaviorContract   ( BehaviorKey (..)   , unBehaviorKey
test/conformance-import-planning/Generated/ImportPlanningCollisions/CollisionLedger/Codec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate CollisionLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate CollisionLedger; do not edit. module Generated.ImportPlanningCollisions.CollisionLedger.Codec (     collisionLedgerCodec,     parseCollisionLedgerEvent,
test/conformance-import-planning/Generated/ImportPlanningCollisions/CollisionLedger/Domain.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE TemplateHaskell #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate CollisionLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate CollisionLedger; do not edit. module Generated.ImportPlanningCollisions.CollisionLedger.Domain where  import GHC.Generics (Generic)
test/conformance-import-planning/Generated/ImportPlanningCollisions/CollisionLedger/EventStream.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate CollisionLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate CollisionLedger; do not edit. module Generated.ImportPlanningCollisions.CollisionLedger.EventStream   ( collisionLedgerCategory   , collisionLedgerCommandCategory
test/conformance-import-planning/Generated/ImportPlanningCollisions/CollisionLedger/Harness.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate CollisionLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate CollisionLedger; do not edit. module Generated.ImportPlanningCollisions.CollisionLedger.Harness (harnessAssertions) where  import Generated.ImportPlanningCollisions.CollisionLedger.Domain
test/conformance-import-planning/Generated/ImportPlanningCollisions/CollisionLedger/Projection.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate CollisionLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate CollisionLedger; do not edit. module Generated.ImportPlanningCollisions.CollisionLedger.Projection () where  -- No projection declarations are present; this module keeps the generated manifest inventory total.
test/conformance-import-planning/Generated/ImportPlanningCollisions/CollisionLedger/Transducer.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE BlockArguments #-} {-# LANGUAGE QualifiedDo #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate CollisionLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate CollisionLedger; do not edit. module Generated.ImportPlanningCollisions.CollisionLedger.Transducer   ( collisionLedgerTransducer   , collisionLedgerFoldFingerprint
test/conformance-import-planning/Generated/ImportPlanningCollisions/NominalProjections.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE TypeFamilies #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context import-planning-collisions nominal scalar projection facade; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context import-planning-collisions nominal scalar projection facade; do not edit. module Generated.ImportPlanningCollisions.NominalProjections where  import Data.Text (Text)
test/conformance-import-planning/Generated/ImportPlanningCollisions/ReplayAudit.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context import-planning-collisions replay-audit assembly; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context import-planning-collisions replay-audit assembly; do not edit. -- -- Deployment contract: --   * replay-neutral diff: no data audit is required;
test/conformance-import-planning/Generated/ImportPlanningCollisions/Structural/Shape/Details.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from mapped structural Details; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from mapped structural Details; do not edit. module Generated.ImportPlanningCollisions.Structural.Shape.Details (DetailsShape (..)) where  import Data.Text (Text)
test/conformance-import-planning/Generated/ImportPlanningCollisions/StructuralConformance.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context import-planning-collisions structural conformance; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context import-planning-collisions structural conformance; do not edit. module Generated.ImportPlanningCollisions.StructuralConformance   ( structuralConformanceAssertions   ) where
test/conformance-import-planning/Generated/ImportPlanningCollisions/StructuralProjections.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE TypeFamilies #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context import-planning-collisions mapped structural facade; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context import-planning-collisions mapped structural facade; do not edit. -- Equality witnesses are emitted for Text, Int, Bool, Natural, and UTCTime. -- Nominal ID and enum leaves carry exact canonical-text domains. -- Int, Natural, and UTCTime belong to Keiki's ordered subset.
test/conformance-intake-delegated/Generated/HospitalCapacity/Emergency/Contract.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from contract emergency; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from contract emergency; do not edit. module Generated.HospitalCapacity.Emergency.Contract   ( EmergencyPayload (..)   , IncidentTransferNeedDeclaredData (..)
test/conformance-intake-delegated/Generated/HospitalCapacity/IncidentInbox/Inbox.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from intake incidentInbox; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from intake incidentInbox; do not edit. module Generated.HospitalCapacity.IncidentInbox.Inbox   ( InboxFailure (..)   , IncidentInboxOutcome (..)
test/conformance-intake-full/Generated/HospitalCapacity/Emergency/Contract.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from contract emergency; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from contract emergency; do not edit. module Generated.HospitalCapacity.Emergency.Contract   ( EmergencyPayload (..)   , IncidentTransferNeedDeclaredData (..)
test/conformance-intake-full/Generated/HospitalCapacity/IncidentInbox/Inbox.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from intake incidentInbox; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from intake incidentInbox; do not edit. module Generated.HospitalCapacity.IncidentInbox.Inbox   ( InboxFailure (..)   , IncidentInboxOutcome (..)
test/conformance-intake-runtime/Generated/HospitalCapacity/Emergency/Contract.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from contract emergency; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from contract emergency; do not edit. module Generated.HospitalCapacity.Emergency.Contract   ( EmergencyPayload (..)   , IncidentTransferNeedDeclaredData (..)
test/conformance-intake-runtime/Generated/HospitalCapacity/IncidentInbox/Inbox.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from intake incidentInbox; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from intake incidentInbox; do not edit. module Generated.HospitalCapacity.IncidentInbox.Inbox   ( InboxFailure (..)   , IncidentInboxOutcome (..)
test/conformance-keyword-segments/Generated/KeywordSegments/JobType/Queue.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from workqueue job_type; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from workqueue job_type; do not edit. module Generated.KeywordSegments.JobType.Queue   ( JobTypePayload (..)   , encodeJobTypePayload
test/conformance-keyword-segments/Generated/KeywordSegments/JobType/QueueCodec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from workqueue job_type; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from workqueue job_type; do not edit. -- | Versioned job payload envelope: @{\"v\",\"t\",\"data\"}@. -- -- Deploy workers before producers when raising its schema version. Do not
test/conformance-keyword-segments/Generated/KeywordSegments/JobType/QueuePolicy.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from workqueue job_type; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from workqueue job_type; do not edit. module Generated.KeywordSegments.JobType.QueuePolicy   ( JobTypeOutcome (..)   , retryPolicy, jobOutcomeFor
test/conformance-keyword-segments/Generated/KeywordSegments/Nominals.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context keyword-segments generated nominal declarations; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context keyword-segments generated nominal declarations; do not edit. module Generated.KeywordSegments.Nominals   ( SubscriptionId   , parseSubscriptionId
test/conformance-keyword-segments/Generated/KeywordSegments/Nominals/Internal.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context keyword-segments generated nominal ID internals; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context keyword-segments generated nominal ID internals; do not edit. module Generated.KeywordSegments.Nominals.Internal   ( SubscriptionId   , parseSubscriptionId
test/conformance-keyword-segments/Generated/KeywordSegments/ProjectionCatalog.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from projection-catalog keyword-segments; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from projection-catalog keyword-segments; do not edit. {-# LANGUAGE OverloadedStrings #-} module Generated.KeywordSegments.ProjectionCatalog   ( projectionCatalog
test/conformance-keyword-segments/Generated/KeywordSegments/Structural/NominalLeaves.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context keyword-segments structural nominal leaves; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context keyword-segments structural nominal leaves; do not edit. module Generated.KeywordSegments.Structural.NominalLeaves where  import Data.Aeson (Value (..), withText)
test/conformance-keyword-segments/Generated/KeywordSegments/StructuralConformance.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context keyword-segments structural conformance; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context keyword-segments structural conformance; do not edit. module Generated.KeywordSegments.StructuralConformance   ( structuralConformanceAssertions   ) where
test/conformance-keyword-segments/Generated/KeywordSegments/ValidateCustomType/QueryContract.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from readmodel validate_custom_type; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from readmodel validate_custom_type; do not edit. module Generated.KeywordSegments.ValidateCustomType.QueryContract   ( ValidateCustomTypeQueryInput   , ValidateCustomTypeQueryResult
test/conformance-keyword-segments/Generated/KeywordSegments/ValidateCustomType/ReadModel.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from readmodel validate_custom_type; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from readmodel validate_custom_type; do not edit. module Generated.KeywordSegments.ValidateCustomType.ReadModel   ( validateCustomTypeReadModel   , validateCustomTypeQualifiedTable
test/conformance-keyword-segments/Generated/KeywordSegments/ValidateCustomType/ReadModelHarness.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from readmodel validate_custom_type; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from readmodel validate_custom_type; do not edit. module Generated.KeywordSegments.ValidateCustomType.ReadModelHarness (readModelFacts, readModelFactResults, runReadModelFacts, catalogFactsAgainst) where  import Generated.KeywordSegments.ValidateCustomType.ReadModel (validateCustomTypeReadModel)
test/conformance-keyword-segments/Generated/KeywordSegments/ValidateCustomType/ReadModelTable.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from readmodel validate_custom_type; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from readmodel validate_custom_type; do not edit. module Generated.KeywordSegments.ValidateCustomType.ReadModelTable (validateCustomTypeQualifiedTable) where  import Data.Text (Text)
test/conformance-mapped-queue/Generated/MappedQueue/MappedJobs/Queue.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from workqueue mapped_jobs; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from workqueue mapped_jobs; do not edit. module Generated.MappedQueue.MappedJobs.Queue   ( MappedJob (..)   , encodeMappedJob
test/conformance-mapped-queue/Generated/MappedQueue/MappedJobs/QueueCodec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from workqueue mapped_jobs; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from workqueue mapped_jobs; do not edit. -- | Versioned job payload envelope: @{\"v\",\"t\",\"data\"}@. -- -- Deploy workers before producers when raising its schema version. Do not
test/conformance-mapped-queue/Generated/MappedQueue/MappedJobs/QueuePolicy.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from workqueue mapped_jobs; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from workqueue mapped_jobs; do not edit. module Generated.MappedQueue.MappedJobs.QueuePolicy   ( MappedJobsOutcome (..)   , retryPolicy, jobOutcomeFor
test/conformance-mapped-queue/Generated/MappedQueue/Structural/Shape/JobMetadata.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from mapped structural JobMetadata; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from mapped structural JobMetadata; do not edit. module Generated.MappedQueue.Structural.Shape.JobMetadata (JobMetadataShape (..)) where  import Data.Text (Text)
test/conformance-mapped-queue/Generated/MappedQueue/Structural/Shape/JobPayload.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from mapped structural JobPayload; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from mapped structural JobPayload; do not edit. module Generated.MappedQueue.Structural.Shape.JobPayload (JobPayloadShape (..)) where  import Data.Text (Text)
test/conformance-mapped-queue/Generated/MappedQueue/StructuralConformance.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from context mapped-queue structural conformance; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from context mapped-queue structural conformance; do not edit. module Generated.MappedQueue.StructuralConformance   ( structuralConformanceAssertions   ) where
test/conformance-mapped-queue/Generated/MappedQueue/StructuralProjections.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE TypeFamilies #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from context mapped-queue mapped structural facade; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from context mapped-queue mapped structural facade; do not edit. -- Equality witnesses are emitted for Text, Int, Bool, Natural, and UTCTime. -- Nominal ID and enum leaves carry exact canonical-text domains. -- Int, Natural, and UTCTime belong to Keiki's ordered subset.
test/conformance-mapped-readmodel/Generated/MappedReadmodel/AccountSummary/QueryContract.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from readmodel account_summary; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from readmodel account_summary; do not edit. module Generated.MappedReadmodel.AccountSummary.QueryContract   ( AccountSummaryQueryInput   , AccountSummaryQueryResult
test/conformance-mapped-readmodel/Generated/MappedReadmodel/AccountSummary/ReadModel.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from readmodel account_summary; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from readmodel account_summary; do not edit. module Generated.MappedReadmodel.AccountSummary.ReadModel   ( accountSummaryReadModel   , accountSummaryQualifiedTable
test/conformance-mapped-readmodel/Generated/MappedReadmodel/AccountSummary/ReadModelHarness.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from readmodel account_summary; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from readmodel account_summary; do not edit. module Generated.MappedReadmodel.AccountSummary.ReadModelHarness (readModelFacts, readModelFactResults, runReadModelFacts, catalogFactsAgainst) where  import Generated.MappedReadmodel.AccountSummary.ReadModel (accountSummaryReadModel)
test/conformance-mapped-readmodel/Generated/MappedReadmodel/AccountSummary/ReadModelTable.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from readmodel account_summary; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from readmodel account_summary; do not edit. module Generated.MappedReadmodel.AccountSummary.ReadModelTable (accountSummaryQualifiedTable) where  import Data.Text (Text)
test/conformance-mapped-readmodel/Generated/MappedReadmodel/ProjectionCatalog.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from projection-catalog mapped-readmodel; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from projection-catalog mapped-readmodel; do not edit. {-# LANGUAGE OverloadedStrings #-} module Generated.MappedReadmodel.ProjectionCatalog   ( projectionCatalog
test/conformance-mapped-readmodel/Generated/MappedReadmodel/Structural/Shape/AccountLookup.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from mapped structural AccountLookup; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from mapped structural AccountLookup; do not edit. module Generated.MappedReadmodel.Structural.Shape.AccountLookup (AccountLookupShape (..)) where  import Data.Text (Text)
test/conformance-mapped-readmodel/Generated/MappedReadmodel/Structural/Shape/AccountProfile.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from mapped structural AccountProfile; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from mapped structural AccountProfile; do not edit. module Generated.MappedReadmodel.Structural.Shape.AccountProfile (AccountProfileShape (..)) where  import Data.Text (Text)
test/conformance-mapped-readmodel/Generated/MappedReadmodel/Structural/Shape/AccountSummary.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from mapped structural AccountSummary; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from mapped structural AccountSummary; do not edit. module Generated.MappedReadmodel.Structural.Shape.AccountSummary (AccountSummaryShape (..)) where  import Data.Text (Text)
test/conformance-mapped-readmodel/Generated/MappedReadmodel/Structural/Shape/TenantKey.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from mapped structural TenantKey; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from mapped structural TenantKey; do not edit. module Generated.MappedReadmodel.Structural.Shape.TenantKey (TenantKeyShape (..)) where  import Data.Text (Text)
test/conformance-mapped-readmodel/Generated/MappedReadmodel/Structural/Shape/UnusedFilter.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from mapped structural UnusedFilter; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from mapped structural UnusedFilter; do not edit. module Generated.MappedReadmodel.Structural.Shape.UnusedFilter (UnusedFilterShape (..)) where  import Data.Text (Text)
test/conformance-mapped-readmodel/Generated/MappedReadmodel/StructuralConformance.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from context mapped-readmodel structural conformance; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from context mapped-readmodel structural conformance; do not edit. module Generated.MappedReadmodel.StructuralConformance   ( structuralConformanceAssertions   ) where
test/conformance-mapped-readmodel/Generated/MappedReadmodel/StructuralProjections.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE TypeFamilies #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 5) from context mapped-readmodel mapped structural facade; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 5) from context mapped-readmodel mapped structural facade; do not edit. -- Equality witnesses are emitted for Text, Int, Bool, Natural, and UTCTime. -- Nominal ID and enum leaves carry exact canonical-text domains. -- Int, Natural, and UTCTime belong to Keiki's ordered subset.
test/conformance-mapped-register-construction/Generated/MappedRegisterConstruction/BehaviorSourceMap.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context mapped-register-construction behavior source map; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context mapped-register-construction behavior source map; do not edit. module Generated.MappedRegisterConstruction.BehaviorSourceMap   ( BehaviorSourceLocation (..)   , behaviorSourceLocation
test/conformance-mapped-register-construction/Generated/MappedRegisterConstruction/Lifecycle/BehaviorContract.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate Lifecycle; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate Lifecycle; do not edit. module Generated.MappedRegisterConstruction.Lifecycle.BehaviorContract   ( BehaviorKey (..)   , unBehaviorKey
test/conformance-mapped-register-construction/Generated/MappedRegisterConstruction/Lifecycle/Codec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate Lifecycle; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate Lifecycle; do not edit. module Generated.MappedRegisterConstruction.Lifecycle.Codec (     lifecycleCodec,     parseLifecycleEvent,
test/conformance-mapped-register-construction/Generated/MappedRegisterConstruction/Lifecycle/Domain.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE TemplateHaskell #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate Lifecycle; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate Lifecycle; do not edit. module Generated.MappedRegisterConstruction.Lifecycle.Domain where  import Data.Aeson (FromJSON, ToJSON)
test/conformance-mapped-register-construction/Generated/MappedRegisterConstruction/Lifecycle/EventStream.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate Lifecycle; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate Lifecycle; do not edit. module Generated.MappedRegisterConstruction.Lifecycle.EventStream   ( lifecycleCategory   , lifecycleCommandCategory
test/conformance-mapped-register-construction/Generated/MappedRegisterConstruction/Lifecycle/Harness.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate Lifecycle; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate Lifecycle; do not edit. module Generated.MappedRegisterConstruction.Lifecycle.Harness (harnessAssertions) where  import Generated.MappedRegisterConstruction.Lifecycle.Domain
test/conformance-mapped-register-construction/Generated/MappedRegisterConstruction/Lifecycle/Projection.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate Lifecycle; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate Lifecycle; do not edit. module Generated.MappedRegisterConstruction.Lifecycle.Projection () where  -- No projection declarations are present; this module keeps the generated manifest inventory total.
test/conformance-mapped-register-construction/Generated/MappedRegisterConstruction/Lifecycle/Transducer.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE BlockArguments #-} {-# LANGUAGE QualifiedDo #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate Lifecycle; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate Lifecycle; do not edit. module Generated.MappedRegisterConstruction.Lifecycle.Transducer   ( lifecycleTransducer   , lifecycleFoldFingerprint
test/conformance-mapped-register-construction/Generated/MappedRegisterConstruction/ReplayAudit.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context mapped-register-construction replay-audit assembly; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context mapped-register-construction replay-audit assembly; do not edit. -- -- Deployment contract: --   * replay-neutral diff: no data audit is required;
test/conformance-mapped-register-construction/Generated/MappedRegisterConstruction/StructuralConformance.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context mapped-register-construction structural conformance; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context mapped-register-construction structural conformance; do not edit. module Generated.MappedRegisterConstruction.StructuralConformance   ( structuralConformanceAssertions   ) where
+ test/conformance-mapped-structural-enum-equality/Conformance/MappedStructuralEnumEquality/Bindings.hs view
@@ -0,0 +1,29 @@+module Conformance.MappedStructuralEnumEquality.Bindings where++import Conformance.MappedStructuralEnumEquality.Domain qualified as Domain+import Data.List.NonEmpty (NonEmpty (..))+import Generated.MappedStructuralEnumEquality.Structural.Shape.RequiredScope qualified as Scope+import Generated.MappedStructuralEnumEquality.Structural.Shape.Request qualified as Request+import Keiro.Codec.Structural (FixtureCases (..), StructuralBinding (..))++requiredScopeBinding :: StructuralBinding Domain.RequiredScope Scope.RequiredScopeShape+requiredScopeBinding = StructuralBinding toShape fromShape+  where+    toShape Domain.PipelineScope = Scope.PipelineScope+    toShape Domain.DiagnosticScope = Scope.DiagnosticScope+    fromShape Scope.PipelineScope = Domain.PipelineScope+    fromShape Scope.DiagnosticScope = Domain.DiagnosticScope++requiredScopeFixtures :: FixtureCases Domain.RequiredScope+requiredScopeFixtures = FixtureCases (("pipeline", Domain.PipelineScope) :| [("diagnostic", Domain.DiagnosticScope)])++initialScope :: Domain.RequiredScope+initialScope = Domain.PipelineScope++requestBinding :: StructuralBinding Domain.Request Request.RequestShape+requestBinding = StructuralBinding+  (\(Domain.Request scope) -> Request.Request (bindingToShape requiredScopeBinding scope))+  (\(Request.Request scope) -> Domain.Request (bindingFromShape requiredScopeBinding scope))++requestFixtures :: FixtureCases Domain.Request+requestFixtures = FixtureCases (("pipeline", Domain.Request Domain.PipelineScope) :| [("diagnostic", Domain.Request Domain.DiagnosticScope)])
+ test/conformance-mapped-structural-enum-equality/Conformance/MappedStructuralEnumEquality/Domain.hs view
@@ -0,0 +1,29 @@+{-# LANGUAGE DeriveAnyClass #-}+module Conformance.MappedStructuralEnumEquality.Domain where++import Data.Aeson (ToJSON (..), FromJSON (..), Value (..), withText)+import Control.DeepSeq (NFData)+import GHC.Generics (Generic)+import Keiki.Shape (CanonicalTypeName (..))++data RequiredScope = PipelineScope | DiagnosticScope+  deriving stock (Eq, Show, Generic)+  deriving anyclass (NFData)++newtype Request = Request { requiredScope :: RequiredScope }+  deriving stock (Eq, Show, Generic)+  deriving anyclass (NFData, ToJSON, FromJSON)++instance ToJSON RequiredScope where+  toJSON PipelineScope = String "pipeline"+  toJSON DiagnosticScope = String "diagnostic"+instance FromJSON RequiredScope where+  parseJSON = withText "RequiredScope" $ \case+    "pipeline" -> pure PipelineScope+    "diagnostic" -> pure DiagnosticScope+    _ -> fail "unknown scope"++instance CanonicalTypeName RequiredScope where+  canonicalTypeName _ = "conformance.RequiredScope.v1"+instance CanonicalTypeName Request where+  canonicalTypeName _ = "conformance.Request.v1"
+ test/conformance-mapped-structural-enum-equality/Generated/MappedStructuralEnumEquality/BehaviorSourceMap.hs view
@@ -0,0 +1,42 @@+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context mapped-structural-enum-equality behavior source map; do not edit.+module Generated.MappedStructuralEnumEquality.BehaviorSourceMap+  ( BehaviorSourceLocation (..)+  , behaviorSourceLocation+  , renderBehaviorSourceLocation+  ) where++import Data.Text (Text)+import Data.Text qualified as T++data BehaviorSourceLocation = BehaviorSourceLocation+  { file :: !FilePath+  , line :: !Int+  , column :: !Int+  }+  deriving stock (Eq, Ord, Show)++behaviorSourceLocation :: Text -> Maybe BehaviorSourceLocation+behaviorSourceLocation key = case key of+  "behavior-v1-070772cfee379456" -> Just (BehaviorSourceLocation "keiro-dsl/test/fixtures/mapped-structural-enum-equality.keiro" 28 16)+  "behavior-v1-1cdfb1b7e2088a1a" -> Just (BehaviorSourceLocation "keiro-dsl/test/fixtures/mapped-structural-enum-equality.keiro" 28 16)+  "behavior-v1-2609ef2ca7eca507" -> Just (BehaviorSourceLocation "keiro-dsl/test/fixtures/mapped-structural-enum-equality.keiro" 28 16)+  "behavior-v1-373ac328a7acad82" -> Just (BehaviorSourceLocation "keiro-dsl/test/fixtures/mapped-structural-enum-equality.keiro" 28 16)+  "behavior-v1-3bd69ca93310ff6c" -> Just (BehaviorSourceLocation "keiro-dsl/test/fixtures/mapped-structural-enum-equality.keiro" 69 3)+  "behavior-v1-677f2db2c9c2a230" -> Just (BehaviorSourceLocation "keiro-dsl/test/fixtures/mapped-structural-enum-equality.keiro" 51 3)+  "behavior-v1-734985bac0c81864" -> Just (BehaviorSourceLocation "keiro-dsl/test/fixtures/mapped-structural-enum-equality.keiro" 28 16)+  "behavior-v1-aad7a9b25d6c4dff" -> Just (BehaviorSourceLocation "keiro-dsl/test/fixtures/mapped-structural-enum-equality.keiro" 75 3)+  "behavior-v1-ab778d2eeb34cd73" -> Just (BehaviorSourceLocation "keiro-dsl/test/fixtures/mapped-structural-enum-equality.keiro" 28 16)+  "behavior-v1-b44fa84cbf45f2dc" -> Just (BehaviorSourceLocation "keiro-dsl/test/fixtures/mapped-structural-enum-equality.keiro" 57 3)+  "behavior-v1-c8ec15a0f293621d" -> Just (BehaviorSourceLocation "keiro-dsl/test/fixtures/mapped-structural-enum-equality.keiro" 28 16)+  "behavior-v1-ee7fcaed44a911f9" -> Just (BehaviorSourceLocation "keiro-dsl/test/fixtures/mapped-structural-enum-equality.keiro" 63 3)+  "behavior-v1-f136428bd6a3061f" -> Just (BehaviorSourceLocation "keiro-dsl/test/fixtures/mapped-structural-enum-equality.keiro" 81 3)+  "behavior-v1-fbe937c9ea4bf8c9" -> Just (BehaviorSourceLocation "keiro-dsl/test/fixtures/mapped-structural-enum-equality.keiro" 45 3)+  _ -> Nothing++renderBehaviorSourceLocation :: Text -> Text+renderBehaviorSourceLocation key = case behaviorSourceLocation key of+  Just location -> T.pack location.file <> ":" <> tshow location.line <> ":" <> tshow location.column+  Nothing -> "<internal invariant: missing behavior source for " <> key <> ">"++tshow :: Show value => value -> Text+tshow = T.pack . show
+ test/conformance-mapped-structural-enum-equality/Generated/MappedStructuralEnumEquality/ReplayAudit.hs view
@@ -0,0 +1,23 @@+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context mapped-structural-enum-equality replay-audit assembly; do not edit.+--+-- Deployment contract:+--   * replay-neutral diff: no data audit is required;+--   * affected diff: run AuditTargeted with the emitted affected set+--     against a production copy under the candidate binary;+--   * one-time runtime cutover: run AuditFull;+--   * any non-zero audit exit blocks deployment.+module Generated.MappedStructuralEnumEquality.ReplayAudit (auditTargets) where++import Generated.MappedStructuralEnumEquality.ScopeGate.EventStream qualified as ScopeGate+import Keiro.ReplayAudit (AuditTarget (..), SomeAuditTarget (..), streamInCategory)+import Keiro.Stream qualified as Stream++auditTargets :: [SomeAuditTarget]+auditTargets =+  [ SomeAuditTarget+      AuditTarget+        { eventStream = ScopeGate.scopeGateEventStream+        , category = Stream.categoryText ScopeGate.scopeGateCategory+        , mkStream = streamInCategory (Stream.categoryText ScopeGate.scopeGateCategory)+        }+  ]
+ test/conformance-mapped-structural-enum-equality/Generated/MappedStructuralEnumEquality/ScopeGate/BehaviorContract.hs view
@@ -0,0 +1,512 @@+{-# LANGUAGE OverloadedLabels #-}+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate ScopeGate; do not edit.+module Generated.MappedStructuralEnumEquality.ScopeGate.BehaviorContract+  ( BehaviorKey (..)+  , unBehaviorKey+  , ObligationKind (..)+  , EvidenceLevel (..)+  , GuardCoverage (..)+  , BehaviorRequirement (..)+  , RejectionClass (..)+  , LiveExpectation (..)+  , BehaviorWitness (..)+  , BehaviorFailure (..)+  , BehaviorConformanceReport (..)+  , behaviorRequirements+  , behaviorCoverageReport+  , behaviorObligationReport+  , behaviorConformancePassed+  , behaviorConformancePassedWith+  , renderBehaviorConformanceText+  ) where++import Generated.MappedStructuralEnumEquality.ScopeGate.Codec (encodeScopeGateEvent, parseScopeGateEvent, scopeGateCodec)+import Generated.MappedStructuralEnumEquality.ScopeGate.Domain+import Generated.MappedStructuralEnumEquality.ScopeGate.Transducer (scopeGateTransducer)+import Generated.MappedStructuralEnumEquality.BehaviorSourceMap qualified as BehaviorSourceMap+import Data.Aeson (ToJSON (..), object, (.=))+import Data.List (sortOn)+import Data.List.NonEmpty (NonEmpty)+import Data.List.NonEmpty qualified as NonEmpty+import Data.Map.Strict qualified as Map+import Data.Text (Text)+import Data.Text qualified as T+import Keiki.Core qualified as K (EdgeMode (..), EdgeRef (..), RegFile, ReplayAttribution (..), ReplayEventSpan (..), ReplaySuccess (..), StepFailure (..), StepSuccess (..), applyEventsDetailedEither, stepDetailedEither, (!))+import Keiro.Codec qualified as Codec (Codec (eventType), EventType (..))++newtype BehaviorKey = BehaviorKey { unBehaviorKey :: Text }+  deriving stock (Eq, Ord, Show)++unBehaviorKey :: BehaviorKey -> Text+unBehaviorKey (BehaviorKey value) = value++data ObligationKind = LiveTransition | RequiredRejection | ReplayTransition+  deriving stock (Eq, Ord, Show)++data EvidenceLevel = GeneratedAuthoritative | HoleWitnessed | LegacyRuntimeWitness+  deriving stock (Eq, Ord, Show)++data GuardCoverage = GuardTotal | GuardPartial | GuardUnknown | GuardNotApplicable+  deriving stock (Eq, Ord, Show)++data BehaviorRequirement = BehaviorRequirement+  { key :: !BehaviorKey+  , kind :: !ObligationKind+  , evidence :: !EvidenceLevel+  , guardCoverage :: !GuardCoverage+  , source :: !ScopeGateVertex+  , commandName :: !Text+  , expectedEdge :: !(Maybe (K.EdgeRef ScopeGateVertex))+  , target :: !(Maybe ScopeGateVertex)+  , eventKinds :: ![Text]+  }+  deriving stock (Eq, Show)++data RejectionClass = RejectNoOutgoingEdges | RejectNoMatchingEdge+  deriving stock (Eq, Show)++data LiveExpectation+  = Emits (NonEmpty ScopeGateEvent)+  | Rejects RejectionClass+  | NoOp+  deriving stock (Eq, Show)++data BehaviorWitness+  = Pending BehaviorKey+  | LiveWitness+      { key :: BehaviorKey+      , history :: [ScopeGateEvent]+      , command :: ScopeGateCommand+      , expected :: LiveExpectation+      }+  | ReplayWitness+      { key :: BehaviorKey+      , historyPrefix :: [ScopeGateEvent]+      , observedChunk :: [ScopeGateEvent]+      }+  deriving stock (Eq, Show)++data BehaviorFailure = BehaviorFailure+  { key :: !BehaviorKey+  , subject :: !Text+  , code :: !Text+  , detail :: !Text+  }+  deriving stock (Eq, Show)++instance ToJSON BehaviorFailure where+  toJSON behaviorFailure = object+    [ "key" .= unBehaviorKey behaviorFailure.key+    , "subject" .= behaviorFailure.subject+    , "code" .= behaviorFailure.code+    , "detail" .= behaviorFailure.detail+    ]++data BehaviorConformanceReport = BehaviorConformanceReport+  { required :: ![BehaviorKey]+  , filled :: ![BehaviorKey]+  , pending :: ![BehaviorKey]+  , missing :: ![BehaviorKey]+  , duplicate :: ![BehaviorKey]+  , stale :: ![BehaviorKey]+  , failed :: ![BehaviorFailure]+  , verified :: ![BehaviorKey]+  , unverified :: ![BehaviorKey]+  }+  deriving stock (Eq, Show)++instance ToJSON BehaviorConformanceReport where+  toJSON report = object+    [ "schema" .= ("keiro/behavior-conformance/1" :: Text)+    , "required" .= keyTexts report.required+    , "filled" .= keyTexts report.filled+    , "pending" .= keyTexts report.pending+    , "missing" .= keyTexts report.missing+    , "duplicate" .= keyTexts report.duplicate+    , "stale" .= keyTexts report.stale+    , "failed" .= report.failed+    , "verified" .= keyTexts report.verified+    , "unverified" .= keyTexts report.unverified+    ]++behaviorRequirements :: [BehaviorRequirement]+behaviorRequirements =+  [ -- ScopeGateDone x EqRight: required rejection+    BehaviorRequirement+      { key = BehaviorKey "behavior-v1-070772cfee379456"+      , kind = RequiredRejection+      , evidence = GeneratedAuthoritative+      , guardCoverage = GuardNotApplicable+      , source = ScopeGateDone+      , commandName = "EqRight"+      , expectedEdge = Nothing+      , target = Nothing+      , eventKinds = []+      }+  , -- ScopeGateDone x NeLeft: required rejection+    BehaviorRequirement+      { key = BehaviorKey "behavior-v1-1cdfb1b7e2088a1a"+      , kind = RequiredRejection+      , evidence = GeneratedAuthoritative+      , guardCoverage = GuardNotApplicable+      , source = ScopeGateDone+      , commandName = "NeLeft"+      , expectedEdge = Nothing+      , target = Nothing+      , eventKinds = []+      }+  , -- ScopeGateDone x NeRight: required rejection+    BehaviorRequirement+      { key = BehaviorKey "behavior-v1-2609ef2ca7eca507"+      , kind = RequiredRejection+      , evidence = GeneratedAuthoritative+      , guardCoverage = GuardNotApplicable+      , source = ScopeGateDone+      , commandName = "NeRight"+      , expectedEdge = Nothing+      , target = Nothing+      , eventKinds = []+      }+  , -- ScopeGateDone x Differ: required rejection+    BehaviorRequirement+      { key = BehaviorKey "behavior-v1-373ac328a7acad82"+      , kind = RequiredRejection+      , evidence = GeneratedAuthoritative+      , guardCoverage = GuardNotApplicable+      , source = ScopeGateDone+      , commandName = "Differ"+      , expectedEdge = Nothing+      , target = Nothing+      , eventKinds = []+      }+  , -- ScopeGateReady x NeRight: live transition+    BehaviorRequirement+      { key = BehaviorKey "behavior-v1-3bd69ca93310ff6c"+      , kind = LiveTransition+      , evidence = GeneratedAuthoritative+      , guardCoverage = GuardUnknown+      , source = ScopeGateReady+      , commandName = "NeRight"+      , expectedEdge = (Just (K.EdgeRef ScopeGateReady 4))+      , target = Just ScopeGateDone+      , eventKinds = ["NeRightAccepted"]+      }+  , -- ScopeGateReady x Differ: live transition+    BehaviorRequirement+      { key = BehaviorKey "behavior-v1-677f2db2c9c2a230"+      , kind = LiveTransition+      , evidence = GeneratedAuthoritative+      , guardCoverage = GuardUnknown+      , source = ScopeGateReady+      , commandName = "Differ"+      , expectedEdge = (Just (K.EdgeRef ScopeGateReady 1))+      , target = Just ScopeGateDone+      , eventKinds = ["Differed"]+      }+  , -- ScopeGateDone x Self: required rejection+    BehaviorRequirement+      { key = BehaviorKey "behavior-v1-734985bac0c81864"+      , kind = RequiredRejection+      , evidence = GeneratedAuthoritative+      , guardCoverage = GuardNotApplicable+      , source = ScopeGateDone+      , commandName = "Self"+      , expectedEdge = Nothing+      , target = Nothing+      , eventKinds = []+      }+  , -- ScopeGateReady x NeLeft: live transition+    BehaviorRequirement+      { key = BehaviorKey "behavior-v1-aad7a9b25d6c4dff"+      , kind = LiveTransition+      , evidence = GeneratedAuthoritative+      , guardCoverage = GuardUnknown+      , source = ScopeGateReady+      , commandName = "NeLeft"+      , expectedEdge = (Just (K.EdgeRef ScopeGateReady 5))+      , target = Just ScopeGateDone+      , eventKinds = ["NeLeftAccepted"]+      }+  , -- ScopeGateDone x Match: required rejection+    BehaviorRequirement+      { key = BehaviorKey "behavior-v1-ab778d2eeb34cd73"+      , kind = RequiredRejection+      , evidence = GeneratedAuthoritative+      , guardCoverage = GuardNotApplicable+      , source = ScopeGateDone+      , commandName = "Match"+      , expectedEdge = Nothing+      , target = Nothing+      , eventKinds = []+      }+  , -- ScopeGateReady x EqRight: live transition+    BehaviorRequirement+      { key = BehaviorKey "behavior-v1-b44fa84cbf45f2dc"+      , kind = LiveTransition+      , evidence = GeneratedAuthoritative+      , guardCoverage = GuardUnknown+      , source = ScopeGateReady+      , commandName = "EqRight"+      , expectedEdge = (Just (K.EdgeRef ScopeGateReady 2))+      , target = Just ScopeGateDone+      , eventKinds = ["EqRightAccepted"]+      }+  , -- ScopeGateDone x EqLeft: required rejection+    BehaviorRequirement+      { key = BehaviorKey "behavior-v1-c8ec15a0f293621d"+      , kind = RequiredRejection+      , evidence = GeneratedAuthoritative+      , guardCoverage = GuardNotApplicable+      , source = ScopeGateDone+      , commandName = "EqLeft"+      , expectedEdge = Nothing+      , target = Nothing+      , eventKinds = []+      }+  , -- ScopeGateReady x EqLeft: live transition+    BehaviorRequirement+      { key = BehaviorKey "behavior-v1-ee7fcaed44a911f9"+      , kind = LiveTransition+      , evidence = GeneratedAuthoritative+      , guardCoverage = GuardUnknown+      , source = ScopeGateReady+      , commandName = "EqLeft"+      , expectedEdge = (Just (K.EdgeRef ScopeGateReady 3))+      , target = Just ScopeGateDone+      , eventKinds = ["EqLeftAccepted"]+      }+  , -- ScopeGateReady x Self: live transition+    BehaviorRequirement+      { key = BehaviorKey "behavior-v1-f136428bd6a3061f"+      , kind = LiveTransition+      , evidence = GeneratedAuthoritative+      , guardCoverage = GuardUnknown+      , source = ScopeGateReady+      , commandName = "Self"+      , expectedEdge = (Just (K.EdgeRef ScopeGateReady 6))+      , target = Just ScopeGateDone+      , eventKinds = ["SelfAccepted"]+      }+  , -- ScopeGateReady x Match: live transition+    BehaviorRequirement+      { key = BehaviorKey "behavior-v1-fbe937c9ea4bf8c9"+      , kind = LiveTransition+      , evidence = GeneratedAuthoritative+      , guardCoverage = GuardUnknown+      , source = ScopeGateReady+      , commandName = "Match"+      , expectedEdge = (Just (K.EdgeRef ScopeGateReady 0))+      , target = Just ScopeGateDone+      , eventKinds = ["Matched"]+      }+  ]++behaviorCoverageReport :: [BehaviorWitness] -> BehaviorConformanceReport+behaviorCoverageReport = coverageReportFor behaviorRequirements++-- | Execute one required obligation and the witnesses carrying its key.+-- Hole-owned initial harness probes use the consumer's history-backed evidence.+behaviorObligationReport :: BehaviorKey -> [BehaviorWitness] -> BehaviorConformanceReport+behaviorObligationReport key witnesses =+  coverageReportFor+    [requirement | requirement <- behaviorRequirements, requirement.key == key]+    [witness | witness <- witnesses, behaviorWitnessKey witness == key]++coverageReportFor :: [BehaviorRequirement] -> [BehaviorWitness] -> BehaviorConformanceReport+coverageReportFor requirements witnesses =+  BehaviorConformanceReport+    { required = sortedKeys (Map.keys requiredByKey)+    , filled = sortedKeys [key | (key, [witness]) <- Map.toList witnessGroups, Map.member key requiredByKey, not (isPending witness)]+    , pending = sortedKeys [key | (key, rows) <- Map.toList witnessGroups, Map.member key requiredByKey, any isPending rows]+    , missing = sortedKeys [key | key <- Map.keys requiredByKey, Map.notMember key witnessGroups]+    , duplicate = sortedKeys [key | (key, rows) <- Map.toList witnessGroups, length rows > 1]+    , stale = sortedKeys [key | key <- Map.keys witnessGroups, Map.notMember key requiredByKey]+    , failed = sortOn (unBehaviorKey . (.key)) failures+    , verified = sortedKeys [requirement.key | (requirement, Right ()) <- executions, proofStrength requirement]+    , unverified = sortedKeys [requirement.key | (requirement, Right ()) <- executions, not (proofStrength requirement)]+    }+ where+  requiredByKey = Map.fromList [(requirement.key, requirement) | requirement <- requirements]+  witnessGroups = Map.fromListWith (flip (<>)) [(behaviorWitnessKey witness, [witness]) | witness <- witnesses]+  executions =+    [ (requirement, runWitness requirement witness)+    | (key, [witness]) <- Map.toList witnessGroups+    , not (isPending witness)+    , Just requirement <- [Map.lookup key requiredByKey]+    ]+  failures = [behaviorFailure | (_, Left behaviorFailure) <- executions]++behaviorConformancePassed :: BehaviorConformanceReport -> Bool+behaviorConformancePassed = behaviorConformancePassedWith False++behaviorConformancePassedWith :: Bool -> BehaviorConformanceReport -> Bool+behaviorConformancePassedWith failOnUnverified report =+  null report.pending+    && null report.missing+    && null report.duplicate+    && null report.stale+    && null report.failed+    && (not failOnUnverified || null report.unverified)++renderBehaviorConformanceText :: BehaviorConformanceReport -> Text+renderBehaviorConformanceText report = T.unlines+  [ "behavior conformance: ScopeGate"+  , "schema: keiro/behavior-conformance/1"+  , countLine "required" report.required+  , countLine "filled" report.filled+  , countLine "pending" report.pending+  , countLine "missing" report.missing+  , countLine "duplicate" report.duplicate+  , countLine "stale" report.stale+  , "failed: " <> tshow (length report.failed)+  , countLine "verified" report.verified+  , countLine "unverified" report.unverified+  ] <> T.unlines ["FAIL " <> unBehaviorKey behaviorFailure.key <> " " <> behaviorFailure.subject <> " [" <> behaviorFailure.code <> "] " <> behaviorFailure.detail | behaviorFailure <- report.failed]++runWitness :: BehaviorRequirement -> BehaviorWitness -> Either BehaviorFailure ()+runWitness requirement witness = case witness of+  Pending _ -> failure requirement "pending" "witness is still Pending"+  LiveWitness _ history command expectation -> runLive requirement history command expectation+  ReplayWitness _ prefix chunk -> runReplay requirement prefix chunk++runLive :: BehaviorRequirement -> [ScopeGateEvent] -> ScopeGateCommand -> LiveExpectation -> Either BehaviorFailure ()+runLive requirement history command expectation = do+  settled <- settleHistory requirement "history" history+  ensure requirement (K.replaySuccessState settled == requirement.source) "history-wrong-source" "history does not settle at the required source vertex"+  ensure requirement (commandKind command == requirement.commandName) "command-mismatch" "witness command constructor does not match the required state/command cell"+  case requirement.kind of+    ReplayTransition -> failure requirement "witness-kind" "a replay-only requirement needs ReplayWitness"+    RequiredRejection -> runRejection requirement (K.replaySuccessState settled, K.replaySuccessRegs settled) command expectation+    LiveTransition -> runAcceptance requirement (K.replaySuccessState settled, K.replaySuccessRegs settled) command expectation++runRejection :: BehaviorRequirement -> (ScopeGateVertex, K.RegFile ScopeGateRegs) -> ScopeGateCommand -> LiveExpectation -> Either BehaviorFailure ()+runRejection requirement seed command expectation = case expectation of+  Emits _ -> failure requirement "expectation-kind" "a rejection requirement cannot expect emitted events"+  NoOp -> failure requirement "expectation-kind" "a rejection requirement cannot expect an accepted no-op"+  Rejects expectedClass -> case K.stepDetailedEither scopeGateTransducer seed command of+    Left K.NoOutgoingEdges {} -> ensure requirement (expectedClass == RejectNoOutgoingEdges) "rejection-class" "expected NoMatchingEdge but runtime returned NoOutgoingEdges"+    Left K.NoMatchingEdge {} -> ensure requirement (expectedClass == RejectNoMatchingEdge) "rejection-class" "expected NoOutgoingEdges but runtime returned NoMatchingEdge"+    Left K.AmbiguousEdges {} -> failure requirement "ambiguous-edges" "AmbiguousEdges can never satisfy a rejection witness"+    Right _ -> failure requirement "unexpected-acceptance" "runtime accepted a command required to reject"++runAcceptance :: BehaviorRequirement -> (ScopeGateVertex, K.RegFile ScopeGateRegs) -> ScopeGateCommand -> LiveExpectation -> Either BehaviorFailure ()+runAcceptance requirement seed command expectation = case expectation of+  Rejects _ -> failure requirement "expectation-kind" "a live-transition requirement needs Emits or NoOp"+  NoOp -> case K.stepDetailedEither scopeGateTransducer seed command of+    Left stepFailure -> failure requirement "unexpected-rejection" (tshow stepFailure)+    Right success -> do+      checkAcceptedEnvelope requirement success+      ensure requirement (null (K.stepSuccessOutputs success)) "noop-emitted" "NoOp emitted one or more events"+      ensure requirement (K.stepSuccessState success == fst seed) "noop-vertex-change" "NoOp changed the control vertex"+      ensure requirement (regsEqual (K.stepSuccessRegs success) (snd seed)) "noop-register-change" "NoOp changed one or more registers"+  Emits expectedEvents -> case K.stepDetailedEither scopeGateTransducer seed command of+    Left stepFailure -> failure requirement "unexpected-rejection" (tshow stepFailure)+    Right success -> do+      checkAcceptedEnvelope requirement success+      let expected = NonEmpty.toList expectedEvents+          actual = K.stepSuccessOutputs success+      ensure requirement (actual == expected) "event-value-mismatch" ("runtime event values differ from the exact witness expectation; actual=" <> tshow actual <> " expected=" <> tshow expected)+      ensure requirement (map eventKind actual == requirement.eventKinds) "event-envelope-mismatch" ("runtime event kinds differ from the declared ordered envelope; actual=" <> tshow (map eventKind actual) <> " expected=" <> tshow requirement.eventKinds)+      decoded <- either (failure requirement "emitted-codec-decode") Right (decodeEvents actual)+      replayed <- case K.applyEventsDetailedEither scopeGateTransducer seed decoded of+        Left replayFailure -> failure requirement "emitted-replay-failed" (tshow replayFailure)+        Right replaySuccess -> Right replaySuccess+      ensure requirement (K.replaySuccessState replayed == K.stepSuccessState success) "forward-replay-vertex" "decoded emissions replay to a different vertex"+      ensure requirement (regsEqual (K.replaySuccessRegs replayed) (K.stepSuccessRegs success)) "forward-replay-registers" "decoded emissions replay to different registers"+      checkSingleAttribution requirement K.Live (length decoded) (K.replaySuccessTrace replayed)++checkAcceptedEnvelope :: BehaviorRequirement -> K.StepSuccess ScopeGateRegs ScopeGateVertex ScopeGateEvent -> Either BehaviorFailure ()+checkAcceptedEnvelope requirement success = do+  ensure requirement (K.stepSuccessMode success == K.Live) "forward-mode" ("forward execution selected a non-live edge; actual=" <> tshow (K.stepSuccessMode success) <> " expected=" <> tshow K.Live)+  ensure requirement (Just (K.stepSuccessEdge success) == requirement.expectedEdge) "edge-attribution" ("runtime selected a different guarded sibling; actual=" <> tshow (Just (K.stepSuccessEdge success)) <> " expected=" <> tshow requirement.expectedEdge)+  ensure requirement (Just (K.stepSuccessState success) == requirement.target) "target-mismatch" ("runtime reached a different target vertex; actual=" <> tshow (Just (K.stepSuccessState success)) <> " expected=" <> tshow requirement.target)++runReplay :: BehaviorRequirement -> [ScopeGateEvent] -> [ScopeGateEvent] -> Either BehaviorFailure ()+runReplay requirement prefix chunk = case requirement.kind of+  ReplayTransition -> do+    settled <- settleHistory requirement "history-prefix" prefix+    ensure requirement (K.replaySuccessState settled == requirement.source) "history-wrong-source" "history prefix does not settle at the replay edge source"+    ensure requirement (not (null chunk)) "empty-replay-chunk" "a replay-only edge has no observable empty chunk"+    decoded <- either (failure requirement "replay-chunk-codec-decode") Right (decodeEvents chunk)+    replayed <- case K.applyEventsDetailedEither scopeGateTransducer (K.replaySuccessState settled, K.replaySuccessRegs settled) decoded of+      Left replayFailure -> failure requirement "replay-chunk-failed" (tshow replayFailure)+      Right replaySuccess -> Right replaySuccess+    ensure requirement (Just (K.replaySuccessState replayed) == requirement.target) "target-mismatch" ("replay chunk reached a different target vertex; actual=" <> tshow (Just (K.replaySuccessState replayed)) <> " expected=" <> tshow requirement.target)+    checkSingleAttribution requirement K.ReplayOnly (length decoded) (K.replaySuccessTrace replayed)+  _ -> failure requirement "witness-kind" "ReplayWitness supplied for a non-replay requirement"++checkSingleAttribution :: BehaviorRequirement -> K.EdgeMode -> Int -> [K.ReplayAttribution ScopeGateVertex] -> Either BehaviorFailure ()+checkSingleAttribution requirement expectedMode eventCount trace = case trace of+  [attribution] -> do+    ensure requirement (Just (K.replayAttributionEdge attribution) == requirement.expectedEdge) "replay-edge-attribution" ("replay selected a different edge; actual=" <> tshow (Just (K.replayAttributionEdge attribution)) <> " expected=" <> tshow requirement.expectedEdge)+    ensure requirement (K.replayAttributionMode attribution == expectedMode) "replay-mode-attribution" ("replay selected the wrong live/replay-only phase; actual=" <> tshow (K.replayAttributionMode attribution) <> " expected=" <> tshow expectedMode)+    ensure requirement (K.replayAttributionSource attribution == requirement.source) "replay-source-attribution" ("replay attribution starts at the wrong source; actual=" <> tshow (K.replayAttributionSource attribution) <> " expected=" <> tshow requirement.source)+    ensure requirement (Just (K.replayAttributionTarget attribution) == requirement.target) "replay-target-attribution" ("replay attribution ends at the wrong target; actual=" <> tshow (Just (K.replayAttributionTarget attribution)) <> " expected=" <> tshow requirement.target)+    ensure requirement (K.replayAttributionSpan attribution == K.ReplayEventSpan 0 eventCount) "replay-span-attribution" ("replay attribution did not consume the exact chunk; actual=" <> tshow (K.replayAttributionSpan attribution) <> " expected=" <> tshow (K.ReplayEventSpan 0 eventCount))+  _ -> failure requirement "replay-trace-cardinality" "expected exactly one completed-edge attribution"++settleHistory :: BehaviorRequirement -> Text -> [ScopeGateEvent] -> Either BehaviorFailure (K.ReplaySuccess ScopeGateRegs ScopeGateVertex)+settleHistory requirement label history = do+  decoded <- either (failure requirement (label <> "-codec-decode")) Right (decodeEvents history)+  case K.applyEventsDetailedEither scopeGateTransducer (ScopeGateReady, initialScopeGateRegs) decoded of+    Left replayFailure -> failure requirement (label <> "-replay-failed") (tshow replayFailure)+    Right replaySuccess -> Right replaySuccess++decodeEvents :: [ScopeGateEvent] -> Either Text [ScopeGateEvent]+decodeEvents = traverse (\event -> parseScopeGateEvent (Codec.eventType scopeGateCodec event) (encodeScopeGateEvent event))++commandKind :: ScopeGateCommand -> Text+commandKind command = case command of+  Match _ -> "Match"+  Differ _ -> "Differ"+  EqRight _ -> "EqRight"+  EqLeft _ -> "EqLeft"+  NeRight _ -> "NeRight"+  NeLeft _ -> "NeLeft"+  Self _ -> "Self"++eventKind :: ScopeGateEvent -> Text+eventKind event = case Codec.eventType scopeGateCodec event of Codec.EventType tag -> tag++regsEqual :: K.RegFile ScopeGateRegs -> K.RegFile ScopeGateRegs -> Bool+regsEqual left right = (left K.! #requiredScope) == (right K.! #requiredScope)++proofStrength :: BehaviorRequirement -> Bool+proofStrength requirement =+  requirement.evidence == GeneratedAuthoritative+    && requirement.guardCoverage `elem` [GuardTotal, GuardNotApplicable]++behaviorWitnessKey :: BehaviorWitness -> BehaviorKey+behaviorWitnessKey witness = case witness of+  Pending key -> key+  LiveWitness { key = key } -> key+  ReplayWitness { key = key } -> key++isPending :: BehaviorWitness -> Bool+isPending Pending {} = True+isPending _ = False++ensure :: BehaviorRequirement -> Bool -> Text -> Text -> Either BehaviorFailure ()+ensure requirement condition code detail = if condition then Right () else failure requirement code detail+failure :: BehaviorRequirement -> Text -> Text -> Either BehaviorFailure failed+failure requirement code detail =+  Left+    ( BehaviorFailure+        requirement.key+        (tshow requirement.source <> " x " <> requirement.commandName <> ": " <> kindPhrase <> " (" <> BehaviorSourceMap.renderBehaviorSourceLocation (unBehaviorKey requirement.key) <> ")")+        code+        detail+    )+ where+  kindPhrase = case requirement.kind of+    LiveTransition -> "live transition"+    RequiredRejection -> "required rejection"+    ReplayTransition -> "replay-only transition"+sortedKeys :: [BehaviorKey] -> [BehaviorKey]+sortedKeys = sortOn unBehaviorKey+keyTexts :: [BehaviorKey] -> [Text]+keyTexts = map unBehaviorKey+countLine :: Text -> [BehaviorKey] -> Text+countLine label values = label <> ": " <> tshow (length values)+tshow :: Show value => value -> Text+tshow = T.pack . show
+ test/conformance-mapped-structural-enum-equality/Generated/MappedStructuralEnumEquality/ScopeGate/Codec.hs view
@@ -0,0 +1,203 @@+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate ScopeGate; do not edit.+module Generated.MappedStructuralEnumEquality.ScopeGate.Codec (+    scopeGateCodec,+    parseScopeGateEvent,+    encodeScopeGateEvent,+    encodeRequestMapped,+    decodeRequestMapped,+    encodeRequiredScopeMapped,+    decodeRequiredScopeMapped,+) where++import Generated.MappedStructuralEnumEquality.ScopeGate.Domain+import Control.Monad (unless)+import Data.Aeson (Value (..), object, withObject, withText, (.=))+import Data.Aeson.Key qualified as Key+import Data.Aeson.KeyMap qualified as KeyMap+import Data.Aeson.Types (Parser, explicitParseField, parseEither)+import Data.List.NonEmpty (NonEmpty (..))+import Data.List.NonEmpty qualified as NonEmpty+import Data.Text (Text)+import qualified Data.Text as T+import Keiro.Codec.Structural (bindingFromShape, bindingToShape)+import Keiro.Codec (Codec (..), EventType (..))+++import Conformance.MappedStructuralEnumEquality.Bindings qualified as Bindings+import Conformance.MappedStructuralEnumEquality.Domain (Request, RequiredScope)+import Generated.MappedStructuralEnumEquality.Structural.Shape.Request qualified as ShapeRequest+import Generated.MappedStructuralEnumEquality.Structural.Shape.RequiredScope qualified as ShapeRequiredScope++++encodeRequestMapped :: Request -> Value+encodeRequestMapped = encodeRequestShape . bindingToShape Bindings.requestBinding++parseRequestMapped :: Value -> Parser Request+parseRequestMapped value = bindingFromShape Bindings.requestBinding <$> parseRequestShape value++decodeRequestMapped :: Value -> Either Text Request+decodeRequestMapped = mapLeftText . parseEither parseRequestMapped++encodeRequestShape :: ShapeRequest.RequestShape -> Value+encodeRequestShape shape =+  object+      [ "requiredScope" .= encodeRequiredScopeShape (shape.requiredScope)+      ]++parseRequestShape :: Value -> Parser ShapeRequest.RequestShape+parseRequestShape = withObject "RequestShape" $ \objectValue -> do+  rejectUnknownFields "Request" ["requiredScope"] objectValue+  ShapeRequest.Request+    <$> explicitParseField (parseRequiredScopeShape) objectValue "requiredScope"++encodeRequiredScopeMapped :: RequiredScope -> Value+encodeRequiredScopeMapped = encodeRequiredScopeShape . bindingToShape Bindings.requiredScopeBinding++parseRequiredScopeMapped :: Value -> Parser RequiredScope+parseRequiredScopeMapped value = bindingFromShape Bindings.requiredScopeBinding <$> parseRequiredScopeShape value++decodeRequiredScopeMapped :: Value -> Either Text RequiredScope+decodeRequiredScopeMapped = mapLeftText . parseEither parseRequiredScopeMapped++encodeRequiredScopeShape :: ShapeRequiredScope.RequiredScopeShape -> Value+encodeRequiredScopeShape = \case+  ShapeRequiredScope.PipelineScope -> String "pipeline"+  ShapeRequiredScope.DiagnosticScope -> String "diagnostic"++parseRequiredScopeShape :: Value -> Parser ShapeRequiredScope.RequiredScopeShape+parseRequiredScopeShape = withText "RequiredScopeShape" $ \tag -> case tag of+  "pipeline" -> pure ShapeRequiredScope.PipelineScope+  "diagnostic" -> pure ShapeRequiredScope.DiagnosticScope+  unknownTag -> fail ("unknown RequiredScope wire value " <> show unknownTag <> "; expected one of: pipeline, diagnostic")++scopeGateEventTypes :: NonEmpty EventType+scopeGateEventTypes = EventType "Matched" :| [EventType "Differed", EventType "EqRightAccepted", EventType "EqLeftAccepted", EventType "NeRightAccepted", EventType "NeLeftAccepted", EventType "SelfAccepted"]++scopeGateCodec :: Codec ScopeGateEvent+scopeGateCodec =+  Codec+    { eventTypes = scopeGateEventTypes+    , eventType = \case+        Matched{} -> EventType "Matched"+        Differed{} -> EventType "Differed"+        EqRightAccepted{} -> EventType "EqRightAccepted"+        EqLeftAccepted{} -> EventType "EqLeftAccepted"+        NeRightAccepted{} -> EventType "NeRightAccepted"+        NeLeftAccepted{} -> EventType "NeLeftAccepted"+        SelfAccepted{} -> EventType "SelfAccepted"+    , schemaVersion = 1+    , encode = encodeScopeGateEvent+    , decode = parseScopeGateEvent+    , upcasters = []+    }++encodeScopeGateEvent :: ScopeGateEvent -> Value+encodeScopeGateEvent = \case+  Matched payload ->+    object+      [ "kind" .= ("Matched" :: Text)+      , "requiredScope" .= encodeRequiredScopeMapped payload.requiredScope+      , "request" .= encodeRequestMapped payload.request+      ]+  Differed payload ->+    object+      [ "kind" .= ("Differed" :: Text)+      , "requiredScope" .= encodeRequiredScopeMapped payload.requiredScope+      , "request" .= encodeRequestMapped payload.request+      ]+  EqRightAccepted payload ->+    object+      [ "kind" .= ("EqRightAccepted" :: Text)+      , "requiredScope" .= encodeRequiredScopeMapped payload.requiredScope+      , "request" .= encodeRequestMapped payload.request+      ]+  EqLeftAccepted payload ->+    object+      [ "kind" .= ("EqLeftAccepted" :: Text)+      , "requiredScope" .= encodeRequiredScopeMapped payload.requiredScope+      , "request" .= encodeRequestMapped payload.request+      ]+  NeRightAccepted payload ->+    object+      [ "kind" .= ("NeRightAccepted" :: Text)+      , "requiredScope" .= encodeRequiredScopeMapped payload.requiredScope+      , "request" .= encodeRequestMapped payload.request+      ]+  NeLeftAccepted payload ->+    object+      [ "kind" .= ("NeLeftAccepted" :: Text)+      , "requiredScope" .= encodeRequiredScopeMapped payload.requiredScope+      , "request" .= encodeRequestMapped payload.request+      ]+  SelfAccepted payload ->+    object+      [ "kind" .= ("SelfAccepted" :: Text)+      , "requiredScope" .= encodeRequiredScopeMapped payload.requiredScope+      , "request" .= encodeRequestMapped payload.request+      ]++parseScopeGateEvent :: EventType -> Value -> Either Text ScopeGateEvent+parseScopeGateEvent (EventType tag) = mapLeftText . parseEither (withObject "ScopeGateEvent" go)+  where+    go o = do+      case tag of+        "Matched" ->+          Matched+            <$> ( MatchedData+                    <$> explicitParseField parseRequiredScopeMapped o "requiredScope"+                    <*> explicitParseField parseRequestMapped o "request"+                )+        "Differed" ->+          Differed+            <$> ( DifferedData+                    <$> explicitParseField parseRequiredScopeMapped o "requiredScope"+                    <*> explicitParseField parseRequestMapped o "request"+                )+        "EqRightAccepted" ->+          EqRightAccepted+            <$> ( EqRightAcceptedData+                    <$> explicitParseField parseRequiredScopeMapped o "requiredScope"+                    <*> explicitParseField parseRequestMapped o "request"+                )+        "EqLeftAccepted" ->+          EqLeftAccepted+            <$> ( EqLeftAcceptedData+                    <$> explicitParseField parseRequiredScopeMapped o "requiredScope"+                    <*> explicitParseField parseRequestMapped o "request"+                )+        "NeRightAccepted" ->+          NeRightAccepted+            <$> ( NeRightAcceptedData+                    <$> explicitParseField parseRequiredScopeMapped o "requiredScope"+                    <*> explicitParseField parseRequestMapped o "request"+                )+        "NeLeftAccepted" ->+          NeLeftAccepted+            <$> ( NeLeftAcceptedData+                    <$> explicitParseField parseRequiredScopeMapped o "requiredScope"+                    <*> explicitParseField parseRequestMapped o "request"+                )+        "SelfAccepted" ->+          SelfAccepted+            <$> ( SelfAcceptedData+                    <$> explicitParseField parseRequiredScopeMapped o "requiredScope"+                    <*> explicitParseField parseRequestMapped o "request"+                )+        _ -> fail ("unknown event type " <> show tag <> "; expected one of: " <> renderExpectedEventTypes scopeGateEventTypes)++mapLeftText :: Either String b -> Either Text b+mapLeftText = either (Left . T.pack) Right++renderExpectedEventTypes :: NonEmpty EventType -> String+renderExpectedEventTypes =+  T.unpack+    . T.intercalate ", "+    . map (\(EventType eventTypeName) -> eventTypeName)+    . NonEmpty.toList++rejectUnknownFields :: String -> [Text] -> KeyMap.KeyMap Value -> Parser ()+rejectUnknownFields label allowed objectValue =+  unless (null extras) (fail (label <> " contains unknown fields: " <> show extras))+  where+    extras = filter (`notElem` allowed) (map Key.toText (KeyMap.keys objectValue))
+ test/conformance-mapped-structural-enum-equality/Generated/MappedStructuralEnumEquality/ScopeGate/Domain.hs view
@@ -0,0 +1,135 @@+{-# LANGUAGE DeriveAnyClass #-}+{-# LANGUAGE TemplateHaskell #-}+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate ScopeGate; do not edit.+module Generated.MappedStructuralEnumEquality.ScopeGate.Domain where++import Data.Aeson (FromJSON, ToJSON)+import Data.Proxy (Proxy (..))+import GHC.Generics (Generic)+import Keiki.Core (RegFile (..))+import Keiki.Shape (CanonicalStateShape, CanonicalTypeName)+import Conformance.MappedStructuralEnumEquality.Bindings qualified as Bindings+import Conformance.MappedStructuralEnumEquality.Domain (Request, RequiredScope)+import Keiki.Generics.TH (deriveAggregateCtorsAll, deriveWireCtorsAll)++data ScopeGateVertex = ScopeGateReady | ScopeGateDone+  deriving stock (Generic, Eq, Ord, Show, Enum, Bounded)+  deriving anyclass (ToJSON, FromJSON)+instance CanonicalStateShape ScopeGateVertex+instance CanonicalTypeName ScopeGateVertex++data MatchData = MatchData+  { requiredScope :: !RequiredScope+  , request :: !Request+  }+  deriving stock (Generic, Eq, Show)++data DifferData = DifferData+  { requiredScope :: !RequiredScope+  , request :: !Request+  }+  deriving stock (Generic, Eq, Show)++data EqRightData = EqRightData+  { requiredScope :: !RequiredScope+  , request :: !Request+  }+  deriving stock (Generic, Eq, Show)++data EqLeftData = EqLeftData+  { requiredScope :: !RequiredScope+  , request :: !Request+  }+  deriving stock (Generic, Eq, Show)++data NeRightData = NeRightData+  { requiredScope :: !RequiredScope+  , request :: !Request+  }+  deriving stock (Generic, Eq, Show)++data NeLeftData = NeLeftData+  { requiredScope :: !RequiredScope+  , request :: !Request+  }+  deriving stock (Generic, Eq, Show)++data SelfData = SelfData+  { requiredScope :: !RequiredScope+  , request :: !Request+  }+  deriving stock (Generic, Eq, Show)++data ScopeGateCommand = Match !MatchData+  | Differ !DifferData+  | EqRight !EqRightData+  | EqLeft !EqLeftData+  | NeRight !NeRightData+  | NeLeft !NeLeftData+  | Self !SelfData+  deriving stock (Generic, Eq, Show)++data MatchedData = MatchedData+  { requiredScope :: !RequiredScope+  , request :: !Request+  }+  deriving stock (Generic, Eq, Show)++data DifferedData = DifferedData+  { requiredScope :: !RequiredScope+  , request :: !Request+  }+  deriving stock (Generic, Eq, Show)++data EqRightAcceptedData = EqRightAcceptedData+  { requiredScope :: !RequiredScope+  , request :: !Request+  }+  deriving stock (Generic, Eq, Show)++data EqLeftAcceptedData = EqLeftAcceptedData+  { requiredScope :: !RequiredScope+  , request :: !Request+  }+  deriving stock (Generic, Eq, Show)++data NeRightAcceptedData = NeRightAcceptedData+  { requiredScope :: !RequiredScope+  , request :: !Request+  }+  deriving stock (Generic, Eq, Show)++data NeLeftAcceptedData = NeLeftAcceptedData+  { requiredScope :: !RequiredScope+  , request :: !Request+  }+  deriving stock (Generic, Eq, Show)++data SelfAcceptedData = SelfAcceptedData+  { requiredScope :: !RequiredScope+  , request :: !Request+  }+  deriving stock (Generic, Eq, Show)++data ScopeGateEvent = Matched !MatchedData+  | Differed !DifferedData+  | EqRightAccepted !EqRightAcceptedData+  | EqLeftAccepted !EqLeftAcceptedData+  | NeRightAccepted !NeRightAcceptedData+  | NeLeftAccepted !NeLeftAcceptedData+  | SelfAccepted !SelfAcceptedData+  deriving stock (Generic, Eq, Show)++type ScopeGateRegs =+  '[ '("requiredScope", RequiredScope)+   ]++initialScopeGateRegs :: RegFile ScopeGateRegs+initialScopeGateRegs =+  RCons (Proxy @"requiredScope") Bindings.initialScope RNil++$(deriveAggregateCtorsAll ''ScopeGateCommand ''ScopeGateRegs)++++$(deriveWireCtorsAll ''ScopeGateEvent)
+ test/conformance-mapped-structural-enum-equality/Generated/MappedStructuralEnumEquality/ScopeGate/EventStream.hs view
@@ -0,0 +1,63 @@+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate ScopeGate; do not edit.+module Generated.MappedStructuralEnumEquality.ScopeGate.EventStream+  ( scopeGateCategory+  , scopeGateCommandCategory+  , scopeGateEventStream+  , scopeGateEventStreamDef+  , ScopeGateEventStream+  , ScopeGateEventStreamDef+  , scopeGateSnapshotFixture+  ) where++import Generated.MappedStructuralEnumEquality.ScopeGate.Domain+import Generated.MappedStructuralEnumEquality.ScopeGate.Codec (scopeGateCodec)+import Generated.MappedStructuralEnumEquality.ScopeGate.Transducer (scopeGateFoldFingerprint, scopeGateTransducer)+import Keiki.Core (HsPred)+import Keiro.EventStream (EventStream (..), SnapshotPolicy (..))+import Keiro.EventStream.Validate (ValidatedEventStream, mkEventStreamOrThrow)+import Data.Text (Text)+import Keiro.Snapshot.Codec (defaultStateCodec, withFoldFingerprint)+import Keiro.Stream qualified as Stream++-- The validated aggregate stream category (hole-kind 5: referenced, never retyped).+-- Entity streams are '<category>-<id>' via Keiro.Stream.entityStream.+-- categoryUnsafe is safe here because this generated literal passed the DSL category proof.+scopeGateCategory :: Stream.StreamCategory ScopeGateEventStreamDef+scopeGateCategory = Stream.categoryUnsafe "scopeGate"++-- The same category text, typed for command envelopes such as PMCommand.+scopeGateCommandCategory :: Stream.StreamCategory ScopeGateCommand+scopeGateCommandCategory = Stream.categoryUnsafe "scopeGate"++type ScopeGateEventStreamDef =+  EventStream (HsPred ScopeGateRegs ScopeGateCommand) ScopeGateRegs ScopeGateVertex ScopeGateCommand ScopeGateEvent++type ScopeGateEventStream =+  ValidatedEventStream (HsPred ScopeGateRegs ScopeGateCommand) ScopeGateRegs ScopeGateVertex ScopeGateCommand ScopeGateEvent++scopeGateEventStreamDef :: ScopeGateEventStreamDef+scopeGateEventStreamDef =+  EventStream+    { transducer = scopeGateTransducer,+      initialState = ScopeGateReady,+      initialRegisters = initialScopeGateRegs,+      eventCodec = scopeGateCodec,+      resolveStreamName = Stream.streamName,+      snapshotPolicy = Every 1,+      -- The snapshot discriminator composes: the spec's state-codec version (bump it+      -- in the spec's `state-codec version=` clause), keiki's register and+      -- control-state shape hashes, and this fold fingerprint derived from the+      -- spec's transition surface (guards, writes, emits, states, register+      -- initials, referenced rules). Spec-visible fold changes invalidate old+      -- snapshots automatically. Version-2 Hole-owned transitions additionally+      -- compose their explicit hand-owned FoldVersion tokens here; bump the+      -- corresponding token whenever that Hole behavior changes.+      stateCodec = Just (withFoldFingerprint scopeGateFoldFingerprint (defaultStateCodec 1))+    }++scopeGateSnapshotFixture :: (Int, Text)+scopeGateSnapshotFixture = (1, "scope-gate-v1")++scopeGateEventStream :: ScopeGateEventStream+scopeGateEventStream =+  mkEventStreamOrThrow "ScopeGate" scopeGateEventStreamDef
+ test/conformance-mapped-structural-enum-equality/Generated/MappedStructuralEnumEquality/ScopeGate/Harness.hs view
@@ -0,0 +1,364 @@+{-# LANGUAGE OverloadedLabels #-}+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate ScopeGate; do not edit.+module Generated.MappedStructuralEnumEquality.ScopeGate.Harness (harnessAssertions) where++import Generated.MappedStructuralEnumEquality.ScopeGate.Domain+import Generated.MappedStructuralEnumEquality.ScopeGate.Codec (encodeScopeGateEvent, parseScopeGateEvent, scopeGateCodec, encodeRequestMapped, decodeRequestMapped, encodeRequiredScopeMapped, decodeRequiredScopeMapped)+import Generated.MappedStructuralEnumEquality.ScopeGate.Transducer (scopeGateTransducer)+import Keiki.Core (applyEventsEither, defaultValidationOptions, step, validateTransducer, fieldWitnessGet, (!))+import Keiro.Codec (eventType)+import Data.Aeson qualified as Aeson+import Data.Aeson.Key qualified as AesonKey+import Data.Aeson.KeyMap qualified as AesonKeyMap+import Data.Either (isLeft)+import Data.List.NonEmpty qualified as NonEmpty+import Data.Text qualified as T+import Keiro.Codec.Structural (FixtureCases (..))+import Generated.MappedStructuralEnumEquality.StructuralProjections qualified as StructuralProjections+import Conformance.MappedStructuralEnumEquality.Bindings qualified as Bindings++-- | (label, passed). A driver runs these and exits non-zero on any False,+-- naming the failing assertion. Filling a hole wrongly turns a specific+-- entry False; the scaffold cannot.+harnessAssertions :: [(String, Bool)]+harnessAssertions =+  [ ("validateTransducer is empty", null (validateTransducer defaultValidationOptions scopeGateTransducer))+  -- clock-free: spec samples no wall clock (verified at scaffold time)+  , ("golden round-trip: Matched", roundTrips sampleEventMatched)+  , ("golden round-trip: Differed", roundTrips sampleEventDiffered)+  , ("golden round-trip: EqRightAccepted", roundTrips sampleEventEqRightAccepted)+  , ("golden round-trip: EqLeftAccepted", roundTrips sampleEventEqLeftAccepted)+  , ("golden round-trip: NeRightAccepted", roundTrips sampleEventNeRightAccepted)+  , ("golden round-trip: NeLeftAccepted", roundTrips sampleEventNeLeftAccepted)+  , ("golden round-trip: SelfAccepted", roundTrips sampleEventSelfAccepted)+  , ("accepts Match from ScopeGateReady", acceptMatch)+  , ("accepts Differ from ScopeGateReady", acceptDiffer)+  , ("accepts EqRight from ScopeGateReady", acceptEqRight)+  , ("accepts EqLeft from ScopeGateReady", acceptEqLeft)+  , ("accepts NeRight from ScopeGateReady", acceptNeRight)+  , ("accepts NeLeft from ScopeGateReady", acceptNeLeft)+  , ("accepts Self from ScopeGateReady", acceptSelf)+  ]+  ++ mappedConformanceAssertions+  ++ forwardReplayMatch+  ++ forwardReplayDiffer+  ++ forwardReplayEqRight+  ++ forwardReplayEqLeft+  ++ forwardReplayNeRight+  ++ forwardReplayNeLeft+  ++ forwardReplaySelf++roundTrips :: ScopeGateEvent -> Bool+roundTrips e = parseScopeGateEvent (eventType scopeGateCodec e) (encodeScopeGateEvent e) == Right e++sampleEventMatched :: ScopeGateEvent+sampleEventMatched = Matched (MatchedData (snd (NonEmpty.head (fixtureCases Bindings.requiredScopeFixtures))) (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))++sampleEventDiffered :: ScopeGateEvent+sampleEventDiffered = Differed (DifferedData (snd (NonEmpty.head (fixtureCases Bindings.requiredScopeFixtures))) (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))++sampleEventEqRightAccepted :: ScopeGateEvent+sampleEventEqRightAccepted = EqRightAccepted (EqRightAcceptedData (snd (NonEmpty.head (fixtureCases Bindings.requiredScopeFixtures))) (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))++sampleEventEqLeftAccepted :: ScopeGateEvent+sampleEventEqLeftAccepted = EqLeftAccepted (EqLeftAcceptedData (snd (NonEmpty.head (fixtureCases Bindings.requiredScopeFixtures))) (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))++sampleEventNeRightAccepted :: ScopeGateEvent+sampleEventNeRightAccepted = NeRightAccepted (NeRightAcceptedData (snd (NonEmpty.head (fixtureCases Bindings.requiredScopeFixtures))) (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))++sampleEventNeLeftAccepted :: ScopeGateEvent+sampleEventNeLeftAccepted = NeLeftAccepted (NeLeftAcceptedData (snd (NonEmpty.head (fixtureCases Bindings.requiredScopeFixtures))) (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))++sampleEventSelfAccepted :: ScopeGateEvent+sampleEventSelfAccepted = SelfAccepted (SelfAcceptedData (snd (NonEmpty.head (fixtureCases Bindings.requiredScopeFixtures))) (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))++acceptMatch :: Bool+acceptMatch =+  case step scopeGateTransducer (ScopeGateReady, initialScopeGateRegs) (Match (MatchData Bindings.initialScope (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))) of+    Just (v, _, _) -> v == ScopeGateDone+    Nothing -> False++acceptDiffer :: Bool+acceptDiffer =+  case step scopeGateTransducer (ScopeGateReady, initialScopeGateRegs) (Differ (DifferData (case [value | (_, value) <- NonEmpty.toList (fixtureCases Bindings.requiredScopeFixtures), value /= Bindings.initialScope] of value : _ -> value; [] -> error "enum guard requires a matching supplied fixture") (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))) of+    Just (v, _, _) -> v == ScopeGateDone+    Nothing -> False++acceptEqRight :: Bool+acceptEqRight =+  case step scopeGateTransducer (ScopeGateReady, initialScopeGateRegs) (EqRight (EqRightData (case [value | (_, value) <- NonEmpty.toList (fixtureCases Bindings.requiredScopeFixtures), fieldWitnessGet StructuralProjections.requiredScopeWitness value == "pipeline"] of value : _ -> value; [] -> error "enum guard requires a matching supplied fixture") (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))) of+    Just (v, _, _) -> v == ScopeGateDone+    Nothing -> False++acceptEqLeft :: Bool+acceptEqLeft =+  case step scopeGateTransducer (ScopeGateReady, initialScopeGateRegs) (EqLeft (EqLeftData (case [value | (_, value) <- NonEmpty.toList (fixtureCases Bindings.requiredScopeFixtures), fieldWitnessGet StructuralProjections.requiredScopeWitness value == "pipeline"] of value : _ -> value; [] -> error "enum guard requires a matching supplied fixture") (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))) of+    Just (v, _, _) -> v == ScopeGateDone+    Nothing -> False++acceptNeRight :: Bool+acceptNeRight =+  case step scopeGateTransducer (ScopeGateReady, initialScopeGateRegs) (NeRight (NeRightData (case [value | (_, value) <- NonEmpty.toList (fixtureCases Bindings.requiredScopeFixtures), fieldWitnessGet StructuralProjections.requiredScopeWitness value /= "diagnostic"] of value : _ -> value; [] -> error "enum guard requires a matching supplied fixture") (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))) of+    Just (v, _, _) -> v == ScopeGateDone+    Nothing -> False++acceptNeLeft :: Bool+acceptNeLeft =+  case step scopeGateTransducer (ScopeGateReady, initialScopeGateRegs) (NeLeft (NeLeftData (case [value | (_, value) <- NonEmpty.toList (fixtureCases Bindings.requiredScopeFixtures), fieldWitnessGet StructuralProjections.requiredScopeWitness value /= "diagnostic"] of value : _ -> value; [] -> error "enum guard requires a matching supplied fixture") (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))) of+    Just (v, _, _) -> v == ScopeGateDone+    Nothing -> False++acceptSelf :: Bool+acceptSelf =+  case step scopeGateTransducer (ScopeGateReady, initialScopeGateRegs) (Self (SelfData (snd (NonEmpty.head (fixtureCases Bindings.requiredScopeFixtures))) (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))) of+    Just (v, _, _) -> v == ScopeGateDone+    Nothing -> False++-- forward/replay equality (plan 147): cross the persisted codec boundary,+-- replay the emitted chain, and compare the final vertex and every register.+forwardReplayMatch :: [(String, Bool)]+forwardReplayMatch =+  case step scopeGateTransducer (ScopeGateReady, initialScopeGateRegs) (Match (MatchData Bindings.initialScope (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))) of+    Nothing -> [(prefix <> "forward step accepted", False)]+    Just (forwardVertex, forwardRegs, emitted) ->+      case mapM (\event -> parseScopeGateEvent (eventType scopeGateCodec event) (encodeScopeGateEvent event)) emitted of+        Left _ -> [(prefix <> "emitted chain decodes", False)]+        Right decodedEvents ->+          case applyEventsEither scopeGateTransducer (ScopeGateReady, initialScopeGateRegs) decodedEvents of+            Left _ -> [(prefix <> "replay succeeds", False)]+            Right (replayVertex, replayRegs) ->+              [ (prefix <> "final vertex", replayVertex == forwardVertex)+              , (prefix <> "register requiredScope", (replayRegs ! #requiredScope) == (forwardRegs ! #requiredScope))+              ]+  where+    prefix = "forward/replay equality: Match from ScopeGateReady -- "++-- forward/replay equality (plan 147): cross the persisted codec boundary,+-- replay the emitted chain, and compare the final vertex and every register.+forwardReplayDiffer :: [(String, Bool)]+forwardReplayDiffer =+  case step scopeGateTransducer (ScopeGateReady, initialScopeGateRegs) (Differ (DifferData (case [value | (_, value) <- NonEmpty.toList (fixtureCases Bindings.requiredScopeFixtures), value /= Bindings.initialScope] of value : _ -> value; [] -> error "enum guard requires a matching supplied fixture") (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))) of+    Nothing -> [(prefix <> "forward step accepted", False)]+    Just (forwardVertex, forwardRegs, emitted) ->+      case mapM (\event -> parseScopeGateEvent (eventType scopeGateCodec event) (encodeScopeGateEvent event)) emitted of+        Left _ -> [(prefix <> "emitted chain decodes", False)]+        Right decodedEvents ->+          case applyEventsEither scopeGateTransducer (ScopeGateReady, initialScopeGateRegs) decodedEvents of+            Left _ -> [(prefix <> "replay succeeds", False)]+            Right (replayVertex, replayRegs) ->+              [ (prefix <> "final vertex", replayVertex == forwardVertex)+              , (prefix <> "register requiredScope", (replayRegs ! #requiredScope) == (forwardRegs ! #requiredScope))+              ]+  where+    prefix = "forward/replay equality: Differ from ScopeGateReady -- "++-- forward/replay equality (plan 147): cross the persisted codec boundary,+-- replay the emitted chain, and compare the final vertex and every register.+forwardReplayEqRight :: [(String, Bool)]+forwardReplayEqRight =+  case step scopeGateTransducer (ScopeGateReady, initialScopeGateRegs) (EqRight (EqRightData (case [value | (_, value) <- NonEmpty.toList (fixtureCases Bindings.requiredScopeFixtures), fieldWitnessGet StructuralProjections.requiredScopeWitness value == "pipeline"] of value : _ -> value; [] -> error "enum guard requires a matching supplied fixture") (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))) of+    Nothing -> [(prefix <> "forward step accepted", False)]+    Just (forwardVertex, forwardRegs, emitted) ->+      case mapM (\event -> parseScopeGateEvent (eventType scopeGateCodec event) (encodeScopeGateEvent event)) emitted of+        Left _ -> [(prefix <> "emitted chain decodes", False)]+        Right decodedEvents ->+          case applyEventsEither scopeGateTransducer (ScopeGateReady, initialScopeGateRegs) decodedEvents of+            Left _ -> [(prefix <> "replay succeeds", False)]+            Right (replayVertex, replayRegs) ->+              [ (prefix <> "final vertex", replayVertex == forwardVertex)+              , (prefix <> "register requiredScope", (replayRegs ! #requiredScope) == (forwardRegs ! #requiredScope))+              ]+  where+    prefix = "forward/replay equality: EqRight from ScopeGateReady -- "++-- forward/replay equality (plan 147): cross the persisted codec boundary,+-- replay the emitted chain, and compare the final vertex and every register.+forwardReplayEqLeft :: [(String, Bool)]+forwardReplayEqLeft =+  case step scopeGateTransducer (ScopeGateReady, initialScopeGateRegs) (EqLeft (EqLeftData (case [value | (_, value) <- NonEmpty.toList (fixtureCases Bindings.requiredScopeFixtures), fieldWitnessGet StructuralProjections.requiredScopeWitness value == "pipeline"] of value : _ -> value; [] -> error "enum guard requires a matching supplied fixture") (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))) of+    Nothing -> [(prefix <> "forward step accepted", False)]+    Just (forwardVertex, forwardRegs, emitted) ->+      case mapM (\event -> parseScopeGateEvent (eventType scopeGateCodec event) (encodeScopeGateEvent event)) emitted of+        Left _ -> [(prefix <> "emitted chain decodes", False)]+        Right decodedEvents ->+          case applyEventsEither scopeGateTransducer (ScopeGateReady, initialScopeGateRegs) decodedEvents of+            Left _ -> [(prefix <> "replay succeeds", False)]+            Right (replayVertex, replayRegs) ->+              [ (prefix <> "final vertex", replayVertex == forwardVertex)+              , (prefix <> "register requiredScope", (replayRegs ! #requiredScope) == (forwardRegs ! #requiredScope))+              ]+  where+    prefix = "forward/replay equality: EqLeft from ScopeGateReady -- "++-- forward/replay equality (plan 147): cross the persisted codec boundary,+-- replay the emitted chain, and compare the final vertex and every register.+forwardReplayNeRight :: [(String, Bool)]+forwardReplayNeRight =+  case step scopeGateTransducer (ScopeGateReady, initialScopeGateRegs) (NeRight (NeRightData (case [value | (_, value) <- NonEmpty.toList (fixtureCases Bindings.requiredScopeFixtures), fieldWitnessGet StructuralProjections.requiredScopeWitness value /= "diagnostic"] of value : _ -> value; [] -> error "enum guard requires a matching supplied fixture") (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))) of+    Nothing -> [(prefix <> "forward step accepted", False)]+    Just (forwardVertex, forwardRegs, emitted) ->+      case mapM (\event -> parseScopeGateEvent (eventType scopeGateCodec event) (encodeScopeGateEvent event)) emitted of+        Left _ -> [(prefix <> "emitted chain decodes", False)]+        Right decodedEvents ->+          case applyEventsEither scopeGateTransducer (ScopeGateReady, initialScopeGateRegs) decodedEvents of+            Left _ -> [(prefix <> "replay succeeds", False)]+            Right (replayVertex, replayRegs) ->+              [ (prefix <> "final vertex", replayVertex == forwardVertex)+              , (prefix <> "register requiredScope", (replayRegs ! #requiredScope) == (forwardRegs ! #requiredScope))+              ]+  where+    prefix = "forward/replay equality: NeRight from ScopeGateReady -- "++-- forward/replay equality (plan 147): cross the persisted codec boundary,+-- replay the emitted chain, and compare the final vertex and every register.+forwardReplayNeLeft :: [(String, Bool)]+forwardReplayNeLeft =+  case step scopeGateTransducer (ScopeGateReady, initialScopeGateRegs) (NeLeft (NeLeftData (case [value | (_, value) <- NonEmpty.toList (fixtureCases Bindings.requiredScopeFixtures), fieldWitnessGet StructuralProjections.requiredScopeWitness value /= "diagnostic"] of value : _ -> value; [] -> error "enum guard requires a matching supplied fixture") (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))) of+    Nothing -> [(prefix <> "forward step accepted", False)]+    Just (forwardVertex, forwardRegs, emitted) ->+      case mapM (\event -> parseScopeGateEvent (eventType scopeGateCodec event) (encodeScopeGateEvent event)) emitted of+        Left _ -> [(prefix <> "emitted chain decodes", False)]+        Right decodedEvents ->+          case applyEventsEither scopeGateTransducer (ScopeGateReady, initialScopeGateRegs) decodedEvents of+            Left _ -> [(prefix <> "replay succeeds", False)]+            Right (replayVertex, replayRegs) ->+              [ (prefix <> "final vertex", replayVertex == forwardVertex)+              , (prefix <> "register requiredScope", (replayRegs ! #requiredScope) == (forwardRegs ! #requiredScope))+              ]+  where+    prefix = "forward/replay equality: NeLeft from ScopeGateReady -- "++-- forward/replay equality (plan 147): cross the persisted codec boundary,+-- replay the emitted chain, and compare the final vertex and every register.+forwardReplaySelf :: [(String, Bool)]+forwardReplaySelf =+  case step scopeGateTransducer (ScopeGateReady, initialScopeGateRegs) (Self (SelfData (snd (NonEmpty.head (fixtureCases Bindings.requiredScopeFixtures))) (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))) of+    Nothing -> [(prefix <> "forward step accepted", False)]+    Just (forwardVertex, forwardRegs, emitted) ->+      case mapM (\event -> parseScopeGateEvent (eventType scopeGateCodec event) (encodeScopeGateEvent event)) emitted of+        Left _ -> [(prefix <> "emitted chain decodes", False)]+        Right decodedEvents ->+          case applyEventsEither scopeGateTransducer (ScopeGateReady, initialScopeGateRegs) decodedEvents of+            Left _ -> [(prefix <> "replay succeeds", False)]+            Right (replayVertex, replayRegs) ->+              [ (prefix <> "final vertex", replayVertex == forwardVertex)+              , (prefix <> "register requiredScope", (replayRegs ! #requiredScope) == (forwardRegs ! #requiredScope))+              ]+  where+    prefix = "forward/replay equality: Self from ScopeGateReady -- "++mappedConformanceAssertions :: [(String, Bool)]+mappedConformanceAssertions =+  concat+    [ matchedRequiredScopeAssertions+    , matchedRequestAssertions+    , differedRequiredScopeAssertions+    , differedRequestAssertions+    , eqRightAcceptedRequiredScopeAssertions+    , eqRightAcceptedRequestAssertions+    , eqLeftAcceptedRequiredScopeAssertions+    , eqLeftAcceptedRequestAssertions+    , neRightAcceptedRequiredScopeAssertions+    , neRightAcceptedRequestAssertions+    , neLeftAcceptedRequiredScopeAssertions+    , neLeftAcceptedRequestAssertions+    , selfAcceptedRequiredScopeAssertions+    , selfAcceptedRequestAssertions+    , structuralWirePolicyAssertions+    ]++matchedRequiredScopeAssertions :: [(String, Bool)]+matchedRequiredScopeAssertions =+  [ ("mapped codec round-trip: Matched/requiredScope/" <> T.unpack label, roundTrips (Matched (MatchedData mappedValue (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))))+  | (label, mappedValue) <- NonEmpty.toList (fixtureCases Bindings.requiredScopeFixtures)+  ]++matchedRequestAssertions :: [(String, Bool)]+matchedRequestAssertions =+  [ ("mapped codec round-trip: Matched/request/" <> T.unpack label, roundTrips (Matched (MatchedData (snd (NonEmpty.head (fixtureCases Bindings.requiredScopeFixtures))) mappedValue)))+  | (label, mappedValue) <- NonEmpty.toList (fixtureCases Bindings.requestFixtures)+  ]++differedRequiredScopeAssertions :: [(String, Bool)]+differedRequiredScopeAssertions =+  [ ("mapped codec round-trip: Differed/requiredScope/" <> T.unpack label, roundTrips (Differed (DifferedData mappedValue (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))))+  | (label, mappedValue) <- NonEmpty.toList (fixtureCases Bindings.requiredScopeFixtures)+  ]++differedRequestAssertions :: [(String, Bool)]+differedRequestAssertions =+  [ ("mapped codec round-trip: Differed/request/" <> T.unpack label, roundTrips (Differed (DifferedData (snd (NonEmpty.head (fixtureCases Bindings.requiredScopeFixtures))) mappedValue)))+  | (label, mappedValue) <- NonEmpty.toList (fixtureCases Bindings.requestFixtures)+  ]++eqRightAcceptedRequiredScopeAssertions :: [(String, Bool)]+eqRightAcceptedRequiredScopeAssertions =+  [ ("mapped codec round-trip: EqRightAccepted/requiredScope/" <> T.unpack label, roundTrips (EqRightAccepted (EqRightAcceptedData mappedValue (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))))+  | (label, mappedValue) <- NonEmpty.toList (fixtureCases Bindings.requiredScopeFixtures)+  ]++eqRightAcceptedRequestAssertions :: [(String, Bool)]+eqRightAcceptedRequestAssertions =+  [ ("mapped codec round-trip: EqRightAccepted/request/" <> T.unpack label, roundTrips (EqRightAccepted (EqRightAcceptedData (snd (NonEmpty.head (fixtureCases Bindings.requiredScopeFixtures))) mappedValue)))+  | (label, mappedValue) <- NonEmpty.toList (fixtureCases Bindings.requestFixtures)+  ]++eqLeftAcceptedRequiredScopeAssertions :: [(String, Bool)]+eqLeftAcceptedRequiredScopeAssertions =+  [ ("mapped codec round-trip: EqLeftAccepted/requiredScope/" <> T.unpack label, roundTrips (EqLeftAccepted (EqLeftAcceptedData mappedValue (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))))+  | (label, mappedValue) <- NonEmpty.toList (fixtureCases Bindings.requiredScopeFixtures)+  ]++eqLeftAcceptedRequestAssertions :: [(String, Bool)]+eqLeftAcceptedRequestAssertions =+  [ ("mapped codec round-trip: EqLeftAccepted/request/" <> T.unpack label, roundTrips (EqLeftAccepted (EqLeftAcceptedData (snd (NonEmpty.head (fixtureCases Bindings.requiredScopeFixtures))) mappedValue)))+  | (label, mappedValue) <- NonEmpty.toList (fixtureCases Bindings.requestFixtures)+  ]++neRightAcceptedRequiredScopeAssertions :: [(String, Bool)]+neRightAcceptedRequiredScopeAssertions =+  [ ("mapped codec round-trip: NeRightAccepted/requiredScope/" <> T.unpack label, roundTrips (NeRightAccepted (NeRightAcceptedData mappedValue (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))))+  | (label, mappedValue) <- NonEmpty.toList (fixtureCases Bindings.requiredScopeFixtures)+  ]++neRightAcceptedRequestAssertions :: [(String, Bool)]+neRightAcceptedRequestAssertions =+  [ ("mapped codec round-trip: NeRightAccepted/request/" <> T.unpack label, roundTrips (NeRightAccepted (NeRightAcceptedData (snd (NonEmpty.head (fixtureCases Bindings.requiredScopeFixtures))) mappedValue)))+  | (label, mappedValue) <- NonEmpty.toList (fixtureCases Bindings.requestFixtures)+  ]++neLeftAcceptedRequiredScopeAssertions :: [(String, Bool)]+neLeftAcceptedRequiredScopeAssertions =+  [ ("mapped codec round-trip: NeLeftAccepted/requiredScope/" <> T.unpack label, roundTrips (NeLeftAccepted (NeLeftAcceptedData mappedValue (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))))+  | (label, mappedValue) <- NonEmpty.toList (fixtureCases Bindings.requiredScopeFixtures)+  ]++neLeftAcceptedRequestAssertions :: [(String, Bool)]+neLeftAcceptedRequestAssertions =+  [ ("mapped codec round-trip: NeLeftAccepted/request/" <> T.unpack label, roundTrips (NeLeftAccepted (NeLeftAcceptedData (snd (NonEmpty.head (fixtureCases Bindings.requiredScopeFixtures))) mappedValue)))+  | (label, mappedValue) <- NonEmpty.toList (fixtureCases Bindings.requestFixtures)+  ]++selfAcceptedRequiredScopeAssertions :: [(String, Bool)]+selfAcceptedRequiredScopeAssertions =+  [ ("mapped codec round-trip: SelfAccepted/requiredScope/" <> T.unpack label, roundTrips (SelfAccepted (SelfAcceptedData mappedValue (snd (NonEmpty.head (fixtureCases Bindings.requestFixtures))))))+  | (label, mappedValue) <- NonEmpty.toList (fixtureCases Bindings.requiredScopeFixtures)+  ]++selfAcceptedRequestAssertions :: [(String, Bool)]+selfAcceptedRequestAssertions =+  [ ("mapped codec round-trip: SelfAccepted/request/" <> T.unpack label, roundTrips (SelfAccepted (SelfAcceptedData (snd (NonEmpty.head (fixtureCases Bindings.requiredScopeFixtures))) mappedValue)))+  | (label, mappedValue) <- NonEmpty.toList (fixtureCases Bindings.requestFixtures)+  ]++structuralWirePolicyAssertions :: [(String, Bool)]+structuralWirePolicyAssertions =+  [ ("wire policy unknown fields: conformance.Request.v1", all (\(_, value) -> isLeft (decodeRequestMapped (insertObjectField "__keiro_unknown" (Aeson.Bool True) (encodeRequestMapped value)))) (NonEmpty.toList (fixtureCases Bindings.requestFixtures)))+  , ("wire enum arm: conformance.RequiredScope.v1/pipeline", any (\(_, value) -> encodeRequiredScopeMapped value == Aeson.String "pipeline" && decodeRequiredScopeMapped (Aeson.String "pipeline") == Right value) (NonEmpty.toList (fixtureCases Bindings.requiredScopeFixtures)))+  , ("wire enum arm: conformance.RequiredScope.v1/diagnostic", any (\(_, value) -> encodeRequiredScopeMapped value == Aeson.String "diagnostic" && decodeRequiredScopeMapped (Aeson.String "diagnostic") == Right value) (NonEmpty.toList (fixtureCases Bindings.requiredScopeFixtures)))+  , ("wire enum unknown tag: conformance.RequiredScope.v1", isLeft (decodeRequiredScopeMapped (Aeson.String "__keiro_unknown")))+  ]++insertObjectField :: T.Text -> Aeson.Value -> Aeson.Value -> Aeson.Value+insertObjectField key inserted (Aeson.Object objectValue) = Aeson.Object (AesonKeyMap.insert (AesonKey.fromText key) inserted objectValue)+insertObjectField _ _ value = value
+ test/conformance-mapped-structural-enum-equality/Generated/MappedStructuralEnumEquality/ScopeGate/Projection.hs view
@@ -0,0 +1,4 @@+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate ScopeGate; do not edit.+module Generated.MappedStructuralEnumEquality.ScopeGate.Projection () where++-- No projection declarations are present; this module keeps the generated manifest inventory total.
+ test/conformance-mapped-structural-enum-equality/Generated/MappedStructuralEnumEquality/ScopeGate/Transducer.hs view
@@ -0,0 +1,134 @@+{-# LANGUAGE BlockArguments #-}+{-# LANGUAGE OverloadedLabels #-}+{-# LANGUAGE QualifiedDo #-}+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate ScopeGate; do not edit.+module Generated.MappedStructuralEnumEquality.ScopeGate.Transducer+  ( scopeGateTransducer+  , scopeGateFoldFingerprint+  , BehaviorOwnership (..)+  , scopeGatePredicateVerifications+  ) where++import Generated.MappedStructuralEnumEquality.ScopeGate.Domain+import Data.Text (Text)+import Generated.MappedStructuralEnumEquality.StructuralProjections qualified as StructuralProjections+import Conformance.MappedStructuralEnumEquality.Domain (RequiredScope)+import Keiki.Builder qualified as B+import Keiki.Core (HsPred, SymTransducer, (.==), (./=), (.&&), (.||))+import Keiki.Core qualified as K+import Keiki.Symbolic qualified as S+import Keiki.Builder ((=:))+import Keiki.Generics (RegFieldsOf)++scopeGateTransducer+  :: SymTransducer+       (HsPred ScopeGateRegs ScopeGateCommand)+       ScopeGateRegs+       ScopeGateVertex+       ScopeGateCommand+       ScopeGateEvent+scopeGateTransducer =+  B.buildTransducer ScopeGateReady initialScopeGateRegs isTerminal do+    B.from ScopeGateReady do+      B.onCmd inCtorMatch $ \d -> B.do+        let commandRequiredScope = K.inpProj StructuralProjections.requiredScopeWitness inCtorMatch (#requiredScope :: K.Index (RegFieldsOf MatchData) RequiredScope)+            registerRequiredScope = K.regProj StructuralProjections.requiredScopeWitness (#requiredScope :: K.Index ScopeGateRegs RequiredScope)+        B.requireGuard $+          commandRequiredScope .== registerRequiredScope+        B.slot @"requiredScope" =: d.requiredScope+        B.emit wireMatched (MatchedTermFields+          { requiredScope = d.requiredScope+          , request = d.request+          })+        B.goto ScopeGateDone+      B.onCmd inCtorDiffer $ \d -> B.do+        let commandRequiredScope = K.inpProj StructuralProjections.requiredScopeWitness inCtorDiffer (#requiredScope :: K.Index (RegFieldsOf DifferData) RequiredScope)+            registerRequiredScope = K.regProj StructuralProjections.requiredScopeWitness (#requiredScope :: K.Index ScopeGateRegs RequiredScope)+        B.requireGuard $+          commandRequiredScope ./= registerRequiredScope+        B.slot @"requiredScope" =: d.requiredScope+        B.emit wireDiffered (DifferedTermFields+          { requiredScope = d.requiredScope+          , request = d.request+          })+        B.goto ScopeGateDone+      B.onCmd inCtorEqRight $ \d -> B.do+        let commandRequiredScope = K.inpProj StructuralProjections.requiredScopeWitness inCtorEqRight (#requiredScope :: K.Index (RegFieldsOf EqRightData) RequiredScope)+        B.requireGuard $+          commandRequiredScope .== K.lit ("pipeline" :: Text)+        B.slot @"requiredScope" =: d.requiredScope+        B.emit wireEqRightAccepted (EqRightAcceptedTermFields+          { requiredScope = d.requiredScope+          , request = d.request+          })+        B.goto ScopeGateDone+      B.onCmd inCtorEqLeft $ \d -> B.do+        let commandRequiredScope = K.inpProj StructuralProjections.requiredScopeWitness inCtorEqLeft (#requiredScope :: K.Index (RegFieldsOf EqLeftData) RequiredScope)+        B.requireGuard $+          K.lit ("pipeline" :: Text) .== commandRequiredScope+        B.slot @"requiredScope" =: d.requiredScope+        B.emit wireEqLeftAccepted (EqLeftAcceptedTermFields+          { requiredScope = d.requiredScope+          , request = d.request+          })+        B.goto ScopeGateDone+      B.onCmd inCtorNeRight $ \d -> B.do+        let commandRequiredScope = K.inpProj StructuralProjections.requiredScopeWitness inCtorNeRight (#requiredScope :: K.Index (RegFieldsOf NeRightData) RequiredScope)+        B.requireGuard $+          commandRequiredScope ./= K.lit ("diagnostic" :: Text)+        B.slot @"requiredScope" =: d.requiredScope+        B.emit wireNeRightAccepted (NeRightAcceptedTermFields+          { requiredScope = d.requiredScope+          , request = d.request+          })+        B.goto ScopeGateDone+      B.onCmd inCtorNeLeft $ \d -> B.do+        let commandRequiredScope = K.inpProj StructuralProjections.requiredScopeWitness inCtorNeLeft (#requiredScope :: K.Index (RegFieldsOf NeLeftData) RequiredScope)+        B.requireGuard $+          K.lit ("diagnostic" :: Text) ./= commandRequiredScope+        B.slot @"requiredScope" =: d.requiredScope+        B.emit wireNeLeftAccepted (NeLeftAcceptedTermFields+          { requiredScope = d.requiredScope+          , request = d.request+          })+        B.goto ScopeGateDone+      B.onCmd inCtorSelf $ \d -> B.do+        let commandRequiredScope = K.inpProj StructuralProjections.requiredScopeWitness inCtorSelf (#requiredScope :: K.Index (RegFieldsOf SelfData) RequiredScope)+        B.requireGuard $+          commandRequiredScope .== commandRequiredScope+          .&& (commandRequiredScope ./= commandRequiredScope+          .|| commandRequiredScope .== commandRequiredScope)+        B.slot @"requiredScope" =: K.opaqueLit (case K.checkFieldProjectionKey StructuralProjections.requiredScopeWitness "pipeline" of Right owner -> owner; Left problem -> error (show problem))+        B.emit wireSelfAccepted (SelfAcceptedTermFields+          { requiredScope = d.requiredScope+          , request = d.request+          })+        B.goto ScopeGateDone+ where+  isTerminal = \case+    ScopeGateDone -> True+    _ -> False++scopeGateFoldFingerprint :: Text+scopeGateFoldFingerprint = "e0a7710ac6ee88af5cb2a06e40fa922f"++data BehaviorOwnership = GeneratedOwned | HoleOwned+  deriving stock (Eq, Show)++-- Every checked transition predicate is audited through Keiki's conservative+-- symbolic verifier. Opaque Hole terms remain explicitly unverified.+scopeGatePredicateVerifications :: IO [(Text, BehaviorOwnership, S.PredicateVerification)]+scopeGatePredicateVerifications = sequence+  [ verifyTransition "transition1ReadyMatch" GeneratedOwned ScopeGateReady 0+  , verifyTransition "transition2ReadyDiffer" GeneratedOwned ScopeGateReady 1+  , verifyTransition "transition3ReadyEqRight" GeneratedOwned ScopeGateReady 2+  , verifyTransition "transition4ReadyEqLeft" GeneratedOwned ScopeGateReady 3+  , verifyTransition "transition5ReadyNeRight" GeneratedOwned ScopeGateReady 4+  , verifyTransition "transition6ReadyNeLeft" GeneratedOwned ScopeGateReady 5+  , verifyTransition "transition7ReadySelf" GeneratedOwned ScopeGateReady 6+  ]+ where+  verifyTransition label owner source edgeIndex =+    case drop edgeIndex (K.edgesOut scopeGateTransducer source) of+      K.Edge predicate _ _ _ _ : _ -> (\result -> (label, owner, result)) <$> S.verifyPredicate predicate+      [] -> pure (label, owner, S.UnverifiedSolverFailure "generated transition edge missing")
+ test/conformance-mapped-structural-enum-equality/Generated/MappedStructuralEnumEquality/Structural/Shape/Request.hs view
@@ -0,0 +1,10 @@+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from mapped structural Request; do not edit.+module Generated.MappedStructuralEnumEquality.Structural.Shape.Request (RequestShape (..)) where++import GHC.Generics (Generic)+import Generated.MappedStructuralEnumEquality.Structural.Shape.RequiredScope qualified as RequiredScope++data RequestShape = Request+  { requiredScope :: !RequiredScope.RequiredScopeShape+  }+  deriving stock (Eq, Generic, Show)
+ test/conformance-mapped-structural-enum-equality/Generated/MappedStructuralEnumEquality/Structural/Shape/RequiredScope.hs view
@@ -0,0 +1,7 @@+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from mapped structural RequiredScope; do not edit.+module Generated.MappedStructuralEnumEquality.Structural.Shape.RequiredScope (RequiredScopeShape (..)) where++import GHC.Generics (Generic)++data RequiredScopeShape = PipelineScope | DiagnosticScope+  deriving stock (Eq, Generic, Show)
+ test/conformance-mapped-structural-enum-equality/Generated/MappedStructuralEnumEquality/StructuralConformance.hs view
@@ -0,0 +1,72 @@+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context mapped-structural-enum-equality structural conformance; do not edit.+module Generated.MappedStructuralEnumEquality.StructuralConformance+  ( structuralConformanceAssertions+  ) where++import Data.List (nub)+import Data.List.NonEmpty qualified as NonEmpty+import Data.Proxy (Proxy (..))+import Data.Text qualified as T+import Keiki.Core (checkFieldProjectionOwner, checkFieldProjectionKey)+import Keiki.Shape (CanonicalTypeName (..))+import Keiro.Codec.Structural (FixtureCases (..), bindingDomainRoundTrip, bindingShapeRoundTrip, bindingToShape)+import Generated.MappedStructuralEnumEquality.StructuralProjections qualified as StructuralProjections+import Conformance.MappedStructuralEnumEquality.Bindings qualified as Bindings+import Conformance.MappedStructuralEnumEquality.Domain (Request, RequiredScope)+import Generated.MappedStructuralEnumEquality.Structural.Shape.RequiredScope qualified as ShapeRequiredScope++structuralConformanceAssertions :: [(String, Bool)]+structuralConformanceAssertions =+  concat+    [ requestBindingAssertions+    , requiredScopeBindingAssertions+    , [("fixture coverage: conformance.Request.v1", coverageRequest)]+    , [("fixture coverage: conformance.RequiredScope.v1", coverageRequiredScope)]+    , structuralProjectionAssertions+    ]++validFixtureLabels :: NonEmpty.NonEmpty (T.Text, value) -> Bool+validFixtureLabels cases =+  all (not . T.null) labels && length labels == length (nub labels)+  where+    labels = map fst (NonEmpty.toList cases)++requestBindingAssertions :: [(String, Bool)]+requestBindingAssertions =+  ("fixture labels: conformance.Request.v1", validFixtureLabels cases) :+  ("canonical identity: conformance.Request.v1", canonicalTypeName (Proxy @Request) == "conformance.Request.v1") :+  concat+    [ [ ("binding domain round-trip: conformance.Request.v1/" <> T.unpack label, bindingDomainRoundTrip Bindings.requestBinding value)+      , ("binding shape round-trip: conformance.Request.v1/" <> T.unpack label, bindingShapeRoundTrip Bindings.requestBinding (bindingToShape Bindings.requestBinding value))+      ]+    | (label, value) <- NonEmpty.toList cases+    ]+  where+    cases = fixtureCases Bindings.requestFixtures++requiredScopeBindingAssertions :: [(String, Bool)]+requiredScopeBindingAssertions =+  ("fixture labels: conformance.RequiredScope.v1", validFixtureLabels cases) :+  ("canonical identity: conformance.RequiredScope.v1", canonicalTypeName (Proxy @RequiredScope) == "conformance.RequiredScope.v1") :+  [("exhaustive enum shape round-trip: conformance.RequiredScope.v1", all (bindingShapeRoundTrip Bindings.requiredScopeBinding) [ShapeRequiredScope.PipelineScope, ShapeRequiredScope.DiagnosticScope])] <> concat+    [ [ ("binding domain round-trip: conformance.RequiredScope.v1/" <> T.unpack label, bindingDomainRoundTrip Bindings.requiredScopeBinding value)+      , ("binding shape round-trip: conformance.RequiredScope.v1/" <> T.unpack label, bindingShapeRoundTrip Bindings.requiredScopeBinding (bindingToShape Bindings.requiredScopeBinding value))+      ]+    | (label, value) <- NonEmpty.toList cases+    ]+  where+    cases = fixtureCases Bindings.requiredScopeFixtures++coverageRequest :: Bool+coverageRequest = True++coverageRequiredScope :: Bool+coverageRequiredScope = any (\case ShapeRequiredScope.PipelineScope -> True; _ -> False) shapes && any (\case ShapeRequiredScope.DiagnosticScope -> True; _ -> False) shapes+  where+    shapes = map (bindingToShape Bindings.requiredScopeBinding . snd) (NonEmpty.toList (fixtureCases Bindings.requiredScopeFixtures))++structuralProjectionAssertions :: [(String, Bool)]+structuralProjectionAssertions =+  [ ("projection owner law: conformance.RequiredScope.v1", all (\(_, owner) -> either (const False) (const True) (checkFieldProjectionOwner StructuralProjections.requiredScopeWitness owner)) (NonEmpty.toList (fixtureCases Bindings.requiredScopeFixtures))),+  ("projection key law: conformance.RequiredScope.v1", all (either (const False) (const True) . checkFieldProjectionKey StructuralProjections.requiredScopeWitness) ["pipeline", "diagnostic"])+  ]
+ test/conformance-mapped-structural-enum-equality/Generated/MappedStructuralEnumEquality/StructuralProjections.hs view
@@ -0,0 +1,40 @@+{-# LANGUAGE TypeFamilies #-}+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context mapped-structural-enum-equality mapped structural facade; do not edit.+-- Equality witnesses are emitted for Text, Int, Bool, Natural, and UTCTime.+-- Nominal ID and enum leaves carry exact canonical-text domains.+-- Int, Natural, and UTCTime belong to Keiki's ordered subset.+module Generated.MappedStructuralEnumEquality.StructuralProjections+  ( requiredScopeWitness+  , requiredScopeGet+  ) where++import Data.Text (Text)+import Data.List.NonEmpty (NonEmpty (..))+import Keiro.Codec.Structural (bindingToShape, bindingFromShape)+import Keiki.Core (FieldProjection (..), FieldWitness, ExactFieldProjection (..), exactFieldWitness)+import Keiki.ProjectionDomain (finiteProjectionDomain)+import Conformance.MappedStructuralEnumEquality.Bindings qualified as Bindings+import Conformance.MappedStructuralEnumEquality.Domain (RequiredScope)+import Generated.MappedStructuralEnumEquality.Structural.Shape.RequiredScope qualified as ShapeRequiredScope++data RequiredScopeProjection++requiredScopeGet :: RequiredScope -> Text+requiredScopeGet owner = case bindingToShape Bindings.requiredScopeBinding owner of ShapeRequiredScope.PipelineScope -> "pipeline"; ShapeRequiredScope.DiagnosticScope -> "diagnostic"++instance FieldProjection RequiredScopeProjection where+  type FieldName RequiredScopeProjection = ""+  type FieldOwner RequiredScopeProjection = RequiredScope+  type FieldResult RequiredScopeProjection = Text+  fieldShapeId _ = "conformance.RequiredScope.v1"+  projectFieldValue _ = requiredScopeGet++instance ExactFieldProjection RequiredScopeProjection where+  fieldProjectionDomain _ = finiteProjectionDomain ("pipeline" :| ["diagnostic"])+  reconstructFieldOwner _ value = case value of+    "pipeline" -> Just (bindingFromShape Bindings.requiredScopeBinding ShapeRequiredScope.PipelineScope)+    "diagnostic" -> Just (bindingFromShape Bindings.requiredScopeBinding ShapeRequiredScope.DiagnosticScope)+    _ -> Nothing++requiredScopeWitness :: FieldWitness RequiredScopeProjection+requiredScopeWitness = exactFieldWitness @RequiredScopeProjection
+ test/conformance-mapped-structural-enum-equality/Main.hs view
@@ -0,0 +1,154 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE TypeApplications #-}+module Main (main) where++import Conformance.MappedStructuralEnumEquality.Domain+import Control.Monad (forM, forM_, unless)+import Data.Aeson (Value (..), object, (.=))+import Data.Aeson qualified as Aeson+import Data.Maybe (isJust)+import Data.Proxy (Proxy (..))+import Data.Text (Text)+import Data.Text qualified as T+import Generated.MappedStructuralEnumEquality.ScopeGate.Codec+import Generated.MappedStructuralEnumEquality.ScopeGate.EventStream (scopeGateEventStreamDef)+import Keiro.EventStream qualified as EventStream+import Keiro.Snapshot.Codec (withFoldFingerprint)+import Generated.MappedStructuralEnumEquality.ScopeGate.Domain+import Generated.MappedStructuralEnumEquality.ScopeGate.Harness (harnessAssertions)+import Generated.MappedStructuralEnumEquality.ScopeGate.Transducer (scopeGateTransducer)+import Generated.MappedStructuralEnumEquality.StructuralConformance (structuralConformanceAssertions)+import Generated.MappedStructuralEnumEquality.StructuralProjections qualified as Projections+import Keiki.Core qualified as K+import Keiki.Symbolic qualified as S+import Keiro.Codec (eventType)+import System.Exit (exitFailure)++main :: IO ()+main = do+  symbolic <- symbolicChecks+  let checks = structuralConformanceAssertions <> harnessAssertions <> symbolic <>+        [("concrete equality and inequality truth tables", concreteMatrix),+         ("expected enum wire meanings", expectedWire),+         ("nested and direct event JSON stays canonical", eventWire),+         ("event JSON bytes preserve declared spellings", exactEventBytes),+         ("generated events decode and replay to forward state", replayAgreement),+         ("compatible snapshot agrees with full replay and changed folds have a different discriminator", snapshotAgreement)]+  forM_ checks $ \(label, passed) -> putStrLn ((if passed then "PASS  " else "FAIL  ") <> label)+  unless (all snd checks) exitFailure++scopes :: [(RequiredScope, Text)]+scopes = [(PipelineScope, "pipeline"), (DiagnosticScope, "diagnostic")]++regs :: RequiredScope -> K.RegFile ScopeGateRegs+regs scope = K.RCons (Proxy @"requiredScope") scope K.RNil++command :: Int -> RequiredScope -> ScopeGateCommand+command 0 scope = Match (MatchData scope (Request scope))+command 1 scope = Differ (DifferData scope (Request scope))+command 2 scope = EqRight (EqRightData scope (Request scope))+command 3 scope = EqLeft (EqLeftData scope (Request scope))+command 4 scope = NeRight (NeRightData scope (Request scope))+command 5 scope = NeLeft (NeLeftData scope (Request scope))+command 6 scope = Self (SelfData scope (Request scope))+command _ _ = error "unknown fixture command"++accepts :: Int -> RequiredScope -> RequiredScope -> Bool+accepts 0 owner input = owner == input+accepts 1 owner input = owner /= input+accepts 2 _ input = input == PipelineScope+accepts 3 _ input = input == PipelineScope+accepts 4 _ input = input /= DiagnosticScope+accepts 5 _ input = input /= DiagnosticScope+accepts 6 _ _ = True+accepts _ _ _ = error "unknown fixture command"++concreteMatrix :: Bool+concreteMatrix = and+  [ isJust (K.step scopeGateTransducer (ScopeGateReady, regs owner) (command index input)) == accepts index owner input+  | index <- [0..6], (owner, _) <- scopes, (input, _) <- scopes ]++expectedWire :: Bool+expectedWire = and [encodeRequiredScopeMapped owner == String key | (owner, key) <- scopes]++eventWire :: Bool+eventWire = and+  [ encodeScopeGateEvent (Matched (MatchedData owner (Request owner))) ==+      object ["kind" .= ("Matched" :: Text), "requiredScope" .= key, "request" .= object ["requiredScope" .= key]]+  | (owner, key) <- scopes ]++exactEventBytes :: Bool+exactEventBytes =+  Aeson.encode (encodeScopeGateEvent (Matched (MatchedData PipelineScope (Request PipelineScope)))) == "{\"kind\":\"Matched\",\"request\":{\"requiredScope\":\"pipeline\"},\"requiredScope\":\"pipeline\"}"+    && Aeson.encode (encodeScopeGateEvent (Matched (MatchedData DiagnosticScope (Request DiagnosticScope)))) == "{\"kind\":\"Matched\",\"request\":{\"requiredScope\":\"diagnostic\"},\"requiredScope\":\"diagnostic\"}"++replayAgreement :: Bool+replayAgreement = and+  [ case K.step scopeGateTransducer initial (command index input) of+      Nothing -> True+      Just (vertex, registers, events) ->+        case traverse (\event -> parseScopeGateEvent (eventType scopeGateCodec event) (encodeScopeGateEvent event)) events of+          Left _ -> False+          Right decoded -> case K.applyEventsEither scopeGateTransducer initial decoded of+            Left _ -> False+            Right (replayedVertex, replayedRegisters) -> vertex == replayedVertex && registers K.! #requiredScope == replayedRegisters K.! #requiredScope+  | index <- [0..6], (owner, _) <- scopes, (input, _) <- scopes, let initial = (ScopeGateReady, regs owner) ]++scopeTerm :: K.Term ScopeGateRegs ScopeGateCommand '[] Text+scopeTerm = K.regProj Projections.requiredScopeWitness (#requiredScope :: K.Index ScopeGateRegs RequiredScope)++symbolicChecks :: IO [(String, Bool)]+symbolicChecks = do+  matrix <- forM [(index, owner, ownerKey, input, inputKey) | index <- [0..6], (owner, ownerKey) <- scopes, (input, inputKey) <- scopes] $ \(index, owner, ownerKey, input, inputKey) -> do+    let generated = case drop index (K.edgesOut scopeGateTransducer ScopeGateReady) of+          K.Edge edgePredicate _ _ _ _ : _ -> edgePredicate+          _ -> error "generated edge missing"+        predicate = K.PAnd generated (K.PAnd (K.PEq scopeTerm (K.lit ownerKey)) (K.PEq (inputTerm index) (K.lit inputKey)))+    result <- S.verifyPredicateDetailed predicate+    pure ("generated concrete/symbolic matrix: " <> show (index, owner, input), case result of+      S.PredicateSatisfiable S.ExactTranslation values -> accepts index owner input && not (null values) && all modelRoundTrip values+      S.PredicateUnsatisfiable S.ExactTranslation -> not (accepts index owner input)+      _ -> False)+  models <- forM scopes $ \(owner, key) -> do+    result <- S.verifyPredicateDetailed (K.PEq scopeTerm (K.lit key))+    pure ("exact finite reconstruction: " <> show owner, case result of+      S.PredicateSatisfiable strength values -> S.predicateTranslationExact (K.PEq scopeTerm (K.lit key)) && not (null values) && all (\value -> S.projectionModelKeyAs @Text value == Just key && S.projectionModelOwnerAs @RequiredScope value == Just owner) values && strength == S.ExactTranslation+      _ -> False)+  outside <- S.verifyPredicateDetailed (K.PAnd (K.PNot (K.PEq scopeTerm (K.lit "pipeline"))) (K.PNot (K.PEq scopeTerm (K.lit "diagnostic"))))+  pure (matrix <> models <> [("finite domain excludes every undeclared key", case outside of S.PredicateUnsatisfiable _ -> True; _ -> False)])++inputTerm :: Int -> K.Term ScopeGateRegs ScopeGateCommand '[ '("requiredScope", RequiredScope), '("request", Request)] Text+inputTerm index = K.inpProj Projections.requiredScopeWitness constructor #requiredScope+  where+    constructor = case index of+      0 -> inCtorMatch+      1 -> inCtorDiffer+      2 -> inCtorEqRight+      3 -> inCtorEqLeft+      4 -> inCtorNeRight+      5 -> inCtorNeLeft+      6 -> inCtorSelf+      _ -> error "unknown fixture command"++modelRoundTrip :: S.ProjectionModel -> Bool+modelRoundTrip value = case (S.projectionModelKeyAs @Text value, S.projectionModelOwnerAs @RequiredScope value) of+  (Just key, Just owner) -> (owner, key) `elem` scopes && Projections.requiredScopeGet owner == key+  _ -> False++snapshotAgreement :: Bool+snapshotAgreement = case EventStream.stateCodec scopeGateEventStreamDef of+  Nothing -> False+  Just codec ->+    let initial = (ScopeGateReady, regs PipelineScope)+        events = [Matched (MatchedData PipelineScope (Request PipelineScope))]+        full = K.applyEventsEither scopeGateTransducer initial events+        fromSnapshot = do+          decoded <- EventStream.decode codec (EventStream.encode codec initial)+          either (Left . T.pack . show) Right (K.applyEventsEither scopeGateTransducer decoded events)+        changed = withFoldFingerprint "changed-scope-fold" codec+    in EventStream.stateCodecVersion changed == EventStream.stateCodecVersion codec+       && EventStream.shapeHash changed == EventStream.shapeHash codec+       && EventStream.stateShapeHash changed /= EventStream.stateShapeHash codec+       && case (full, fromSnapshot) of+         (Right (leftVertex, leftRegs), Right (rightVertex, rightRegs)) -> leftVertex == rightVertex && leftRegs K.! #requiredScope == rightRegs K.! #requiredScope+         _ -> False
+ test/conformance-mapped-structural-enum-equality/MappedStructuralEnumEquality/ScopeGate/BehaviorHoles.hs view
@@ -0,0 +1,37 @@+module MappedStructuralEnumEquality.ScopeGate.BehaviorHoles (behaviorWitnesses) where++import Conformance.MappedStructuralEnumEquality.Domain+import Data.List.NonEmpty (NonEmpty (..))+import Generated.MappedStructuralEnumEquality.ScopeGate.BehaviorContract+import Generated.MappedStructuralEnumEquality.ScopeGate.Domain++behaviorWitnesses :: [BehaviorWitness]+behaviorWitnesses = map witness behaviorRequirements+  where+    matched = Matched (MatchedData PipelineScope (Request PipelineScope))+    witness requirement = LiveWitness+      { key = requirement.key,+        history = if requirement.source == ScopeGateDone then [matched] else [],+        command = commandFor requirement.commandName,+        expected = case requirement.kind of+          RequiredRejection -> Rejects RejectNoMatchingEdge+          LiveTransition -> Emits (eventFor requirement.commandName :| [])+          ReplayTransition -> error "fixture has no replay-only transitions"+      }++    commandFor "Match" = Match (MatchData PipelineScope (Request PipelineScope))+    commandFor "Differ" = Differ (DifferData DiagnosticScope (Request DiagnosticScope))+    commandFor "EqRight" = EqRight (EqRightData PipelineScope (Request PipelineScope))+    commandFor "EqLeft" = EqLeft (EqLeftData PipelineScope (Request PipelineScope))+    commandFor "NeRight" = NeRight (NeRightData PipelineScope (Request PipelineScope))+    commandFor "NeLeft" = NeLeft (NeLeftData PipelineScope (Request PipelineScope))+    commandFor "Self" = Self (SelfData PipelineScope (Request PipelineScope))+    commandFor _ = error "unknown fixture command"+    eventFor "Match" = matched+    eventFor "Differ" = Differed (DifferedData DiagnosticScope (Request DiagnosticScope))+    eventFor "EqRight" = EqRightAccepted (EqRightAcceptedData PipelineScope (Request PipelineScope))+    eventFor "EqLeft" = EqLeftAccepted (EqLeftAcceptedData PipelineScope (Request PipelineScope))+    eventFor "NeRight" = NeRightAccepted (NeRightAcceptedData PipelineScope (Request PipelineScope))+    eventFor "NeLeft" = NeLeftAccepted (NeLeftAcceptedData PipelineScope (Request PipelineScope))+    eventFor "Self" = SelfAccepted (SelfAcceptedData PipelineScope (Request PipelineScope))+    eventFor _ = error "unknown fixture event"
+ test/conformance-mapped-structural-enum-equality/keiro-dsl-cabal-fragment.context.mapped-structural-enum-equality.txt view
@@ -0,0 +1,43 @@+-- keiro-dsl build manifest for keiro-dsl/test/fixtures/mapped-structural-enum-equality.keiro+-- Paste the complete fragment below into the consuming Cabal stanza.+-- The generated layer is overwritten on every scaffold; hole modules are+-- create-if-absent (filled by hand).++default-language: GHC2024+default-extensions:+    DuplicateRecordFields+    NoFieldSelectors+    OverloadedRecordDot+    OverloadedStrings++other-modules:+    Conformance.MappedStructuralEnumEquality.Bindings+    Generated.MappedStructuralEnumEquality.BehaviorSourceMap+    Generated.MappedStructuralEnumEquality.ReplayAudit+    Generated.MappedStructuralEnumEquality.ScopeGate.BehaviorContract+    Generated.MappedStructuralEnumEquality.ScopeGate.Codec+    Generated.MappedStructuralEnumEquality.ScopeGate.Domain+    Generated.MappedStructuralEnumEquality.ScopeGate.EventStream+    Generated.MappedStructuralEnumEquality.ScopeGate.Harness+    Generated.MappedStructuralEnumEquality.ScopeGate.Projection+    Generated.MappedStructuralEnumEquality.ScopeGate.Transducer+    Generated.MappedStructuralEnumEquality.Structural.Shape.Request+    Generated.MappedStructuralEnumEquality.Structural.Shape.RequiredScope+    Generated.MappedStructuralEnumEquality.StructuralConformance+    Generated.MappedStructuralEnumEquality.StructuralProjections+    MappedStructuralEnumEquality.ScopeGate.BehaviorHoles++build-depends:+    , aeson+    , base+    , keiki+    , keiro+    , keiro-dsl+    , text++consumer-packages:+    keiro-dsl++consumer-modules:+    Conformance.MappedStructuralEnumEquality.Bindings+    Conformance.MappedStructuralEnumEquality.Domain
+ test/conformance-mapped-structural-enum-equality/keiro-dsl-ledger.context.mapped-structural-enum-equality.txt view
@@ -0,0 +1,61 @@+keiro-dsl scaffold record v1+spec: keiro-dsl/test/fixtures/mapped-structural-enum-equality.keiro+module-root: (none)+layout: prefixed+source-language {"declaredLanguageVersion":6,"effectiveLanguageVersion":6,"sourceForm":"declared"}+semantic-contract {"languageSupport":"candidate","languageVersion":6,"runtimeSemantics":"keiro-dsl/runtime-semantics/5"}+naming-edition idiomatic-v2+module-role {"family":"StructuralConformance","kind":"generated","ownerKind":"context","ownerName":"context mapped-structural-enum-equality structural conformance","path":"Generated/MappedStructuralEnumEquality/StructuralConformance.hs"}+module-role {"family":"BehaviorSourceMap","kind":"generated","ownerKind":"context","ownerName":"context mapped-structural-enum-equality behavior source map","path":"Generated/MappedStructuralEnumEquality/BehaviorSourceMap.hs"}+module-role {"family":"Request","kind":"generated","ownerKind":"mapped","ownerName":"mapped structural Request (line 14)","path":"Generated/MappedStructuralEnumEquality/Structural/Shape/Request.hs"}+module-role {"family":"RequiredScope","kind":"generated","ownerKind":"mapped","ownerName":"mapped structural RequiredScope (line 4)","path":"Generated/MappedStructuralEnumEquality/Structural/Shape/RequiredScope.hs"}+module-role {"family":"StructuralProjections","kind":"generated","ownerKind":"context","ownerName":"context mapped-structural-enum-equality mapped structural facade","path":"Generated/MappedStructuralEnumEquality/StructuralProjections.hs"}+module-role {"family":"Bindings","kind":"hole","ownerKind":"consumer","ownerName":"consumer binding skeleton Conformance.MappedStructuralEnumEquality.Bindings","path":"Conformance/MappedStructuralEnumEquality/Bindings.hs"}+module-role {"family":"ReplayAudit","kind":"generated","ownerKind":"context","ownerName":"context mapped-structural-enum-equality replay-audit assembly","path":"Generated/MappedStructuralEnumEquality/ReplayAudit.hs"}+module-role {"family":"Domain","kind":"generated","ownerKind":"aggregate","ownerName":"aggregate ScopeGate (line 25)","path":"Generated/MappedStructuralEnumEquality/ScopeGate/Domain.hs"}+module-role {"family":"Codec","kind":"generated","ownerKind":"aggregate","ownerName":"aggregate ScopeGate (line 25)","path":"Generated/MappedStructuralEnumEquality/ScopeGate/Codec.hs"}+module-role {"family":"Transducer","kind":"generated","ownerKind":"aggregate","ownerName":"aggregate ScopeGate (line 25)","path":"Generated/MappedStructuralEnumEquality/ScopeGate/Transducer.hs"}+module-role {"family":"BehaviorContract","kind":"generated","ownerKind":"aggregate","ownerName":"aggregate ScopeGate (line 25)","path":"Generated/MappedStructuralEnumEquality/ScopeGate/BehaviorContract.hs"}+module-role {"family":"BehaviorHoles","kind":"hole","ownerKind":"aggregate","ownerName":"aggregate behavior witnesses ScopeGate (line 25)","path":"MappedStructuralEnumEquality/ScopeGate/BehaviorHoles.hs"}+module-role {"family":"EventStream","kind":"generated","ownerKind":"aggregate","ownerName":"aggregate ScopeGate (line 25)","path":"Generated/MappedStructuralEnumEquality/ScopeGate/EventStream.hs"}+module-role {"family":"Projection","kind":"generated","ownerKind":"aggregate","ownerName":"aggregate ScopeGate (line 25)","path":"Generated/MappedStructuralEnumEquality/ScopeGate/Projection.hs"}+module-role {"family":"Harness","kind":"generated","ownerKind":"aggregate","ownerName":"aggregate ScopeGate (line 25)","path":"Generated/MappedStructuralEnumEquality/ScopeGate/Harness.hs"}+generated Generated/MappedStructuralEnumEquality/StructuralConformance.hs+generated Generated/MappedStructuralEnumEquality/BehaviorSourceMap.hs+generated Generated/MappedStructuralEnumEquality/Structural/Shape/Request.hs+generated Generated/MappedStructuralEnumEquality/Structural/Shape/RequiredScope.hs+generated Generated/MappedStructuralEnumEquality/StructuralProjections.hs+hole Conformance/MappedStructuralEnumEquality/Bindings.hs+generated Generated/MappedStructuralEnumEquality/ReplayAudit.hs+generated Generated/MappedStructuralEnumEquality/ScopeGate/Domain.hs+generated Generated/MappedStructuralEnumEquality/ScopeGate/Codec.hs+generated Generated/MappedStructuralEnumEquality/ScopeGate/Transducer.hs+generated Generated/MappedStructuralEnumEquality/ScopeGate/BehaviorContract.hs+hole MappedStructuralEnumEquality/ScopeGate/BehaviorHoles.hs+generated Generated/MappedStructuralEnumEquality/ScopeGate/EventStream.hs+generated Generated/MappedStructuralEnumEquality/ScopeGate/Projection.hs+generated Generated/MappedStructuralEnumEquality/ScopeGate/Harness.hs+mapping {"bindingSymbol":"Conformance.MappedStructuralEnumEquality.Bindings.requestBinding","bindingVersion":"1","canonicalType":"conformance.Request.v1","mode":"structural","module":"Conformance.MappedStructuralEnumEquality.Domain","package":"keiro-dsl","schema":1,"specName":"Request","type":"Request"}+mapping {"bindingSymbol":"Conformance.MappedStructuralEnumEquality.Bindings.requiredScopeBinding","bindingVersion":"1","canonicalType":"conformance.RequiredScope.v1","mode":"structural","module":"Conformance.MappedStructuralEnumEquality.Domain","package":"keiro-dsl","schema":1,"specName":"RequiredScope","type":"RequiredScope"}+structural-enum-equality keiro-dsl/structural-enum-equality/1:["RequiredScope","keiro-dsl","Conformance.MappedStructuralEnumEquality.Domain","RequiredScope","Conformance.MappedStructuralEnumEquality.Bindings.requiredScopeBinding","1","conformance.RequiredScope.v1","[[\"DiagnosticScope\",\"diagnostic\"],[\"PipelineScope\",\"pipeline\"]]"]+binding {"kind":"binding","mappedName":"Request","module":"Conformance.MappedStructuralEnumEquality.Bindings","path":"requiredScope","schema":1,"signature":"requestBinding.requiredScope :: RequiredScope","symbol":"requestBinding"}+binding {"kind":"fixtures","mappedName":"Request","module":"Conformance.MappedStructuralEnumEquality.Bindings","path":null,"schema":1,"signature":"requestFixtures :: FixtureCases Conformance.MappedStructuralEnumEquality.Domain.Request","symbol":"requestFixtures"}+binding {"kind":"binding","mappedName":"RequiredScope","module":"Conformance.MappedStructuralEnumEquality.Bindings","path":"DiagnosticScope","schema":1,"signature":"requiredScopeBinding.DiagnosticScope :: constructor case","symbol":"requiredScopeBinding"}+binding {"kind":"binding","mappedName":"RequiredScope","module":"Conformance.MappedStructuralEnumEquality.Bindings","path":"PipelineScope","schema":1,"signature":"requiredScopeBinding.PipelineScope :: constructor case","symbol":"requiredScopeBinding"}+binding {"kind":"fixtures","mappedName":"RequiredScope","module":"Conformance.MappedStructuralEnumEquality.Bindings","path":null,"schema":1,"signature":"requiredScopeFixtures :: FixtureCases Conformance.MappedStructuralEnumEquality.Domain.RequiredScope","symbol":"requiredScopeFixtures"}+binding {"kind":"initial-value","mappedName":"RequiredScope","module":"Conformance.MappedStructuralEnumEquality.Bindings","path":null,"schema":1,"signature":"initialScope :: Conformance.MappedStructuralEnumEquality.Domain.RequiredScope","symbol":"initialScope"}+behavior {"aggregate":"ScopeGate","command":"EqRight","evidence":"generated-authoritative","key":"behavior-v1-070772cfee379456","kind":"required-rejection","outputs":[],"source":"Done"}+behavior {"aggregate":"ScopeGate","command":"NeLeft","evidence":"generated-authoritative","key":"behavior-v1-1cdfb1b7e2088a1a","kind":"required-rejection","outputs":[],"source":"Done"}+behavior {"aggregate":"ScopeGate","command":"NeRight","evidence":"generated-authoritative","key":"behavior-v1-2609ef2ca7eca507","kind":"required-rejection","outputs":[],"source":"Done"}+behavior {"aggregate":"ScopeGate","command":"Differ","evidence":"generated-authoritative","key":"behavior-v1-373ac328a7acad82","kind":"required-rejection","outputs":[],"source":"Done"}+behavior {"aggregate":"ScopeGate","command":"NeRight","evidence":"generated-authoritative","key":"behavior-v1-3bd69ca93310ff6c","kind":"live-transition","outputs":[{"command":"NeRight","ownership":"generated-command-identity"}],"source":"Ready"}+behavior {"aggregate":"ScopeGate","command":"Differ","evidence":"generated-authoritative","key":"behavior-v1-677f2db2c9c2a230","kind":"live-transition","outputs":[{"command":"Differ","ownership":"generated-command-identity"}],"source":"Ready"}+behavior {"aggregate":"ScopeGate","command":"Self","evidence":"generated-authoritative","key":"behavior-v1-734985bac0c81864","kind":"required-rejection","outputs":[],"source":"Done"}+behavior {"aggregate":"ScopeGate","command":"NeLeft","evidence":"generated-authoritative","key":"behavior-v1-aad7a9b25d6c4dff","kind":"live-transition","outputs":[{"command":"NeLeft","ownership":"generated-command-identity"}],"source":"Ready"}+behavior {"aggregate":"ScopeGate","command":"Match","evidence":"generated-authoritative","key":"behavior-v1-ab778d2eeb34cd73","kind":"required-rejection","outputs":[],"source":"Done"}+behavior {"aggregate":"ScopeGate","command":"EqRight","evidence":"generated-authoritative","key":"behavior-v1-b44fa84cbf45f2dc","kind":"live-transition","outputs":[{"command":"EqRight","ownership":"generated-command-identity"}],"source":"Ready"}+behavior {"aggregate":"ScopeGate","command":"EqLeft","evidence":"generated-authoritative","key":"behavior-v1-c8ec15a0f293621d","kind":"required-rejection","outputs":[],"source":"Done"}+behavior {"aggregate":"ScopeGate","command":"EqLeft","evidence":"generated-authoritative","key":"behavior-v1-ee7fcaed44a911f9","kind":"live-transition","outputs":[{"command":"EqLeft","ownership":"generated-command-identity"}],"source":"Ready"}+behavior {"aggregate":"ScopeGate","command":"Self","evidence":"generated-authoritative","key":"behavior-v1-f136428bd6a3061f","kind":"live-transition","outputs":[{"command":"Self","ownership":"generated-command-identity"}],"source":"Ready"}+behavior {"aggregate":"ScopeGate","command":"Match","evidence":"generated-authoritative","key":"behavior-v1-fbe937c9ea4bf8c9","kind":"live-transition","outputs":[{"command":"Match","ownership":"generated-command-identity"}],"source":"Ready"}+semantic-impact {"declarations":[{"consequences":[{"consumer":"ScopeGate","kind":"consumer-build"},{"aggregate":"ScopeGate","kind":"private-event-history"}],"consumerEvidence":[{"consumer":"ScopeGate","operation":null,"path":"ScopeGate command Differ .request : Request","surface":"aggregate-command"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate command EqLeft .request : Request","surface":"aggregate-command"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate command EqRight .request : Request","surface":"aggregate-command"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate command Match .request : Request","surface":"aggregate-command"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate command NeLeft .request : Request","surface":"aggregate-command"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate command NeRight .request : Request","surface":"aggregate-command"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate command Self .request : Request","surface":"aggregate-command"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate event Differed .request : Request","surface":"private-event-payload"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate event EqLeftAccepted .request : Request","surface":"private-event-payload"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate event EqRightAccepted .request : Request","surface":"private-event-payload"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate event Matched .request : Request","surface":"private-event-payload"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate event NeLeftAccepted .request : Request","surface":"private-event-payload"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate event NeRightAccepted .request : Request","surface":"private-event-payload"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate event SelfAccepted .request : Request","surface":"private-event-payload"}],"consumers":["ScopeGate"],"declaration":"Request","identity":"structural\u001fkeiro-dsl:Conformance.MappedStructuralEnumEquality.Domain:Request\u001fConformance.MappedStructuralEnumEquality.Bindings.requestBinding\u001f1\u001fconformance.Request.v1\u001fConformance.MappedStructuralEnumEquality.Bindings.requestFixtures\u001f\u001f0937ea60012cd4a9\u001frecord:Request:requiredScope=requiredScope"},{"consequences":[{"consumer":"ScopeGate","kind":"consumer-build"},{"aggregate":"ScopeGate","kind":"private-event-history"},{"aggregate":"ScopeGate","kind":"snapshot-hydration"}],"consumerEvidence":[{"consumer":"ScopeGate","operation":null,"path":"ScopeGate command Differ .request : Request .requiredScope : RequiredScope","surface":"aggregate-command"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate command Differ .requiredScope : RequiredScope","surface":"aggregate-command"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate command EqLeft .request : Request .requiredScope : RequiredScope","surface":"aggregate-command"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate command EqLeft .requiredScope : RequiredScope","surface":"aggregate-command"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate command EqRight .request : Request .requiredScope : RequiredScope","surface":"aggregate-command"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate command EqRight .requiredScope : RequiredScope","surface":"aggregate-command"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate command Match .request : Request .requiredScope : RequiredScope","surface":"aggregate-command"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate command Match .requiredScope : RequiredScope","surface":"aggregate-command"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate command NeLeft .request : Request .requiredScope : RequiredScope","surface":"aggregate-command"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate command NeLeft .requiredScope : RequiredScope","surface":"aggregate-command"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate command NeRight .request : Request .requiredScope : RequiredScope","surface":"aggregate-command"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate command NeRight .requiredScope : RequiredScope","surface":"aggregate-command"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate command Self .request : Request .requiredScope : RequiredScope","surface":"aggregate-command"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate command Self .requiredScope : RequiredScope","surface":"aggregate-command"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate event Differed .request : Request .requiredScope : RequiredScope","surface":"private-event-payload"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate event Differed .requiredScope : RequiredScope","surface":"private-event-payload"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate event EqLeftAccepted .request : Request .requiredScope : RequiredScope","surface":"private-event-payload"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate event EqLeftAccepted .requiredScope : RequiredScope","surface":"private-event-payload"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate event EqRightAccepted .request : Request .requiredScope : RequiredScope","surface":"private-event-payload"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate event EqRightAccepted .requiredScope : RequiredScope","surface":"private-event-payload"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate event Matched .request : Request .requiredScope : RequiredScope","surface":"private-event-payload"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate event Matched .requiredScope : RequiredScope","surface":"private-event-payload"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate event NeLeftAccepted .request : Request .requiredScope : RequiredScope","surface":"private-event-payload"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate event NeLeftAccepted .requiredScope : RequiredScope","surface":"private-event-payload"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate event NeRightAccepted .request : Request .requiredScope : RequiredScope","surface":"private-event-payload"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate event NeRightAccepted .requiredScope : RequiredScope","surface":"private-event-payload"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate event SelfAccepted .request : Request .requiredScope : RequiredScope","surface":"private-event-payload"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate event SelfAccepted .requiredScope : RequiredScope","surface":"private-event-payload"},{"consumer":"ScopeGate","operation":null,"path":"ScopeGate register requiredScope : RequiredScope","surface":"snapshot-register"}],"consumers":["ScopeGate"],"declaration":"RequiredScope","identity":"structural\u001fkeiro-dsl:Conformance.MappedStructuralEnumEquality.Domain:RequiredScope\u001fConformance.MappedStructuralEnumEquality.Bindings.requiredScopeBinding\u001f1\u001fconformance.RequiredScope.v1\u001fConformance.MappedStructuralEnumEquality.Bindings.requiredScopeFixtures\u001fConformance.MappedStructuralEnumEquality.Bindings.initialScope\u001f0b2821aba8872fd3\u001fenum:DiagnosticScope=diagnostic,PipelineScope=pipeline"}],"mappedSurfaceEvidenceVersion":1,"serviceInventory":["Request","RequiredScope"]}
test/conformance-newsurface/Generated/TransferRouting/BehaviorSourceMap.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context transfer-routing behavior source map; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context transfer-routing behavior source map; do not edit. module Generated.TransferRouting.BehaviorSourceMap   ( BehaviorSourceLocation (..)   , behaviorSourceLocation
test/conformance-newsurface/Generated/TransferRouting/Hospital/BehaviorContract.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit. module Generated.TransferRouting.Hospital.BehaviorContract   ( BehaviorKey (..)   , unBehaviorKey
test/conformance-newsurface/Generated/TransferRouting/Hospital/Codec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit. module Generated.TransferRouting.Hospital.Codec (     hospitalCodec,     parseHospitalEvent,
test/conformance-newsurface/Generated/TransferRouting/Hospital/Domain.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE TemplateHaskell #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit. module Generated.TransferRouting.Hospital.Domain where  import Data.Text (Text)
test/conformance-newsurface/Generated/TransferRouting/Hospital/EventStream.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit. module Generated.TransferRouting.Hospital.EventStream   ( hospitalCategory   , hospitalCommandCategory
test/conformance-newsurface/Generated/TransferRouting/Hospital/Harness.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit. module Generated.TransferRouting.Hospital.Harness (harnessAssertions) where  import Generated.TransferRouting.Hospital.Domain
test/conformance-newsurface/Generated/TransferRouting/Hospital/Projection.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit. module Generated.TransferRouting.Hospital.Projection () where  -- No projection declarations are present; this module keeps the generated manifest inventory total.
test/conformance-newsurface/Generated/TransferRouting/Hospital/Transducer.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE BlockArguments #-} {-# LANGUAGE QualifiedDo #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit. module Generated.TransferRouting.Hospital.Transducer   ( hospitalTransducer   , hospitalFoldFingerprint
test/conformance-newsurface/Generated/TransferRouting/HospitalLoad/ReadModel.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from readmodel hospital_load; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from readmodel hospital_load; do not edit. module Generated.TransferRouting.HospitalLoad.ReadModel   ( hospitalLoadReadModel   , hospitalLoadQualifiedTable
test/conformance-newsurface/Generated/TransferRouting/HospitalLoad/ReadModelHarness.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from readmodel hospital_load; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from readmodel hospital_load; do not edit. module Generated.TransferRouting.HospitalLoad.ReadModelHarness (readModelFacts, readModelFactResults, runReadModelFacts) where  import Generated.TransferRouting.HospitalLoad.ReadModel (hospitalLoadReadModel, hospitalLoadAsyncProjection)
test/conformance-newsurface/Generated/TransferRouting/HospitalLoad/ReadModelTable.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from readmodel hospital_load; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from readmodel hospital_load; do not edit. module Generated.TransferRouting.HospitalLoad.ReadModelTable (hospitalLoadQualifiedTable) where  import Data.Text (Text)
test/conformance-newsurface/Generated/TransferRouting/HospitalTransferRouter/Router.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from router HospitalTransferRouter; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from router HospitalTransferRouter; do not edit. module Generated.TransferRouting.HospitalTransferRouter.Router   ( hospitalTransferRouterName   , hospitalTransferRouterWorkerOptions
test/conformance-newsurface/Generated/TransferRouting/HospitalTransferRouter/RouterHarness.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from router HospitalTransferRouter; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from router HospitalTransferRouter; do not edit. module Generated.TransferRouting.HospitalTransferRouter.RouterHarness (routerHarnessValues) where  routerHarnessValues :: [(String, String)]
test/conformance-newsurface/Generated/TransferRouting/ReplayAudit.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context transfer-routing replay-audit assembly; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context transfer-routing replay-audit assembly; do not edit. -- -- Deployment contract: --   * replay-neutral diff: no data audit is required;
test/conformance-nominal-query-only/Generated/MappedNominalQueryOnly/Nominals.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context mapped-nominal-query-only generated nominal declarations; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context mapped-nominal-query-only generated nominal declarations; do not edit. module Generated.MappedNominalQueryOnly.Nominals   ( TemplateId   , parseTemplateId
test/conformance-nominal-query-only/Generated/MappedNominalQueryOnly/Nominals/Internal.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context mapped-nominal-query-only generated nominal ID internals; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context mapped-nominal-query-only generated nominal ID internals; do not edit. module Generated.MappedNominalQueryOnly.Nominals.Internal   ( TemplateId   , parseTemplateId
test/conformance-nominal-query-only/Generated/MappedNominalQueryOnly/ProjectionCatalog.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from projection-catalog mapped-nominal-query-only; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from projection-catalog mapped-nominal-query-only; do not edit. {-# LANGUAGE OverloadedStrings #-} module Generated.MappedNominalQueryOnly.ProjectionCatalog   ( projectionCatalog
test/conformance-nominal-query-only/Generated/MappedNominalQueryOnly/StructuralConformance.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context mapped-nominal-query-only structural conformance; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context mapped-nominal-query-only structural conformance; do not edit. module Generated.MappedNominalQueryOnly.StructuralConformance   ( structuralConformanceAssertions   ) where
test/conformance-nominal-query-only/Generated/MappedNominalQueryOnly/TemplateLookup/QueryContract.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from readmodel template_lookup; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from readmodel template_lookup; do not edit. module Generated.MappedNominalQueryOnly.TemplateLookup.QueryContract   ( TemplateLookupQueryInput   , TemplateLookupQueryResult
test/conformance-nominal-query-only/Generated/MappedNominalQueryOnly/TemplateLookup/ReadModel.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from readmodel template_lookup; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from readmodel template_lookup; do not edit. module Generated.MappedNominalQueryOnly.TemplateLookup.ReadModel   ( templateLookupReadModel   , templateLookupQualifiedTable
test/conformance-nominal-query-only/Generated/MappedNominalQueryOnly/TemplateLookup/ReadModelHarness.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from readmodel template_lookup; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from readmodel template_lookup; do not edit. module Generated.MappedNominalQueryOnly.TemplateLookup.ReadModelHarness (readModelFacts, readModelFactResults, runReadModelFacts, catalogFactsAgainst) where  import Generated.MappedNominalQueryOnly.TemplateLookup.ReadModel (templateLookupReadModel)
test/conformance-nominal-query-only/Generated/MappedNominalQueryOnly/TemplateLookup/ReadModelTable.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from readmodel template_lookup; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from readmodel template_lookup; do not edit. module Generated.MappedNominalQueryOnly.TemplateLookup.ReadModelTable (templateLookupQualifiedTable) where  import Data.Text (Text)
test/conformance-nominal-queue-only/Generated/MappedNominalQueueOnly/Nominals.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context mapped-nominal-queue-only generated nominal declarations; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context mapped-nominal-queue-only generated nominal declarations; do not edit. module Generated.MappedNominalQueueOnly.Nominals   ( TemplateId   , parseTemplateId
test/conformance-nominal-queue-only/Generated/MappedNominalQueueOnly/Nominals/Internal.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context mapped-nominal-queue-only generated nominal ID internals; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context mapped-nominal-queue-only generated nominal ID internals; do not edit. module Generated.MappedNominalQueueOnly.Nominals.Internal   ( TemplateId   , parseTemplateId
test/conformance-nominal-queue-only/Generated/MappedNominalQueueOnly/Structural/NominalLeaves.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context mapped-nominal-queue-only structural nominal leaves; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context mapped-nominal-queue-only structural nominal leaves; do not edit. module Generated.MappedNominalQueueOnly.Structural.NominalLeaves where  import Data.Aeson (Value (..), withText)
test/conformance-nominal-queue-only/Generated/MappedNominalQueueOnly/StructuralConformance.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context mapped-nominal-queue-only structural conformance; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context mapped-nominal-queue-only structural conformance; do not edit. module Generated.MappedNominalQueueOnly.StructuralConformance   ( structuralConformanceAssertions   ) where
test/conformance-nominal-queue-only/Generated/MappedNominalQueueOnly/TemplateWork/Queue.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from workqueue template_work; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from workqueue template_work; do not edit. module Generated.MappedNominalQueueOnly.TemplateWork.Queue   ( TemplateWork (..)   , encodeTemplateWork
test/conformance-nominal-queue-only/Generated/MappedNominalQueueOnly/TemplateWork/QueueCodec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from workqueue template_work; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from workqueue template_work; do not edit. -- | Versioned job payload envelope: @{\"v\",\"t\",\"data\"}@. -- -- Deploy workers before producers when raising its schema version. Do not
test/conformance-nominal-queue-only/Generated/MappedNominalQueueOnly/TemplateWork/QueuePolicy.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from workqueue template_work; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from workqueue template_work; do not edit. module Generated.MappedNominalQueueOnly.TemplateWork.QueuePolicy   ( TemplateWorkOutcome (..)   , retryPolicy, jobOutcomeFor
test/conformance-nominal-scalars/Generated/NominalScalars/BehaviorSourceMap.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context nominal-scalars behavior source map; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context nominal-scalars behavior source map; do not edit. module Generated.NominalScalars.BehaviorSourceMap   ( BehaviorSourceLocation (..)   , behaviorSourceLocation
test/conformance-nominal-scalars/Generated/NominalScalars/Nominal/Shape/OrderStatus.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from bound nominal enum representation OrderStatus; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from bound nominal enum representation OrderStatus; do not edit. module Generated.NominalScalars.Nominal.Shape.OrderStatus (OrderStatusRepresentation (..), orderStatusRepresentationText) where  import Data.Text (Text)
test/conformance-nominal-scalars/Generated/NominalScalars/NominalLedger/BehaviorContract.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate NominalLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate NominalLedger; do not edit. module Generated.NominalScalars.NominalLedger.BehaviorContract   ( BehaviorKey (..)   , unBehaviorKey
test/conformance-nominal-scalars/Generated/NominalScalars/NominalLedger/Codec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate NominalLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate NominalLedger; do not edit. module Generated.NominalScalars.NominalLedger.Codec (     nominalLedgerCodec,     parseNominalLedgerEvent,
test/conformance-nominal-scalars/Generated/NominalScalars/NominalLedger/Domain.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE TemplateHaskell #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate NominalLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate NominalLedger; do not edit. module Generated.NominalScalars.NominalLedger.Domain where  import Data.Aeson (FromJSON, ToJSON)
test/conformance-nominal-scalars/Generated/NominalScalars/NominalLedger/EventStream.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate NominalLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate NominalLedger; do not edit. module Generated.NominalScalars.NominalLedger.EventStream   ( nominalLedgerCategory   , nominalLedgerCommandCategory
test/conformance-nominal-scalars/Generated/NominalScalars/NominalLedger/Harness.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE OverloadedLabels #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate NominalLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate NominalLedger; do not edit. module Generated.NominalScalars.NominalLedger.Harness (harnessAssertions) where  import Generated.NominalScalars.NominalLedger.Domain
test/conformance-nominal-scalars/Generated/NominalScalars/NominalLedger/Projection.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate NominalLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate NominalLedger; do not edit. module Generated.NominalScalars.NominalLedger.Projection () where  -- No projection declarations are present; this module keeps the generated manifest inventory total.
test/conformance-nominal-scalars/Generated/NominalScalars/NominalLedger/Transducer.hs view
@@ -1,7 +1,7 @@ {-# LANGUAGE BlockArguments #-} {-# LANGUAGE OverloadedLabels #-} {-# LANGUAGE QualifiedDo #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate NominalLedger; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate NominalLedger; do not edit. module Generated.NominalScalars.NominalLedger.Transducer   ( nominalLedgerTransducer   , nominalLedgerFoldFingerprint
test/conformance-nominal-scalars/Generated/NominalScalars/NominalProjections.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE TypeFamilies #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context nominal-scalars nominal scalar projection facade; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context nominal-scalars nominal scalar projection facade; do not edit. module Generated.NominalScalars.NominalProjections where  import Data.KindID qualified as KindID
test/conformance-nominal-scalars/Generated/NominalScalars/ReplayAudit.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context nominal-scalars replay-audit assembly; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context nominal-scalars replay-audit assembly; do not edit. -- -- Deployment contract: --   * replay-neutral diff: no data audit is required;
test/conformance-nominal-scalars/Main.hs view
@@ -10,6 +10,7 @@ import Control.Monad (forM_, unless) import Data.Aeson (Value (..), object, toJSON, (.=)) import Data.Aeson.Key (Key)+import Data.List (sortOn) import qualified Data.Aeson.KeyMap as KeyMap import qualified Data.KindID as KindID import qualified Data.List.NonEmpty as NE@@ -227,10 +228,11 @@             (\fixture -> encodeRepresentation (nominalFixtureDomain fixture) == nominalFixtureWire fixture)             (NE.toList (nominalFixtureCases fixtures)) +-- Coverage is a set property: supplied fixture order is not a contract. enumCoverage :: Bool enumCoverage =-    representations == [Representation.Draft, Representation.Submitted]-        && wires == [String "draft", String "submitted"]+    sortOn fst (zip representations wires)+        == [(Representation.Draft, String "draft"), (Representation.Submitted, String "submitted")]   where     fixtures = NE.toList (nominalFixtureCases Bindings.orderStatusFixtures)     representations = map (nominalToRepresentation Bindings.orderStatusBinding . nominalFixtureDomain) fixtures
test/conformance-process-full/Generated/SurgeDemo/BehaviorSourceMap.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context surge-demo behavior source map; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context surge-demo behavior source map; do not edit. module Generated.SurgeDemo.BehaviorSourceMap   ( BehaviorSourceLocation (..)   , behaviorSourceLocation
test/conformance-process-full/Generated/SurgeDemo/Hospital/BehaviorContract.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit. module Generated.SurgeDemo.Hospital.BehaviorContract   ( BehaviorKey (..)   , unBehaviorKey
test/conformance-process-full/Generated/SurgeDemo/Hospital/Codec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit. module Generated.SurgeDemo.Hospital.Codec (     hospitalCodec,     parseHospitalEvent,
test/conformance-process-full/Generated/SurgeDemo/Hospital/Domain.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE TemplateHaskell #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit. module Generated.SurgeDemo.Hospital.Domain where  import GHC.Generics (Generic)
test/conformance-process-full/Generated/SurgeDemo/Hospital/EventStream.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit. module Generated.SurgeDemo.Hospital.EventStream   ( hospitalCategory   , hospitalCommandCategory
test/conformance-process-full/Generated/SurgeDemo/Hospital/Harness.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit. module Generated.SurgeDemo.Hospital.Harness (harnessAssertions) where  import Generated.SurgeDemo.Hospital.Domain
test/conformance-process-full/Generated/SurgeDemo/Hospital/Projection.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit. module Generated.SurgeDemo.Hospital.Projection   ( hospitalProjection   , hospitalStatusFor
test/conformance-process-full/Generated/SurgeDemo/Hospital/Transducer.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE BlockArguments #-} {-# LANGUAGE QualifiedDo #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Hospital; do not edit. module Generated.SurgeDemo.Hospital.Transducer   ( hospitalTransducer   , hospitalFoldFingerprint
test/conformance-process-full/Generated/SurgeDemo/Nominals.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context surge-demo generated nominal declarations; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context surge-demo generated nominal declarations; do not edit. module Generated.SurgeDemo.Nominals   ( HospitalId   , parseHospitalId
test/conformance-process-full/Generated/SurgeDemo/Nominals/Internal.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context surge-demo generated nominal ID internals; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context surge-demo generated nominal ID internals; do not edit. module Generated.SurgeDemo.Nominals.Internal   ( HospitalId   , parseHospitalId
test/conformance-process-full/Generated/SurgeDemo/ReplayAudit.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from context surge-demo replay-audit assembly; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from context surge-demo replay-audit assembly; do not edit. -- -- Deployment contract: --   * replay-neutral diff: no data audit is required;
test/conformance-process-full/Generated/SurgeDemo/Surge/BehaviorContract.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Surge; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Surge; do not edit. module Generated.SurgeDemo.Surge.BehaviorContract   ( BehaviorKey (..)   , unBehaviorKey
test/conformance-process-full/Generated/SurgeDemo/Surge/Codec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Surge; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Surge; do not edit. module Generated.SurgeDemo.Surge.Codec (     surgeCodec,     parseSurgeEvent,
test/conformance-process-full/Generated/SurgeDemo/Surge/Domain.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE TemplateHaskell #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Surge; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Surge; do not edit. module Generated.SurgeDemo.Surge.Domain where  import GHC.Generics (Generic)
test/conformance-process-full/Generated/SurgeDemo/Surge/EventStream.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Surge; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Surge; do not edit. module Generated.SurgeDemo.Surge.EventStream   ( surgeCategory   , surgeCommandCategory
test/conformance-process-full/Generated/SurgeDemo/Surge/Harness.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Surge; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Surge; do not edit. module Generated.SurgeDemo.Surge.Harness (harnessAssertions) where  import Generated.SurgeDemo.Surge.Domain
test/conformance-process-full/Generated/SurgeDemo/Surge/Projection.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Surge; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Surge; do not edit. module Generated.SurgeDemo.Surge.Projection   ( surgeProjection   , surgeStatusFor
test/conformance-process-full/Generated/SurgeDemo/Surge/Transducer.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE BlockArguments #-} {-# LANGUAGE QualifiedDo #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from aggregate Surge; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from aggregate Surge; do not edit. module Generated.SurgeDemo.Surge.Transducer   ( surgeTransducer   , surgeFoldFingerprint
test/conformance-process-full/Generated/SurgeDemo/SurgeFlow/Process.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from process SurgeFlow; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from process SurgeFlow; do not edit. module Generated.SurgeDemo.SurgeFlow.Process   ( surgeFlowProcessName   , surgeFlowCategory
test/conformance-process-full/Generated/SurgeDemo/SurgeFlow/ProcessHarness.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 4) from process SurgeFlow; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 4) from process SurgeFlow; do not edit. module Generated.SurgeDemo.SurgeFlow.ProcessHarness (processHarnessValues) where  -- | (label, value): the spec's deterministic process/timer decisions,
test/conformance-process-reactions/Generated/ProcessReactions/AuditOnly/Input.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE DeriveAnyClass #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from process input AuditOnly; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from process input AuditOnly; do not edit. module Generated.ProcessReactions.AuditOnly.Input (AuditOnlyInput (..)) where  import Data.Aeson (FromJSON, ToJSON)
test/conformance-process-reactions/Generated/ProcessReactions/AuditOnly/Process.hs view
@@ -1,5 +1,5 @@ {-# OPTIONS_GHC -Wno-missing-signatures #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from process reaction AuditOnly; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from process reaction AuditOnly; do not edit. module Generated.ProcessReactions.AuditOnly.Process   ( AuditOnlyInput (..)   , auditOnlyProcessName
test/conformance-process-reactions/Generated/ProcessReactions/AuditOnly/ProcessHarness.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from process AuditOnly; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from process AuditOnly; do not edit. module Generated.ProcessReactions.AuditOnly.ProcessHarness (processHarnessValues) where  -- | (label, value): the spec's deterministic process/timer decisions,
test/conformance-process-reactions/Generated/ProcessReactions/BehaviorSourceMap.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context process-reactions behavior source map; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context process-reactions behavior source map; do not edit. module Generated.ProcessReactions.BehaviorSourceMap   ( BehaviorSourceLocation (..)   , behaviorSourceLocation
test/conformance-process-reactions/Generated/ProcessReactions/Incident/BehaviorContract.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate Incident; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate Incident; do not edit. module Generated.ProcessReactions.Incident.BehaviorContract   ( BehaviorKey (..)   , unBehaviorKey
test/conformance-process-reactions/Generated/ProcessReactions/Incident/Codec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate Incident; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate Incident; do not edit. module Generated.ProcessReactions.Incident.Codec (     incidentCodec,     parseIncidentEvent,
test/conformance-process-reactions/Generated/ProcessReactions/Incident/Domain.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE TemplateHaskell #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate Incident; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate Incident; do not edit. module Generated.ProcessReactions.Incident.Domain where  import GHC.Generics (Generic)
test/conformance-process-reactions/Generated/ProcessReactions/Incident/EventStream.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate Incident; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate Incident; do not edit. module Generated.ProcessReactions.Incident.EventStream   ( incidentCategory   , incidentCommandCategory
test/conformance-process-reactions/Generated/ProcessReactions/Incident/Harness.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate Incident; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate Incident; do not edit. module Generated.ProcessReactions.Incident.Harness (harnessAssertions) where  import Generated.ProcessReactions.Incident.Domain
test/conformance-process-reactions/Generated/ProcessReactions/Incident/Projection.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate Incident; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate Incident; do not edit. module Generated.ProcessReactions.Incident.Projection () where  -- No projection declarations are present; this module keeps the generated manifest inventory total.
test/conformance-process-reactions/Generated/ProcessReactions/Incident/Transducer.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE BlockArguments #-} {-# LANGUAGE QualifiedDo #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate Incident; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate Incident; do not edit. module Generated.ProcessReactions.Incident.Transducer   ( incidentTransducer   , incidentFoldFingerprint
test/conformance-process-reactions/Generated/ProcessReactions/IncidentReaction/Input.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE DeriveAnyClass #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from process input IncidentReaction; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from process input IncidentReaction; do not edit. module Generated.ProcessReactions.IncidentReaction.Input (IncidentReactionInput (..)) where  import Data.Aeson (FromJSON, ToJSON)
test/conformance-process-reactions/Generated/ProcessReactions/IncidentReaction/Process.hs view
@@ -1,5 +1,5 @@ {-# OPTIONS_GHC -Wno-missing-signatures #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from process reaction IncidentReaction; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from process reaction IncidentReaction; do not edit. module Generated.ProcessReactions.IncidentReaction.Process   ( IncidentReactionInput (..)   , incidentReactionProcessName
test/conformance-process-reactions/Generated/ProcessReactions/IncidentReaction/ProcessHarness.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from process IncidentReaction; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from process IncidentReaction; do not edit. module Generated.ProcessReactions.IncidentReaction.ProcessHarness (processHarnessValues) where  -- | (label, value): the spec's deterministic process/timer decisions,
test/conformance-process-reactions/Generated/ProcessReactions/IncidentSaga/BehaviorContract.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate IncidentSaga; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate IncidentSaga; do not edit. module Generated.ProcessReactions.IncidentSaga.BehaviorContract   ( BehaviorKey (..)   , unBehaviorKey
test/conformance-process-reactions/Generated/ProcessReactions/IncidentSaga/Codec.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate IncidentSaga; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate IncidentSaga; do not edit. module Generated.ProcessReactions.IncidentSaga.Codec (     incidentSagaCodec,     parseIncidentSagaEvent,
test/conformance-process-reactions/Generated/ProcessReactions/IncidentSaga/Domain.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE TemplateHaskell #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate IncidentSaga; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate IncidentSaga; do not edit. module Generated.ProcessReactions.IncidentSaga.Domain where  import GHC.Generics (Generic)
test/conformance-process-reactions/Generated/ProcessReactions/IncidentSaga/EventStream.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate IncidentSaga; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate IncidentSaga; do not edit. module Generated.ProcessReactions.IncidentSaga.EventStream   ( incidentSagaCategory   , incidentSagaCommandCategory
test/conformance-process-reactions/Generated/ProcessReactions/IncidentSaga/Harness.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate IncidentSaga; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate IncidentSaga; do not edit. module Generated.ProcessReactions.IncidentSaga.Harness (harnessAssertions) where  import Generated.ProcessReactions.IncidentSaga.Domain
test/conformance-process-reactions/Generated/ProcessReactions/IncidentSaga/Projection.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate IncidentSaga; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate IncidentSaga; do not edit. module Generated.ProcessReactions.IncidentSaga.Projection () where  -- No projection declarations are present; this module keeps the generated manifest inventory total.
test/conformance-process-reactions/Generated/ProcessReactions/IncidentSaga/Transducer.hs view
@@ -1,6 +1,6 @@ {-# LANGUAGE BlockArguments #-} {-# LANGUAGE QualifiedDo #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from aggregate IncidentSaga; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from aggregate IncidentSaga; do not edit. module Generated.ProcessReactions.IncidentSaga.Transducer   ( incidentSagaTransducer   , incidentSagaFoldFingerprint
test/conformance-process-reactions/Generated/ProcessReactions/Nominals.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE DeriveAnyClass #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context process-reactions generated nominal declarations; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context process-reactions generated nominal declarations; do not edit. module Generated.ProcessReactions.Nominals   ( IncidentId   , parseIncidentId
test/conformance-process-reactions/Generated/ProcessReactions/Nominals/Internal.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context process-reactions generated nominal ID internals; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context process-reactions generated nominal ID internals; do not edit. module Generated.ProcessReactions.Nominals.Internal   ( IncidentId   , parseIncidentId
test/conformance-process-reactions/Generated/ProcessReactions/ReplayAudit.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from context process-reactions replay-audit assembly; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from context process-reactions replay-audit assembly; do not edit. -- -- Deployment contract: --   * replay-neutral diff: no data audit is required;
test/conformance-process-reactions/Generated/ProcessReactions/ScalingReaction/Input.hs view
@@ -1,5 +1,5 @@ {-# LANGUAGE DeriveAnyClass #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from process input ScalingReaction; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from process input ScalingReaction; do not edit. module Generated.ProcessReactions.ScalingReaction.Input (ScalingReactionInput (..)) where  import Data.Aeson (FromJSON, ToJSON)
test/conformance-process-reactions/Generated/ProcessReactions/ScalingReaction/Process.hs view
@@ -1,5 +1,5 @@ {-# OPTIONS_GHC -Wno-missing-signatures #-}--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from process reaction ScalingReaction; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from process reaction ScalingReaction; do not edit. module Generated.ProcessReactions.ScalingReaction.Process   ( ScalingReactionInput (..)   , scalingReactionProcessName
test/conformance-process-reactions/Generated/ProcessReactions/ScalingReaction/ProcessHarness.hs view
@@ -1,4 +1,4 @@--- @generated by keiro-dsl 0.21.0.0 (language keiro-dsl 6) from process ScalingReaction; do not edit.+-- @generated by keiro-dsl 0.22.0.0 (language keiro-dsl 6) from process ScalingReaction; do not edit. module Generated.ProcessReactions.ScalingReaction.ProcessHarness (processHarnessValues) where  -- | (label, value): the spec's deterministic process/timer decisions,
test/conformance-process-reactions/Main.hs view

file too large to diff

− test/conformance-process-reactions/keiro-dsl-cabal-fragment.context.process-reactions-minimal.txt

file too large to diff

test/conformance-process-runtime/Generated/HospitalCapacity/BehaviorSourceMap.hs view

file too large to diff

test/conformance-process-runtime/Generated/HospitalCapacity/Hospital/BehaviorContract.hs view

file too large to diff

test/conformance-process-runtime/Generated/HospitalCapacity/Hospital/Codec.hs view

file too large to diff

test/conformance-process-runtime/Generated/HospitalCapacity/Hospital/Domain.hs view

file too large to diff

test/conformance-process-runtime/Generated/HospitalCapacity/Hospital/EventStream.hs view

file too large to diff

test/conformance-process-runtime/Generated/HospitalCapacity/Hospital/Harness.hs view

file too large to diff

test/conformance-process-runtime/Generated/HospitalCapacity/Hospital/Projection.hs view

file too large to diff

test/conformance-process-runtime/Generated/HospitalCapacity/Hospital/Transducer.hs view

file too large to diff

test/conformance-process-runtime/Generated/HospitalCapacity/HospitalSurge/Process.hs view

file too large to diff

test/conformance-process-runtime/Generated/HospitalCapacity/HospitalSurge/ProcessHarness.hs view

file too large to diff

test/conformance-process-runtime/Generated/HospitalCapacity/Nominals.hs view

file too large to diff

test/conformance-process-runtime/Generated/HospitalCapacity/Nominals/Internal.hs view

file too large to diff

test/conformance-process-runtime/Generated/HospitalCapacity/ReplayAudit.hs view

file too large to diff

test/conformance-process-runtime/Generated/HospitalCapacity/Surge/BehaviorContract.hs view

file too large to diff

test/conformance-process-runtime/Generated/HospitalCapacity/Surge/Codec.hs view

file too large to diff

test/conformance-process-runtime/Generated/HospitalCapacity/Surge/Domain.hs view

file too large to diff

test/conformance-process-runtime/Generated/HospitalCapacity/Surge/EventStream.hs view

file too large to diff

test/conformance-process-runtime/Generated/HospitalCapacity/Surge/Harness.hs view

file too large to diff

test/conformance-process-runtime/Generated/HospitalCapacity/Surge/Projection.hs view

file too large to diff

test/conformance-process-runtime/Generated/HospitalCapacity/Surge/Transducer.hs view

file too large to diff

test/conformance-process-state-authority/Generated/IncidentResponse/BehaviorSourceMap.hs view

file too large to diff

test/conformance-process-state-authority/Generated/IncidentResponse/Escalation/BehaviorContract.hs view

file too large to diff

test/conformance-process-state-authority/Generated/IncidentResponse/Escalation/Codec.hs view

file too large to diff

test/conformance-process-state-authority/Generated/IncidentResponse/Escalation/Domain.hs view

file too large to diff

test/conformance-process-state-authority/Generated/IncidentResponse/Escalation/EventStream.hs view

file too large to diff

test/conformance-process-state-authority/Generated/IncidentResponse/Escalation/Harness.hs view

file too large to diff

test/conformance-process-state-authority/Generated/IncidentResponse/Escalation/Projection.hs view

file too large to diff

test/conformance-process-state-authority/Generated/IncidentResponse/Escalation/Transducer.hs view

file too large to diff

test/conformance-process-state-authority/Generated/IncidentResponse/Incident/BehaviorContract.hs view

file too large to diff

test/conformance-process-state-authority/Generated/IncidentResponse/Incident/Codec.hs view

file too large to diff

test/conformance-process-state-authority/Generated/IncidentResponse/Incident/Domain.hs view

file too large to diff

test/conformance-process-state-authority/Generated/IncidentResponse/Incident/EventStream.hs view

file too large to diff

test/conformance-process-state-authority/Generated/IncidentResponse/Incident/Harness.hs view

file too large to diff

test/conformance-process-state-authority/Generated/IncidentResponse/Incident/Projection.hs view

file too large to diff

test/conformance-process-state-authority/Generated/IncidentResponse/Incident/Transducer.hs view

file too large to diff

test/conformance-process-state-authority/Generated/IncidentResponse/IncidentEscalation/Input.hs view

file too large to diff

test/conformance-process-state-authority/Generated/IncidentResponse/IncidentEscalation/Process.hs view

file too large to diff

test/conformance-process-state-authority/Generated/IncidentResponse/IncidentEscalation/ProcessHarness.hs view

file too large to diff

test/conformance-process-state-authority/Generated/IncidentResponse/Nominals.hs view

file too large to diff

test/conformance-process-state-authority/Generated/IncidentResponse/Nominals/Internal.hs view

file too large to diff

test/conformance-process-state-authority/Generated/IncidentResponse/ReplayAudit.hs view

file too large to diff

test/conformance-process-timers/Generated/ProcessTimers/BehaviorSourceMap.hs view

file too large to diff

test/conformance-process-timers/Generated/ProcessTimers/Incident/BehaviorContract.hs view

file too large to diff

test/conformance-process-timers/Generated/ProcessTimers/Incident/Codec.hs view

file too large to diff

test/conformance-process-timers/Generated/ProcessTimers/Incident/Domain.hs view

file too large to diff

test/conformance-process-timers/Generated/ProcessTimers/Incident/EventStream.hs view

file too large to diff

test/conformance-process-timers/Generated/ProcessTimers/Incident/Harness.hs view

file too large to diff

test/conformance-process-timers/Generated/ProcessTimers/Incident/Projection.hs view

file too large to diff

test/conformance-process-timers/Generated/ProcessTimers/Incident/Transducer.hs view

file too large to diff

test/conformance-process-timers/Generated/ProcessTimers/IncidentSaga/BehaviorContract.hs view

file too large to diff

test/conformance-process-timers/Generated/ProcessTimers/IncidentSaga/Codec.hs view

file too large to diff

test/conformance-process-timers/Generated/ProcessTimers/IncidentSaga/Domain.hs view

file too large to diff

test/conformance-process-timers/Generated/ProcessTimers/IncidentSaga/EventStream.hs view

file too large to diff

test/conformance-process-timers/Generated/ProcessTimers/IncidentSaga/Harness.hs view

file too large to diff

test/conformance-process-timers/Generated/ProcessTimers/IncidentSaga/Projection.hs view

file too large to diff

test/conformance-process-timers/Generated/ProcessTimers/IncidentSaga/Transducer.hs view

file too large to diff

test/conformance-process-timers/Generated/ProcessTimers/IncidentTimers/Input.hs view

file too large to diff

test/conformance-process-timers/Generated/ProcessTimers/IncidentTimers/Process.hs view

file too large to diff

test/conformance-process-timers/Generated/ProcessTimers/IncidentTimers/ProcessHarness.hs view

file too large to diff

test/conformance-process-timers/Generated/ProcessTimers/Nominals.hs view

file too large to diff

test/conformance-process-timers/Generated/ProcessTimers/Nominals/Internal.hs view

file too large to diff

test/conformance-process-timers/Generated/ProcessTimers/ReplayAudit.hs view

file too large to diff

test/conformance-process/Generated/HospitalCapacity/BehaviorSourceMap.hs view

file too large to diff

test/conformance-process/Generated/HospitalCapacity/Hospital/BehaviorContract.hs view

file too large to diff

test/conformance-process/Generated/HospitalCapacity/Hospital/Codec.hs view

file too large to diff

test/conformance-process/Generated/HospitalCapacity/Hospital/Domain.hs view

file too large to diff

test/conformance-process/Generated/HospitalCapacity/Hospital/EventStream.hs view

file too large to diff

test/conformance-process/Generated/HospitalCapacity/Hospital/Harness.hs view

file too large to diff

test/conformance-process/Generated/HospitalCapacity/Hospital/Projection.hs view

file too large to diff

test/conformance-process/Generated/HospitalCapacity/Hospital/Transducer.hs view

file too large to diff

test/conformance-process/Generated/HospitalCapacity/HospitalSurge/Process.hs view

file too large to diff

test/conformance-process/Generated/HospitalCapacity/HospitalSurge/ProcessHarness.hs view

file too large to diff

test/conformance-process/Generated/HospitalCapacity/Nominals.hs view

file too large to diff

test/conformance-process/Generated/HospitalCapacity/Nominals/Internal.hs view

file too large to diff

test/conformance-process/Generated/HospitalCapacity/ReplayAudit.hs view

file too large to diff

test/conformance-process/Generated/HospitalCapacity/Surge/BehaviorContract.hs view

file too large to diff

test/conformance-process/Generated/HospitalCapacity/Surge/Codec.hs view

file too large to diff

test/conformance-process/Generated/HospitalCapacity/Surge/Domain.hs view

file too large to diff

test/conformance-process/Generated/HospitalCapacity/Surge/EventStream.hs view

file too large to diff

test/conformance-process/Generated/HospitalCapacity/Surge/Harness.hs view

file too large to diff

test/conformance-process/Generated/HospitalCapacity/Surge/Projection.hs view

file too large to diff

test/conformance-process/Generated/HospitalCapacity/Surge/Transducer.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/BehaviorSourceMap.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/CatalogAudit/ReadModel.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/CatalogAudit/ReadModelHarness.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/CatalogAudit/ReadModelTable.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/OrderInline/QueryContract.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/OrderInline/ReadModel.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/OrderInline/ReadModelHarness.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/OrderInline/ReadModelTable.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/OrderTotalsLookup/ReadModel.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/OrderTotalsLookup/ReadModelHarness.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/OrderTotalsLookup/ReadModelTable.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/Orders/BehaviorContract.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/Orders/Codec.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/Orders/Domain.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/Orders/EventStream.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/Orders/Harness.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/Orders/Projection.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/Orders/Transducer.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/ProjectionCatalog.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/QualificationJobs/Queue.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/QualificationJobs/QueueCodec.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/QualificationJobs/QueuePolicy.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/ReplayAudit.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/ShipmentLookup/ReadModel.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/ShipmentLookup/ReadModelHarness.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/ShipmentLookup/ReadModelTable.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/Shipments/BehaviorContract.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/Shipments/Codec.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/Shipments/Domain.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/Shipments/EventStream.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/Shipments/Harness.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/Shipments/Projection.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/Shipments/Transducer.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/Structural/Shape/QualificationPayload.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/StructuralConformance.hs view

file too large to diff

test/conformance-projection-catalog/Generated/CatalogDemo/StructuralProjections.hs view

file too large to diff

test/conformance-publisher-runtime/Generated/HospitalCapacity/Emergency/Contract.hs view

file too large to diff

test/conformance-publisher-runtime/Generated/HospitalCapacity/HospitalPublisher/Publisher.hs view

file too large to diff

test/conformance-queue-runtime/Generated/HospitalCapacity/AcceptedTransferNeeds/ReadModel.hs view

file too large to diff

test/conformance-queue-runtime/Generated/HospitalCapacity/AcceptedTransferNeeds/ReadModelHarness.hs view

file too large to diff

test/conformance-queue-runtime/Generated/HospitalCapacity/AcceptedTransferNeeds/ReadModelTable.hs view

file too large to diff

test/conformance-queue-runtime/Generated/HospitalCapacity/ReservationWork/Queue.hs view

file too large to diff

test/conformance-queue-runtime/Generated/HospitalCapacity/ReservationWork/QueueCodec.hs view

file too large to diff

test/conformance-queue-runtime/Generated/HospitalCapacity/ReservationWork/QueuePolicy.hs view

file too large to diff

test/conformance-queue-runtime/Generated/HospitalCapacity/TransferDecisions/ReadModel.hs view

file too large to diff

test/conformance-queue-runtime/Generated/HospitalCapacity/TransferDecisions/ReadModelHarness.hs view

file too large to diff

test/conformance-queue-runtime/Generated/HospitalCapacity/TransferDecisions/ReadModelTable.hs view

file too large to diff

test/conformance-queue/Generated/HospitalCapacity/AcceptedTransferNeeds/ReadModel.hs view

file too large to diff

test/conformance-queue/Generated/HospitalCapacity/AcceptedTransferNeeds/ReadModelHarness.hs view

file too large to diff

test/conformance-queue/Generated/HospitalCapacity/AcceptedTransferNeeds/ReadModelTable.hs view

file too large to diff

test/conformance-queue/Generated/HospitalCapacity/ReservationWork/Queue.hs view

file too large to diff

test/conformance-queue/Generated/HospitalCapacity/ReservationWork/QueueCodec.hs view

file too large to diff

test/conformance-queue/Generated/HospitalCapacity/ReservationWork/QueuePolicy.hs view

file too large to diff

test/conformance-queue/Generated/HospitalCapacity/TransferDecisions/ReadModel.hs view

file too large to diff

test/conformance-queue/Generated/HospitalCapacity/TransferDecisions/ReadModelHarness.hs view

file too large to diff

test/conformance-queue/Generated/HospitalCapacity/TransferDecisions/ReadModelTable.hs view

file too large to diff

test/conformance-readmodel-runtime/Generated/HospitalCapacity/TransferDecisions/ReadModel.hs view

file too large to diff

test/conformance-readmodel-runtime/Generated/HospitalCapacity/TransferDecisions/ReadModelHarness.hs view

file too large to diff

test/conformance-readmodel-runtime/Generated/HospitalCapacity/TransferDecisions/ReadModelTable.hs view

file too large to diff

test/conformance-refined-base16/Generated/RefinedBase16/BehaviorSourceMap.hs view

file too large to diff

test/conformance-refined-base16/Generated/RefinedBase16/HashJobs/Queue.hs view

file too large to diff

test/conformance-refined-base16/Generated/RefinedBase16/HashJobs/QueueCodec.hs view

file too large to diff

test/conformance-refined-base16/Generated/RefinedBase16/HashJobs/QueuePolicy.hs view

file too large to diff

test/conformance-refined-base16/Generated/RefinedBase16/HashLookup/QueryContract.hs view

file too large to diff

test/conformance-refined-base16/Generated/RefinedBase16/HashLookup/ReadModel.hs view

file too large to diff

test/conformance-refined-base16/Generated/RefinedBase16/HashLookup/ReadModelHarness.hs view

file too large to diff

test/conformance-refined-base16/Generated/RefinedBase16/HashLookup/ReadModelTable.hs view

file too large to diff

test/conformance-refined-base16/Generated/RefinedBase16/HashStore/BehaviorContract.hs view

file too large to diff

test/conformance-refined-base16/Generated/RefinedBase16/HashStore/Codec.hs view

file too large to diff

test/conformance-refined-base16/Generated/RefinedBase16/HashStore/Domain.hs view

file too large to diff

test/conformance-refined-base16/Generated/RefinedBase16/HashStore/EventStream.hs view

file too large to diff

test/conformance-refined-base16/Generated/RefinedBase16/HashStore/Harness.hs view

file too large to diff

test/conformance-refined-base16/Generated/RefinedBase16/HashStore/Projection.hs view

file too large to diff

test/conformance-refined-base16/Generated/RefinedBase16/HashStore/Transducer.hs view

file too large to diff

test/conformance-refined-base16/Generated/RefinedBase16/ProjectionCatalog.hs view

file too large to diff

test/conformance-refined-base16/Generated/RefinedBase16/ReplayAudit.hs view

file too large to diff

test/conformance-refined-base16/Generated/RefinedBase16/Structural/Shape/ContentHash.hs view

file too large to diff

test/conformance-refined-base16/Generated/RefinedBase16/Structural/Shape/HashEnvelope.hs view

file too large to diff

test/conformance-refined-base16/Generated/RefinedBase16/Structural/Shape/MaybeContentHash.hs view

file too large to diff

test/conformance-refined-base16/Generated/RefinedBase16/StructuralConformance.hs view

file too large to diff

test/conformance-replay/Generated/ReplayDivergence/BehaviorSourceMap.hs view

file too large to diff

test/conformance-replay/Generated/ReplayDivergence/Note/BehaviorContract.hs view

file too large to diff

test/conformance-replay/Generated/ReplayDivergence/Note/Codec.hs view

file too large to diff

test/conformance-replay/Generated/ReplayDivergence/Note/Domain.hs view

file too large to diff

test/conformance-replay/Generated/ReplayDivergence/Note/EventStream.hs view

file too large to diff

test/conformance-replay/Generated/ReplayDivergence/Note/Harness.hs view

file too large to diff

test/conformance-replay/Generated/ReplayDivergence/Note/Projection.hs view

file too large to diff

test/conformance-replay/Generated/ReplayDivergence/Note/Transducer.hs view

file too large to diff

test/conformance-replay/Generated/ReplayDivergence/ReplayAudit.hs view

file too large to diff

test/conformance-router-full/Generated/IncidentPaging/BehaviorSourceMap.hs view

file too large to diff

test/conformance-router-full/Generated/IncidentPaging/Page/BehaviorContract.hs view

file too large to diff

test/conformance-router-full/Generated/IncidentPaging/Page/Codec.hs view

file too large to diff

test/conformance-router-full/Generated/IncidentPaging/Page/Domain.hs view

file too large to diff

test/conformance-router-full/Generated/IncidentPaging/Page/EventStream.hs view

file too large to diff

test/conformance-router-full/Generated/IncidentPaging/Page/Harness.hs view

file too large to diff

test/conformance-router-full/Generated/IncidentPaging/Page/Projection.hs view

file too large to diff

test/conformance-router-full/Generated/IncidentPaging/Page/Transducer.hs view

file too large to diff

test/conformance-router-full/Generated/IncidentPaging/PagingRouter/Router.hs view

file too large to diff

test/conformance-router-full/Generated/IncidentPaging/PagingRouter/RouterHarness.hs view

file too large to diff

test/conformance-router-full/Generated/IncidentPaging/ReplayAudit.hs view

file too large to diff

test/conformance-router-full/Generated/IncidentPaging/ServiceOncall/ReadModel.hs view

file too large to diff

test/conformance-router-full/Generated/IncidentPaging/ServiceOncall/ReadModelHarness.hs view

file too large to diff

test/conformance-router-full/Generated/IncidentPaging/ServiceOncall/ReadModelTable.hs view

file too large to diff

test/conformance-router-runtime/Generated/IncidentPaging/BehaviorSourceMap.hs view

file too large to diff

test/conformance-router-runtime/Generated/IncidentPaging/Page/BehaviorContract.hs view

file too large to diff

test/conformance-router-runtime/Generated/IncidentPaging/Page/Codec.hs view

file too large to diff

test/conformance-router-runtime/Generated/IncidentPaging/Page/Domain.hs view

file too large to diff

test/conformance-router-runtime/Generated/IncidentPaging/Page/EventStream.hs view

file too large to diff

test/conformance-router-runtime/Generated/IncidentPaging/Page/Harness.hs view

file too large to diff

test/conformance-router-runtime/Generated/IncidentPaging/Page/Projection.hs view

file too large to diff

test/conformance-router-runtime/Generated/IncidentPaging/Page/Transducer.hs view

file too large to diff

test/conformance-router-runtime/Generated/IncidentPaging/PagingRouter/Router.hs view

file too large to diff

test/conformance-router-runtime/Generated/IncidentPaging/PagingRouter/RouterHarness.hs view

file too large to diff

test/conformance-router-runtime/Generated/IncidentPaging/ReplayAudit.hs view

file too large to diff

test/conformance-router-runtime/Generated/IncidentPaging/ServiceOncall/ReadModel.hs view

file too large to diff

test/conformance-router-runtime/Generated/IncidentPaging/ServiceOncall/ReadModelHarness.hs view

file too large to diff

test/conformance-router-runtime/Generated/IncidentPaging/ServiceOncall/ReadModelTable.hs view

file too large to diff

test/conformance-router/Generated/IncidentPaging/BehaviorSourceMap.hs view

file too large to diff

test/conformance-router/Generated/IncidentPaging/Page/BehaviorContract.hs view

file too large to diff

test/conformance-router/Generated/IncidentPaging/Page/Codec.hs view

file too large to diff

test/conformance-router/Generated/IncidentPaging/Page/Domain.hs view

file too large to diff

test/conformance-router/Generated/IncidentPaging/Page/EventStream.hs view

file too large to diff

test/conformance-router/Generated/IncidentPaging/Page/Harness.hs view

file too large to diff

test/conformance-router/Generated/IncidentPaging/Page/Projection.hs view

file too large to diff

test/conformance-router/Generated/IncidentPaging/Page/Transducer.hs view

file too large to diff

test/conformance-router/Generated/IncidentPaging/PagingRouter/Router.hs view

file too large to diff

test/conformance-router/Generated/IncidentPaging/PagingRouter/RouterHarness.hs view

file too large to diff

test/conformance-router/Generated/IncidentPaging/ReplayAudit.hs view

file too large to diff

test/conformance-router/Generated/IncidentPaging/ServiceOncall/ReadModel.hs view

file too large to diff

test/conformance-router/Generated/IncidentPaging/ServiceOncall/ReadModelHarness.hs view

file too large to diff

test/conformance-router/Generated/IncidentPaging/ServiceOncall/ReadModelTable.hs view

file too large to diff

test/conformance-scalar-expressions/Generated/AggregateScalarExpressions/BehaviorSourceMap.hs view

file too large to diff

test/conformance-scalar-expressions/Generated/AggregateScalarExpressions/Nominals.hs view

file too large to diff

test/conformance-scalar-expressions/Generated/AggregateScalarExpressions/Nominals/Internal.hs view

file too large to diff

test/conformance-scalar-expressions/Generated/AggregateScalarExpressions/ReplayAudit.hs view

file too large to diff

test/conformance-scalar-expressions/Generated/AggregateScalarExpressions/ScalarAccount/BehaviorContract.hs view

file too large to diff

test/conformance-scalar-expressions/Generated/AggregateScalarExpressions/ScalarAccount/Codec.hs view

file too large to diff

test/conformance-scalar-expressions/Generated/AggregateScalarExpressions/ScalarAccount/Domain.hs view

file too large to diff

test/conformance-scalar-expressions/Generated/AggregateScalarExpressions/ScalarAccount/EventStream.hs view

file too large to diff

test/conformance-scalar-expressions/Generated/AggregateScalarExpressions/ScalarAccount/Harness.hs view

file too large to diff

test/conformance-scalar-expressions/Generated/AggregateScalarExpressions/ScalarAccount/Projection.hs view

file too large to diff

test/conformance-scalar-expressions/Generated/AggregateScalarExpressions/ScalarAccount/Transducer.hs view

file too large to diff

test/conformance-scalar-expressions/Generated/AggregateScalarExpressions/Structural/Shape/Limits.hs view

file too large to diff

test/conformance-scalar-expressions/Generated/AggregateScalarExpressions/StructuralConformance.hs view

file too large to diff

test/conformance-scalar-expressions/Generated/AggregateScalarExpressions/StructuralProjections.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Alpha/Generated/BehaviorContract.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Alpha/Generated/Codec.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Alpha/Generated/Domain.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Alpha/Generated/EventStream.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Alpha/Generated/Harness.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Alpha/Generated/Projection.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Alpha/Generated/Transducer.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/AlphaView/Generated/ReadModel.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/AlphaView/Generated/ReadModelHarness.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/AlphaView/Generated/ReadModelTable.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Assignment/Generated/BehaviorContract.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Assignment/Generated/Codec.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Assignment/Generated/Domain.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Assignment/Generated/EventStream.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Assignment/Generated/Harness.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Assignment/Generated/Projection.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Assignment/Generated/Transducer.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Beta/Generated/BehaviorContract.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Beta/Generated/Codec.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Beta/Generated/Domain.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Beta/Generated/EventStream.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Beta/Generated/Harness.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Beta/Generated/Projection.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Beta/Generated/Transducer.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/BetaView/Generated/ReadModel.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/BetaView/Generated/ReadModelHarness.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/BetaView/Generated/ReadModelTable.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Generated/BehaviorSourceMap.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Generated/Conformance.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Generated/Nominals.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Generated/Nominals/Internal.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Generated/ReplayAudit.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/Generated/StructuralConformance.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/WorkspaceProofWorkflow/Generated/WorkflowFacts.hs view

file too large to diff

test/conformance-service-package/runtime/src/Proof/WorkspaceProof/WorkspaceProofWorkflow/Generated/WorkflowRuntime.hs view

file too large to diff

test/conformance-service-package/runtime/src/keiro-dsl-conformance.workspace.workspace-proof/keiro-dsl-conformance-ledger.txt view

file too large to diff

test/conformance-service-package/runtime/src/keiro-dsl-conformance.workspace.workspace-proof/keiro-workspace-proof-conformance.cabal view

file too large to diff

test/conformance-service-package/runtime/src/keiro-dsl-conformance.workspace.workspace-proof/src/Main.hs view

file too large to diff

− test/conformance-skeletons/SkelAggregate/keiro-dsl-manifest.my-service.txt

file too large to diff

− test/conformance-skeletons/SkelAggregate/keiro-dsl-scaffold-record.my-service.txt

file too large to diff

test/conformance-snapshot/Generated/HospitalCapacity/BehaviorSourceMap.hs view

file too large to diff

test/conformance-snapshot/Generated/HospitalCapacity/Nominals.hs view

file too large to diff

test/conformance-snapshot/Generated/HospitalCapacity/Nominals/Internal.hs view

file too large to diff

test/conformance-snapshot/Generated/HospitalCapacity/ReplayAudit.hs view

file too large to diff

test/conformance-snapshot/Generated/HospitalCapacity/Reservation/BehaviorContract.hs view

file too large to diff

test/conformance-snapshot/Generated/HospitalCapacity/Reservation/Codec.hs view

file too large to diff

test/conformance-snapshot/Generated/HospitalCapacity/Reservation/Domain.hs view

file too large to diff

test/conformance-snapshot/Generated/HospitalCapacity/Reservation/EventStream.hs view

file too large to diff

test/conformance-snapshot/Generated/HospitalCapacity/Reservation/Harness.hs view

file too large to diff

test/conformance-snapshot/Generated/HospitalCapacity/Reservation/Projection.hs view

file too large to diff

test/conformance-snapshot/Generated/HospitalCapacity/Reservation/Transducer.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/BehaviorSourceMap.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/Nominal/Shape/Channel.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/NominalProjections.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/Nominals.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/Nominals/Internal.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/ProjectionCatalog.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/ReplayAudit.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/Structural/NominalLeaves.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/Structural/Shape/TemplateBook.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/Structural/Shape/TemplateLookupInput.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/Structural/Shape/TemplateLookupRow.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/Structural/Shape/TemplateRef.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/Structural/Shape/TemplateState.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/StructuralConformance.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/StructuralProjections.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/TemplateCatalog/BehaviorContract.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/TemplateCatalog/Codec.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/TemplateCatalog/Domain.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/TemplateCatalog/EventStream.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/TemplateCatalog/Harness.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/TemplateCatalog/Projection.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/TemplateCatalog/Transducer.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/TemplateDeliveryRouter/Router.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/TemplateDeliveryRouter/RouterHarness.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/TemplateLookup/QueryContract.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/TemplateLookup/ReadModel.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/TemplateLookup/ReadModelHarness.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/TemplateLookup/ReadModelTable.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/TemplateWork/Queue.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/TemplateWork/QueueCodec.hs view

file too large to diff

test/conformance-structural-nominals/Generated/StructuralNominalLeaves/TemplateWork/QueuePolicy.hs view

file too large to diff

test/conformance-structural-text-sets/Generated/StructuralTextSets/BehaviorSourceMap.hs view

file too large to diff

test/conformance-structural-text-sets/Generated/StructuralTextSets/LabelJobs/Queue.hs view

file too large to diff

test/conformance-structural-text-sets/Generated/StructuralTextSets/LabelJobs/QueueCodec.hs view

file too large to diff

test/conformance-structural-text-sets/Generated/StructuralTextSets/LabelJobs/QueuePolicy.hs view

file too large to diff

test/conformance-structural-text-sets/Generated/StructuralTextSets/LabelLookup/QueryContract.hs view

file too large to diff

test/conformance-structural-text-sets/Generated/StructuralTextSets/LabelLookup/ReadModel.hs view

file too large to diff

test/conformance-structural-text-sets/Generated/StructuralTextSets/LabelLookup/ReadModelHarness.hs view

file too large to diff

test/conformance-structural-text-sets/Generated/StructuralTextSets/LabelLookup/ReadModelTable.hs view

file too large to diff

test/conformance-structural-text-sets/Generated/StructuralTextSets/LabelStore/BehaviorContract.hs view

file too large to diff

test/conformance-structural-text-sets/Generated/StructuralTextSets/LabelStore/Codec.hs view

file too large to diff

test/conformance-structural-text-sets/Generated/StructuralTextSets/LabelStore/Domain.hs view

file too large to diff

test/conformance-structural-text-sets/Generated/StructuralTextSets/LabelStore/EventStream.hs view

file too large to diff

test/conformance-structural-text-sets/Generated/StructuralTextSets/LabelStore/Harness.hs view

file too large to diff

test/conformance-structural-text-sets/Generated/StructuralTextSets/LabelStore/Projection.hs view

file too large to diff

test/conformance-structural-text-sets/Generated/StructuralTextSets/LabelStore/Transducer.hs view

file too large to diff

test/conformance-structural-text-sets/Generated/StructuralTextSets/ProjectionCatalog.hs view

file too large to diff

test/conformance-structural-text-sets/Generated/StructuralTextSets/ReplayAudit.hs view

file too large to diff

test/conformance-structural-text-sets/Generated/StructuralTextSets/Structural/Shape/LabelEnvelope.hs view

file too large to diff

test/conformance-structural-text-sets/Generated/StructuralTextSets/Structural/Shape/MaybeTextLabels.hs view

file too large to diff

test/conformance-structural-text-sets/Generated/StructuralTextSets/Structural/Shape/TextLabels.hs view

file too large to diff

test/conformance-structural-text-sets/Generated/StructuralTextSets/StructuralConformance.hs view

file too large to diff

test/conformance-structural/Generated/StructuralConformance/ArtifactCatalog/BehaviorContract.hs view

file too large to diff

test/conformance-structural/Generated/StructuralConformance/ArtifactCatalog/Codec.hs view

file too large to diff

test/conformance-structural/Generated/StructuralConformance/ArtifactCatalog/Domain.hs view

file too large to diff

test/conformance-structural/Generated/StructuralConformance/ArtifactCatalog/EventStream.hs view

file too large to diff

test/conformance-structural/Generated/StructuralConformance/ArtifactCatalog/Harness.hs view

file too large to diff

test/conformance-structural/Generated/StructuralConformance/ArtifactCatalog/Projection.hs view

file too large to diff

test/conformance-structural/Generated/StructuralConformance/ArtifactCatalog/Transducer.hs view

file too large to diff

test/conformance-structural/Generated/StructuralConformance/BehaviorSourceMap.hs view

file too large to diff

test/conformance-structural/Generated/StructuralConformance/ReplayAudit.hs view

file too large to diff

test/conformance-structural/Generated/StructuralConformance/Structural/Shape/ArtifactInfo.hs view

file too large to diff

test/conformance-structural/Generated/StructuralConformance/Structural/Shape/ArtifactKind.hs view

file too large to diff

test/conformance-structural/Generated/StructuralConformance/Structural/Shape/ArtifactLocation.hs view

file too large to diff

test/conformance-structural/Generated/StructuralConformance/Structural/Shape/ArtifactMetadata.hs view

file too large to diff

test/conformance-structural/Generated/StructuralConformance/StructuralConformance.hs view

file too large to diff

test/conformance-structural/Generated/StructuralConformance/StructuralProjections.hs view

file too large to diff

test/conformance-v2/Generated/HospitalCapacity/BehaviorSourceMap.hs view

file too large to diff

test/conformance-v2/Generated/HospitalCapacity/Nominals.hs view

file too large to diff

test/conformance-v2/Generated/HospitalCapacity/Nominals/Internal.hs view

file too large to diff

test/conformance-v2/Generated/HospitalCapacity/ReplayAudit.hs view

file too large to diff

test/conformance-v2/Generated/HospitalCapacity/Reservation/BehaviorContract.hs view

file too large to diff

test/conformance-v2/Generated/HospitalCapacity/Reservation/Codec.hs view

file too large to diff

test/conformance-v2/Generated/HospitalCapacity/Reservation/Domain.hs view

file too large to diff

test/conformance-v2/Generated/HospitalCapacity/Reservation/EventStream.hs view

file too large to diff

test/conformance-v2/Generated/HospitalCapacity/Reservation/Harness.hs view

file too large to diff

test/conformance-v2/Generated/HospitalCapacity/Reservation/Projection.hs view

file too large to diff

test/conformance-v2/Generated/HospitalCapacity/Reservation/Transducer.hs view

file too large to diff

test/conformance-workflow-full/Generated/HospitalCapacity/HospitalTransferReservation/WorkflowFacts.hs view

file too large to diff

test/conformance-workflow-full/Generated/HospitalCapacity/HospitalTransferReservation/WorkflowRuntime.hs view

file too large to diff

test/conformance-workflow-runtime/Generated/HospitalCapacity/HospitalTransferReservation/WorkflowFacts.hs view

file too large to diff

test/conformance-workflow-runtime/Generated/HospitalCapacity/HospitalTransferReservation/WorkflowRuntime.hs view

file too large to diff

test/conformance-workflow/Generated/HospitalCapacity/HospitalTransferReservation/WorkflowFacts.hs view

file too large to diff

test/conformance-workflow/Generated/HospitalCapacity/HospitalTransferReservation/WorkflowRuntime.hs view

file too large to diff

test/conformance-workspace-nominals/Generated/WorkspaceNominalProof/BehaviorSourceMap.hs view

file too large to diff

test/conformance-workspace-nominals/Generated/WorkspaceNominalProof/Nominals.hs view

file too large to diff

test/conformance-workspace-nominals/Generated/WorkspaceNominalProof/Nominals/Internal.hs view

file too large to diff

test/conformance-workspace-nominals/Generated/WorkspaceNominalProof/Project/BehaviorContract.hs view

file too large to diff

test/conformance-workspace-nominals/Generated/WorkspaceNominalProof/Project/Codec.hs view

file too large to diff

test/conformance-workspace-nominals/Generated/WorkspaceNominalProof/Project/Domain.hs view

file too large to diff

test/conformance-workspace-nominals/Generated/WorkspaceNominalProof/Project/EventStream.hs view

file too large to diff

test/conformance-workspace-nominals/Generated/WorkspaceNominalProof/Project/Harness.hs view

file too large to diff

test/conformance-workspace-nominals/Generated/WorkspaceNominalProof/Project/Projection.hs view

file too large to diff

test/conformance-workspace-nominals/Generated/WorkspaceNominalProof/Project/Transducer.hs view

file too large to diff

test/conformance-workspace-nominals/Generated/WorkspaceNominalProof/ProjectArtifact/BehaviorContract.hs view

file too large to diff

test/conformance-workspace-nominals/Generated/WorkspaceNominalProof/ProjectArtifact/Codec.hs view

file too large to diff

test/conformance-workspace-nominals/Generated/WorkspaceNominalProof/ProjectArtifact/Domain.hs view

file too large to diff

test/conformance-workspace-nominals/Generated/WorkspaceNominalProof/ProjectArtifact/EventStream.hs view

file too large to diff

test/conformance-workspace-nominals/Generated/WorkspaceNominalProof/ProjectArtifact/Harness.hs view

file too large to diff

test/conformance-workspace-nominals/Generated/WorkspaceNominalProof/ProjectArtifact/Projection.hs view

file too large to diff

test/conformance-workspace-nominals/Generated/WorkspaceNominalProof/ProjectArtifact/Transducer.hs view

file too large to diff

test/conformance-workspace-nominals/Generated/WorkspaceNominalProof/ReplayAudit.hs view

file too large to diff

test/conformance-workspace-nominals/Generated/WorkspaceNominalProof/Structural/NominalLeaves.hs view

file too large to diff

test/conformance-workspace-nominals/Generated/WorkspaceNominalProof/Structural/Shape/ArtifactClaim.hs view

file too large to diff

test/conformance-workspace-nominals/Generated/WorkspaceNominalProof/Structural/Shape/ProjectClaim.hs view

file too large to diff

test/conformance-workspace-nominals/Generated/WorkspaceNominalProof/StructuralConformance.hs view

file too large to diff

test/conformance-workspace-nominals/Generated/WorkspaceNominalProof/StructuralProjections.hs view

file too large to diff

test/conformance/Generated/HospitalCapacity/BehaviorSourceMap.hs view

file too large to diff

test/conformance/Generated/HospitalCapacity/Nominals.hs view

file too large to diff

test/conformance/Generated/HospitalCapacity/Nominals/Internal.hs view

file too large to diff

test/conformance/Generated/HospitalCapacity/ReplayAudit.hs view

file too large to diff

test/conformance/Generated/HospitalCapacity/Reservation/BehaviorContract.hs view

file too large to diff

test/conformance/Generated/HospitalCapacity/Reservation/Codec.hs view

file too large to diff

test/conformance/Generated/HospitalCapacity/Reservation/Domain.hs view

file too large to diff

test/conformance/Generated/HospitalCapacity/Reservation/EventStream.hs view

file too large to diff

test/conformance/Generated/HospitalCapacity/Reservation/Harness.hs view

file too large to diff

test/conformance/Generated/HospitalCapacity/Reservation/Projection.hs view

file too large to diff

test/conformance/Generated/HospitalCapacity/Reservation/Transducer.hs view

file too large to diff

+ test/consumer-enum-literal-sampling-test.sh view

file too large to diff

+ test/fixtures/mapped-structural-enum-data-only-fold.golden view

file too large to diff

+ test/fixtures/mapped-structural-enum-equality-history/binding-v2.keiro view

file too large to diff

+ test/fixtures/mapped-structural-enum-equality-history/data-only.keiro view

file too large to diff

+ test/fixtures/mapped-structural-enum-equality-history/fixture-only.keiro view

file too large to diff

+ test/fixtures/mapped-structural-enum-equality-history/guarded.keiro view

file too large to diff

+ test/fixtures/mapped-structural-enum-equality-history/reordered.keiro view

file too large to diff

+ test/fixtures/mapped-structural-enum-equality-history/wire-v2.keiro view

file too large to diff

+ test/fixtures/mapped-structural-enum-equality.keiro view

file too large to diff

+ test/mapped-structural-enum-equality-mutation-test.sh view

file too large to diff