-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Compatibility for the result type of TH reify
--   
--   This package contains compatible interfaces against the result type of
--   TH reify function.
@package th-reify-compat
@version 0.0.1.2


-- | This module provides compatibility definitions of destructuring result
--   type of reify for before temaplate-haskell-2.11
module Language.Haskell.TH.Compat.Reify

-- | Compatible interface to destruct <a>ClassOpI</a>
unClassOpI :: Info -> Maybe (Name, Type, ParentName)

-- | Compatible interface to destruct <a>DataConI</a>
unDataConI :: Info -> Maybe (Name, Type, ParentName)

-- | Compatible interface to destruct <a>VarI</a>
unVarI :: Info -> Maybe (Name, Type, Maybe Dec)

-- | <tt>reifyFixity nm</tt> attempts to find a fixity declaration for
--   <tt>nm</tt>. For example, if the function <tt>foo</tt> has the fixity
--   declaration <tt>infixr 7 foo</tt>, then <tt>reifyFixity 'foo</tt>
--   would return <tt><a>Just</a> (<a>Fixity</a> 7 <a>InfixR</a>)</tt>. If
--   the function <tt>bar</tt> does not have a fixity declaration, then
--   <tt>reifyFixity 'bar</tt> returns <a>Nothing</a>, so you may assume
--   <tt>bar</tt> has <a>defaultFixity</a>.
reifyFixity :: Name -> Q (Maybe Fixity)

-- | In <a>ClassOpI</a> and <a>DataConI</a>, name of the parent class or
--   type
type ParentName = Name
