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

-- | Compatibility for bang-type template
--   
--   This package provides compatible interfaces for bang-type template
@package th-bang-compat
@version 0.0.1.0

-- | This module provides compatibility definitions of bang-type template
--   for before temaplate-haskell-2.10
module Language.Haskell.TH.Compat.Bang
data () => Bang
type BangQ = Q Bang
type BangType = (Bang, Type)
type BangTypeQ = Q BangType
type VarBangType = (Name, Bang, Type)
type VarBangTypeQ = Q VarBangType

-- | SourceUnpackedness corresponds to unpack annotations found in
--   the source code.
--   
--   This may not agree with the annotations returned by
--   reifyConStrictness. See reifyConStrictness for more
--   information.
data () => SourceUnpackedness

-- | 
--   C a
--   
NoSourceUnpackedness :: SourceUnpackedness

-- | 
--   C { {-# NOUNPACK #-} } a
--   
SourceNoUnpack :: SourceUnpackedness

-- | 
--   C { {-# UNPACK #-} } a
--   
SourceUnpack :: SourceUnpackedness
type SourceUnpackednessQ = Q SourceUnpackedness

-- | SourceStrictness corresponds to strictness annotations found in
--   the source code.
--   
--   This may not agree with the annotations returned by
--   reifyConStrictness. See reifyConStrictness for more
--   information.
data () => SourceStrictness

-- | 
--   C a
--   
NoSourceStrictness :: SourceStrictness

-- | 
--   C {~}a
--   
SourceLazy :: SourceStrictness

-- | 
--   C {!}a
--   
SourceStrict :: SourceStrictness
type SourceStrictnessQ = Q SourceStrictness
bang :: Quote m => m SourceUnpackedness -> m SourceStrictness -> m Bang
bangType :: Quote m => m Bang -> m Type -> m BangType
varBangType :: Quote m => Name -> m BangType -> m VarBangType
noSourceUnpackedness :: Quote m => m SourceUnpackedness
sourceNoUnpack :: Quote m => m SourceUnpackedness
sourceUnpack :: Quote m => m SourceUnpackedness
noSourceStrictness :: Quote m => m SourceStrictness
sourceLazy :: Quote m => m SourceStrictness
sourceStrict :: Quote m => m SourceStrictness
