ttc-1.5.0.0: test/TestTypes/Ex.hs
{-# LANGUAGE DeriveLift #-}
{-# LANGUAGE TemplateHaskell #-}
module TestTypes.Ex where
-- https://hackage.haskell.org/package/template-haskell
import qualified Language.Haskell.TH.Syntax as THS
-- (ttc)
import qualified Data.TTC as TTC
------------------------------------------------------------------------------
-- $Type
newtype Ex = Ex { exString :: String }
deriving (Eq, Ord, Show, THS.Lift)
instance TTC.Parse Ex where
parse = TTC.asS $ pure . Ex
instance TTC.Render Ex where
render = TTC.convert . exString
------------------------------------------------------------------------------
-- $API
$(TTC.mkValid "valid" ''Ex)
$(TTC.mkUntypedValid "untypedValid" ''Ex)
$(TTC.mkUntypedValidQQ "untypedValidQQ" ''Ex)