{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE DerivingStrategies, DeriveLift #-}

module DSV.DelimiterType
  ( Delimiter (..)
  , delimiterWord8
  ) where

import Data.Word (Word8)

import Language.Haskell.TH.Syntax (Lift)

newtype Delimiter = Delimiter Word8
    deriving stock Delimiter -> Q Exp
Delimiter -> Q (TExp Delimiter)
(Delimiter -> Q Exp)
-> (Delimiter -> Q (TExp Delimiter)) -> Lift Delimiter
forall t. (t -> Q Exp) -> (t -> Q (TExp t)) -> Lift t
liftTyped :: Delimiter -> Q (TExp Delimiter)
$cliftTyped :: Delimiter -> Q (TExp Delimiter)
lift :: Delimiter -> Q Exp
$clift :: Delimiter -> Q Exp
Lift

delimiterWord8 :: Delimiter -> Word8
delimiterWord8 :: Delimiter -> Word8
delimiterWord8 (Delimiter Word8
d) = Word8
d