    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 :: Info -> Maybe (Name, Type, Name)
    unClassOpI (ClassOpI Name
    n Type
    t Name
    p) = (Name, Type, Name) -> Maybe (Name, Type, Name)
    forall a. a -> Maybe a
    Just (Name
    n, Type
    t, Name
    p)
    unClassOpI  Info
    _               = Maybe (Name, Type, Name)
    forall a. Maybe a
    Nothing

    -- | Compatible interface to destruct 'DataConI'
    unDataConI :: Info -> Maybe (Name, Type, ParentName)
    unDataConI :: Info -> Maybe (Name, Type, Name)
    unDataConI (DataConI Name
    n Type
    t Name
    p) = (Name, Type, Name) -> Maybe (Name, Type, Name)
    forall a. a -> Maybe a
    Just (Name
    n, Type
    t, Name
    p)
    unDataConI  Info
    _               = Maybe (Name, Type, Name)
    forall a. Maybe a
    Nothing

    -- | Compatible interface to destruct 'VarI'
    unVarI :: Info -> Maybe (Name, Type, Maybe Dec)
    unVarI :: Info -> Maybe (Name, Type, Maybe Dec)
    unVarI (VarI Name
    n Type
    t 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  Info
    _            = Maybe (Name, Type, Maybe Dec)
    forall a. Maybe a
    Nothing