ghc-definitions-th-0.1: src/GHC/Definitions/TH/Example.hs
{-# LANGUAGE CPP #-}
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE ViewPatterns #-}
module GHC.Definitions.TH.Example where
import GHC.Builtin.Types (eqTyCon)
import GHC.Definitions.TH (makeDefinitions, makePattern)
import GHC.TypeNats (type (-))
makeDefinitions
[ 'id
, ''Maybe
, 'Nothing
, '(+)
, ''(-)
, ''Ord
]
makePattern "MaybeTy" 'maybeTyCon
makePattern "IdExpr" 'idVar
makePattern "NothingExpr" 'nothingDataCon
makePattern "NothingTy" 'promotedNothingTyCon
makePattern "EqTy" 'eqTyCon
makePattern "MinusTy" 'minusTyCon
makePattern "OrdTy" 'ordClass