{-# LANGUAGE CPP #-}
module Language.Haskell.Meta.THCompat (
    module Language.Haskell.Meta.THCompat
) where

import Language.Haskell.TH.Syntax


conP :: Name -> [Pat] -> Pat
#if MIN_VERSION_template_haskell(2,18,0)
conP :: Name -> [Pat] -> Pat
conP Name
name = Name -> [Type] -> [Pat] -> Pat
ConP Name
name []
#else
conP = ConP
#endif


#if MIN_VERSION_template_haskell(2,17,0)
plainTV :: Name -> TyVarBndr Specificity
plainTV :: Name -> TyVarBndr Specificity
plainTV Name
n = forall flag. Name -> flag -> TyVarBndr flag
PlainTV Name
n Specificity
SpecifiedSpec
#else
plainTV :: Name -> TyVarBndr
plainTV = PlainTV
#endif


#if MIN_VERSION_template_haskell(2,17,0)
type TyVarBndr_ flag = TyVarBndr flag
#else
type TyVarBndr_ flag = TyVarBndr
#endif