packages feed

keiro-dsl-0.17.0.0: test/conformance-workspace-nominals/Generated/WorkspaceNominalProof/Structural/NominalLeaves.hs

-- @generated by keiro-dsl 0.17.0.0 (language keiro-dsl 6) from context workspace-nominal-proof structural nominal leaves; do not edit.
module Generated.WorkspaceNominalProof.Structural.NominalLeaves where

import Data.Aeson (Value (..), withText)
import Data.Aeson.Types (Parser)
import Data.KindID qualified as KindID
import Keiro.Codec.IdDomain (parseKindIdV7Text)
import Keiro.Codec.Nominal (nominalFromRepresentation, nominalToRepresentation)
import WorkspaceNominalProof.Bindings qualified as Bindings
import WorkspaceNominalProof.Domain (ClaimId)

encodeClaimIdLeaf :: ClaimId -> Value
encodeClaimIdLeaf = String . KindID.toText . nominalToRepresentation Bindings.claimIdBinding
{-# NOINLINE encodeClaimIdLeaf #-}

parseClaimIdLeaf :: Value -> Parser ClaimId
parseClaimIdLeaf = withText "ClaimId" $ \input ->
  case parseKindIdV7Text @"claim" input of
    Left reason -> fail (show reason)
    Right representation -> pure (nominalFromRepresentation Bindings.claimIdBinding representation)
{-# NOINLINE parseClaimIdLeaf #-}