ttc-0.2.0.0: test/TestString.hs
{-# LANGUAGE DeriveLift #-}
{-# LANGUAGE TemplateHaskell #-}
module TestString 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 TestString = TestString String
deriving (Eq, Ord, Show, THS.Lift)
instance TTC.Render TestString where
render (TestString s) = TTC.convert s
instance TTC.Parse TestString where
parse = TTC.asS $ Right . TestString
------------------------------------------------------------------------------
-- $API
$(TTC.mkValid "valid" ''TestString)
$(TTC.mkUntypedValid "untypedValid" ''TestString)
$(TTC.mkUntypedValidQQ "untypedValidQQ" ''TestString)