module Language.Haskell.TH.Compat.Reify.Current (
ParentName,
unClassOpI, unDataConI, unVarI,
reifyFixity,
)where
import Language.Haskell.TH (Info (..), Name, Type, ParentName, Dec, reifyFixity)
unClassOpI :: Info -> Maybe (Name, Type, ParentName)
unClassOpI :: Info -> Maybe (Name, Type, Name)
unClassOpI (ClassOpI n :: Name
n t :: Type
t p :: Name
p) = (Name, Type, Name) -> Maybe (Name, Type, Name)
forall a. a -> Maybe a
Just (Name
n, Type
t, Name
p)
unClassOpI _ = Maybe (Name, Type, Name)
forall a. Maybe a
Nothing
unDataConI :: Info -> Maybe (Name, Type, ParentName)
unDataConI :: Info -> Maybe (Name, Type, Name)
unDataConI (DataConI n :: Name
n t :: Type
t p :: Name
p) = (Name, Type, Name) -> Maybe (Name, Type, Name)
forall a. a -> Maybe a
Just (Name
n, Type
t, Name
p)
unDataConI _ = Maybe (Name, Type, Name)
forall a. Maybe a
Nothing
unVarI :: Info -> Maybe (Name, Type, Maybe Dec)
unVarI :: Info -> Maybe (Name, Type, Maybe Dec)
unVarI (VarI n :: Name
n t :: Type
t md :: Maybe Dec
md) = (Name, Type, Maybe Dec) -> Maybe (Name, Type, Maybe Dec)
forall a. a -> Maybe a
Just (Name
n, Type
t, Maybe Dec
md)
unVarI _ = Maybe (Name, Type, Maybe Dec)
forall a. Maybe a
Nothing