th-reify-compat-0.0.1.0: src/Language/Haskell/TH/Compat/Reify/Current.hs
module Language.Haskell.TH.Compat.Reify.Current (
ParentName,
unClassOpI, unDataConI, unVarI,
reifyFixity,
)where
import Language.Haskell.TH (Info (..), Name, Type, ParentName, Dec, reifyFixity)
-- | Compatible interface to destruct 'ClassOpI'
unClassOpI :: Info -> Maybe (Name, Type, ParentName)
unClassOpI (ClassOpI n t p) = Just (n, t, p)
unClassOpI _ = Nothing
-- | Compatible interface to destruct 'DataConI'
unDataConI :: Info -> Maybe (Name, Type, ParentName)
unDataConI (DataConI n t p) = Just (n, t, p)
unDataConI _ = Nothing
-- | Compatible interface to destruct 'VarI'
unVarI :: Info -> Maybe (Name, Type, Maybe Dec)
unVarI (VarI n t md) = Just (n, t, md)
unVarI _ = Nothing