packages feed

cuddle-1.3.0.0: src/Codec/CBOR/Cuddle/CDDL/CTreePhase.hs

{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE TypeData #-}
{-# LANGUAGE TypeFamilies #-}

module Codec.CBOR.Cuddle.CDDL.CTreePhase (
  CTreePhase,
  XTerm (..),
  XCddl (..),
  XRule (..),
  XXTopLevel,
) where

import Codec.CBOR.Cuddle.CDDL (XCddl, XRule, XTerm, XXTopLevel, XXType2)
import Codec.CBOR.Cuddle.CDDL.CBORGenerator (CBORGen, CBORValidator, WrappedTerm)
import Data.Default.Class (Default)
import Data.Hashable (Hashable)
import GHC.Generics (Generic)

type data CTreePhase

data instance XTerm CTreePhase = CTreeXTerm
  deriving (Generic, Show, Eq, Ord)
  deriving anyclass (Hashable, Default)

data instance XXTopLevel CTreePhase
  deriving (Generic, Show, Eq, Ord)

data instance XCddl CTreePhase = CTreeXCddl
  deriving (Generic, Show, Eq, Ord)

data instance XRule CTreePhase = CTreeXRule (Maybe (CBORGen WrappedTerm)) (Maybe CBORValidator)
  deriving (Generic)

data instance XXType2 CTreePhase
  deriving (Generic, Show, Eq, Ord)
  deriving anyclass (Hashable)