{-# LANGUAGE CPP #-}
{-# LANGUAGE DeriveDataTypeable #-}
module Language.Haskell.Syntax (
HsModule(..), HsExportSpec(..),
HsImportDecl(..), HsImportSpec(..), HsAssoc(..),
HsDecl(..), HsConDecl(..), HsBangType(..),
HsMatch(..), HsRhs(..), HsGuardedRhs(..),
HsSafety(..),
HsQualType(..), HsContext, HsAsst,
HsType(..),
HsExp(..), HsStmt(..), HsFieldUpdate(..),
HsAlt(..), HsGuardedAlts(..), HsGuardedAlt(..),
HsPat(..), HsPatField(..),
HsLiteral(..),
Module(..), HsQName(..), HsName(..), HsQOp(..), HsOp(..),
HsSpecialCon(..), HsCName(..),
prelude_mod, main_mod,
main_name,
unit_con_name, tuple_con_name, list_cons_name,
unit_con, tuple_con,
unit_tycon_name, fun_tycon_name, list_tycon_name, tuple_tycon_name,
unit_tycon, fun_tycon, list_tycon, tuple_tycon,
SrcLoc(..),
) where
#ifdef __GLASGOW_HASKELL__
import Data.Generics.Basics
import Data.Generics.Instances ()
#endif
data SrcLoc = SrcLoc {
SrcLoc -> String
srcFilename :: String,
SrcLoc -> Int
srcLine :: Int,
SrcLoc -> Int
srcColumn :: Int
}
#ifdef __GLASGOW_HASKELL__
deriving (SrcLoc -> SrcLoc -> Bool
(SrcLoc -> SrcLoc -> Bool)
-> (SrcLoc -> SrcLoc -> Bool) -> Eq SrcLoc
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SrcLoc -> SrcLoc -> Bool
== :: SrcLoc -> SrcLoc -> Bool
$c/= :: SrcLoc -> SrcLoc -> Bool
/= :: SrcLoc -> SrcLoc -> Bool
Eq,Eq SrcLoc
Eq SrcLoc =>
(SrcLoc -> SrcLoc -> Ordering)
-> (SrcLoc -> SrcLoc -> Bool)
-> (SrcLoc -> SrcLoc -> Bool)
-> (SrcLoc -> SrcLoc -> Bool)
-> (SrcLoc -> SrcLoc -> Bool)
-> (SrcLoc -> SrcLoc -> SrcLoc)
-> (SrcLoc -> SrcLoc -> SrcLoc)
-> Ord SrcLoc
SrcLoc -> SrcLoc -> Bool
SrcLoc -> SrcLoc -> Ordering
SrcLoc -> SrcLoc -> SrcLoc
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: SrcLoc -> SrcLoc -> Ordering
compare :: SrcLoc -> SrcLoc -> Ordering
$c< :: SrcLoc -> SrcLoc -> Bool
< :: SrcLoc -> SrcLoc -> Bool
$c<= :: SrcLoc -> SrcLoc -> Bool
<= :: SrcLoc -> SrcLoc -> Bool
$c> :: SrcLoc -> SrcLoc -> Bool
> :: SrcLoc -> SrcLoc -> Bool
$c>= :: SrcLoc -> SrcLoc -> Bool
>= :: SrcLoc -> SrcLoc -> Bool
$cmax :: SrcLoc -> SrcLoc -> SrcLoc
max :: SrcLoc -> SrcLoc -> SrcLoc
$cmin :: SrcLoc -> SrcLoc -> SrcLoc
min :: SrcLoc -> SrcLoc -> SrcLoc
Ord,Int -> SrcLoc -> ShowS
[SrcLoc] -> ShowS
SrcLoc -> String
(Int -> SrcLoc -> ShowS)
-> (SrcLoc -> String) -> ([SrcLoc] -> ShowS) -> Show SrcLoc
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SrcLoc -> ShowS
showsPrec :: Int -> SrcLoc -> ShowS
$cshow :: SrcLoc -> String
show :: SrcLoc -> String
$cshowList :: [SrcLoc] -> ShowS
showList :: [SrcLoc] -> ShowS
Show,Typeable,Typeable SrcLoc
Typeable SrcLoc =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> SrcLoc -> c SrcLoc)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SrcLoc)
-> (SrcLoc -> Constr)
-> (SrcLoc -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SrcLoc))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SrcLoc))
-> ((forall b. Data b => b -> b) -> SrcLoc -> SrcLoc)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> SrcLoc -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> SrcLoc -> r)
-> (forall u. (forall d. Data d => d -> u) -> SrcLoc -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> SrcLoc -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> SrcLoc -> m SrcLoc)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> SrcLoc -> m SrcLoc)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> SrcLoc -> m SrcLoc)
-> Data SrcLoc
SrcLoc -> Constr
SrcLoc -> DataType
(forall b. Data b => b -> b) -> SrcLoc -> SrcLoc
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> SrcLoc -> u
forall u. (forall d. Data d => d -> u) -> SrcLoc -> [u]
forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SrcLoc -> r
forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SrcLoc -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> SrcLoc -> m SrcLoc
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> SrcLoc -> m SrcLoc
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SrcLoc
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> SrcLoc -> c SrcLoc
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SrcLoc)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SrcLoc)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> SrcLoc -> c SrcLoc
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> SrcLoc -> c SrcLoc
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SrcLoc
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c SrcLoc
$ctoConstr :: SrcLoc -> Constr
toConstr :: SrcLoc -> Constr
$cdataTypeOf :: SrcLoc -> DataType
dataTypeOf :: SrcLoc -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SrcLoc)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c SrcLoc)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SrcLoc)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SrcLoc)
$cgmapT :: (forall b. Data b => b -> b) -> SrcLoc -> SrcLoc
gmapT :: (forall b. Data b => b -> b) -> SrcLoc -> SrcLoc
$cgmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SrcLoc -> r
gmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SrcLoc -> r
$cgmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SrcLoc -> r
gmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SrcLoc -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> SrcLoc -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> SrcLoc -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> SrcLoc -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> SrcLoc -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> SrcLoc -> m SrcLoc
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> SrcLoc -> m SrcLoc
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> SrcLoc -> m SrcLoc
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> SrcLoc -> m SrcLoc
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> SrcLoc -> m SrcLoc
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> SrcLoc -> m SrcLoc
Data)
#else
deriving (Eq,Ord,Show)
#endif
newtype Module = Module String
#ifdef __GLASGOW_HASKELL__
deriving (Module -> Module -> Bool
(Module -> Module -> Bool)
-> (Module -> Module -> Bool) -> Eq Module
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Module -> Module -> Bool
== :: Module -> Module -> Bool
$c/= :: Module -> Module -> Bool
/= :: Module -> Module -> Bool
Eq,Eq Module
Eq Module =>
(Module -> Module -> Ordering)
-> (Module -> Module -> Bool)
-> (Module -> Module -> Bool)
-> (Module -> Module -> Bool)
-> (Module -> Module -> Bool)
-> (Module -> Module -> Module)
-> (Module -> Module -> Module)
-> Ord Module
Module -> Module -> Bool
Module -> Module -> Ordering
Module -> Module -> Module
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: Module -> Module -> Ordering
compare :: Module -> Module -> Ordering
$c< :: Module -> Module -> Bool
< :: Module -> Module -> Bool
$c<= :: Module -> Module -> Bool
<= :: Module -> Module -> Bool
$c> :: Module -> Module -> Bool
> :: Module -> Module -> Bool
$c>= :: Module -> Module -> Bool
>= :: Module -> Module -> Bool
$cmax :: Module -> Module -> Module
max :: Module -> Module -> Module
$cmin :: Module -> Module -> Module
min :: Module -> Module -> Module
Ord,Int -> Module -> ShowS
[Module] -> ShowS
Module -> String
(Int -> Module -> ShowS)
-> (Module -> String) -> ([Module] -> ShowS) -> Show Module
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Module -> ShowS
showsPrec :: Int -> Module -> ShowS
$cshow :: Module -> String
show :: Module -> String
$cshowList :: [Module] -> ShowS
showList :: [Module] -> ShowS
Show,Typeable,Typeable Module
Typeable Module =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Module -> c Module)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Module)
-> (Module -> Constr)
-> (Module -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c Module))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Module))
-> ((forall b. Data b => b -> b) -> Module -> Module)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Module -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Module -> r)
-> (forall u. (forall d. Data d => d -> u) -> Module -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> Module -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Module -> m Module)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Module -> m Module)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Module -> m Module)
-> Data Module
Module -> Constr
Module -> DataType
(forall b. Data b => b -> b) -> Module -> Module
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> Module -> u
forall u. (forall d. Data d => d -> u) -> Module -> [u]
forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Module -> r
forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Module -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Module -> m Module
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Module -> m Module
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Module
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Module -> c Module
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c Module)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Module)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Module -> c Module
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Module -> c Module
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Module
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Module
$ctoConstr :: Module -> Constr
toConstr :: Module -> Constr
$cdataTypeOf :: Module -> DataType
dataTypeOf :: Module -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c Module)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c Module)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Module)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Module)
$cgmapT :: (forall b. Data b => b -> b) -> Module -> Module
gmapT :: (forall b. Data b => b -> b) -> Module -> Module
$cgmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Module -> r
gmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Module -> r
$cgmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Module -> r
gmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Module -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> Module -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> Module -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> Module -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> Module -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Module -> m Module
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Module -> m Module
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Module -> m Module
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Module -> m Module
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Module -> m Module
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Module -> m Module
Data)
#else
deriving (Eq,Ord,Show)
#endif
data HsSpecialCon
= HsUnitCon
| HsListCon
| HsFunCon
| HsTupleCon Int
| HsCons
#ifdef __GLASGOW_HASKELL__
deriving (HsSpecialCon -> HsSpecialCon -> Bool
(HsSpecialCon -> HsSpecialCon -> Bool)
-> (HsSpecialCon -> HsSpecialCon -> Bool) -> Eq HsSpecialCon
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsSpecialCon -> HsSpecialCon -> Bool
== :: HsSpecialCon -> HsSpecialCon -> Bool
$c/= :: HsSpecialCon -> HsSpecialCon -> Bool
/= :: HsSpecialCon -> HsSpecialCon -> Bool
Eq,Eq HsSpecialCon
Eq HsSpecialCon =>
(HsSpecialCon -> HsSpecialCon -> Ordering)
-> (HsSpecialCon -> HsSpecialCon -> Bool)
-> (HsSpecialCon -> HsSpecialCon -> Bool)
-> (HsSpecialCon -> HsSpecialCon -> Bool)
-> (HsSpecialCon -> HsSpecialCon -> Bool)
-> (HsSpecialCon -> HsSpecialCon -> HsSpecialCon)
-> (HsSpecialCon -> HsSpecialCon -> HsSpecialCon)
-> Ord HsSpecialCon
HsSpecialCon -> HsSpecialCon -> Bool
HsSpecialCon -> HsSpecialCon -> Ordering
HsSpecialCon -> HsSpecialCon -> HsSpecialCon
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: HsSpecialCon -> HsSpecialCon -> Ordering
compare :: HsSpecialCon -> HsSpecialCon -> Ordering
$c< :: HsSpecialCon -> HsSpecialCon -> Bool
< :: HsSpecialCon -> HsSpecialCon -> Bool
$c<= :: HsSpecialCon -> HsSpecialCon -> Bool
<= :: HsSpecialCon -> HsSpecialCon -> Bool
$c> :: HsSpecialCon -> HsSpecialCon -> Bool
> :: HsSpecialCon -> HsSpecialCon -> Bool
$c>= :: HsSpecialCon -> HsSpecialCon -> Bool
>= :: HsSpecialCon -> HsSpecialCon -> Bool
$cmax :: HsSpecialCon -> HsSpecialCon -> HsSpecialCon
max :: HsSpecialCon -> HsSpecialCon -> HsSpecialCon
$cmin :: HsSpecialCon -> HsSpecialCon -> HsSpecialCon
min :: HsSpecialCon -> HsSpecialCon -> HsSpecialCon
Ord,Int -> HsSpecialCon -> ShowS
[HsSpecialCon] -> ShowS
HsSpecialCon -> String
(Int -> HsSpecialCon -> ShowS)
-> (HsSpecialCon -> String)
-> ([HsSpecialCon] -> ShowS)
-> Show HsSpecialCon
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsSpecialCon -> ShowS
showsPrec :: Int -> HsSpecialCon -> ShowS
$cshow :: HsSpecialCon -> String
show :: HsSpecialCon -> String
$cshowList :: [HsSpecialCon] -> ShowS
showList :: [HsSpecialCon] -> ShowS
Show,Typeable,Typeable HsSpecialCon
Typeable HsSpecialCon =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsSpecialCon -> c HsSpecialCon)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsSpecialCon)
-> (HsSpecialCon -> Constr)
-> (HsSpecialCon -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsSpecialCon))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsSpecialCon))
-> ((forall b. Data b => b -> b) -> HsSpecialCon -> HsSpecialCon)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsSpecialCon -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsSpecialCon -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsSpecialCon -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> HsSpecialCon -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsSpecialCon -> m HsSpecialCon)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsSpecialCon -> m HsSpecialCon)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsSpecialCon -> m HsSpecialCon)
-> Data HsSpecialCon
HsSpecialCon -> Constr
HsSpecialCon -> DataType
(forall b. Data b => b -> b) -> HsSpecialCon -> HsSpecialCon
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsSpecialCon -> u
forall u. (forall d. Data d => d -> u) -> HsSpecialCon -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsSpecialCon -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsSpecialCon -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsSpecialCon -> m HsSpecialCon
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsSpecialCon -> m HsSpecialCon
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsSpecialCon
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsSpecialCon -> c HsSpecialCon
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsSpecialCon)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsSpecialCon)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsSpecialCon -> c HsSpecialCon
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsSpecialCon -> c HsSpecialCon
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsSpecialCon
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsSpecialCon
$ctoConstr :: HsSpecialCon -> Constr
toConstr :: HsSpecialCon -> Constr
$cdataTypeOf :: HsSpecialCon -> DataType
dataTypeOf :: HsSpecialCon -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsSpecialCon)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsSpecialCon)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsSpecialCon)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsSpecialCon)
$cgmapT :: (forall b. Data b => b -> b) -> HsSpecialCon -> HsSpecialCon
gmapT :: (forall b. Data b => b -> b) -> HsSpecialCon -> HsSpecialCon
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsSpecialCon -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsSpecialCon -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsSpecialCon -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsSpecialCon -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsSpecialCon -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsSpecialCon -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsSpecialCon -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsSpecialCon -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsSpecialCon -> m HsSpecialCon
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsSpecialCon -> m HsSpecialCon
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsSpecialCon -> m HsSpecialCon
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsSpecialCon -> m HsSpecialCon
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsSpecialCon -> m HsSpecialCon
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsSpecialCon -> m HsSpecialCon
Data)
#else
deriving (Eq,Ord,Show)
#endif
data HsQName
= Qual Module HsName
| UnQual HsName
| Special HsSpecialCon
#ifdef __GLASGOW_HASKELL__
deriving (HsQName -> HsQName -> Bool
(HsQName -> HsQName -> Bool)
-> (HsQName -> HsQName -> Bool) -> Eq HsQName
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsQName -> HsQName -> Bool
== :: HsQName -> HsQName -> Bool
$c/= :: HsQName -> HsQName -> Bool
/= :: HsQName -> HsQName -> Bool
Eq,Eq HsQName
Eq HsQName =>
(HsQName -> HsQName -> Ordering)
-> (HsQName -> HsQName -> Bool)
-> (HsQName -> HsQName -> Bool)
-> (HsQName -> HsQName -> Bool)
-> (HsQName -> HsQName -> Bool)
-> (HsQName -> HsQName -> HsQName)
-> (HsQName -> HsQName -> HsQName)
-> Ord HsQName
HsQName -> HsQName -> Bool
HsQName -> HsQName -> Ordering
HsQName -> HsQName -> HsQName
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: HsQName -> HsQName -> Ordering
compare :: HsQName -> HsQName -> Ordering
$c< :: HsQName -> HsQName -> Bool
< :: HsQName -> HsQName -> Bool
$c<= :: HsQName -> HsQName -> Bool
<= :: HsQName -> HsQName -> Bool
$c> :: HsQName -> HsQName -> Bool
> :: HsQName -> HsQName -> Bool
$c>= :: HsQName -> HsQName -> Bool
>= :: HsQName -> HsQName -> Bool
$cmax :: HsQName -> HsQName -> HsQName
max :: HsQName -> HsQName -> HsQName
$cmin :: HsQName -> HsQName -> HsQName
min :: HsQName -> HsQName -> HsQName
Ord,Int -> HsQName -> ShowS
[HsQName] -> ShowS
HsQName -> String
(Int -> HsQName -> ShowS)
-> (HsQName -> String) -> ([HsQName] -> ShowS) -> Show HsQName
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsQName -> ShowS
showsPrec :: Int -> HsQName -> ShowS
$cshow :: HsQName -> String
show :: HsQName -> String
$cshowList :: [HsQName] -> ShowS
showList :: [HsQName] -> ShowS
Show,Typeable,Typeable HsQName
Typeable HsQName =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsQName -> c HsQName)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsQName)
-> (HsQName -> Constr)
-> (HsQName -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsQName))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsQName))
-> ((forall b. Data b => b -> b) -> HsQName -> HsQName)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsQName -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsQName -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsQName -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> HsQName -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsQName -> m HsQName)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsQName -> m HsQName)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsQName -> m HsQName)
-> Data HsQName
HsQName -> Constr
HsQName -> DataType
(forall b. Data b => b -> b) -> HsQName -> HsQName
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsQName -> u
forall u. (forall d. Data d => d -> u) -> HsQName -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsQName -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsQName -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsQName -> m HsQName
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsQName -> m HsQName
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsQName
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsQName -> c HsQName
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsQName)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsQName)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsQName -> c HsQName
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsQName -> c HsQName
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsQName
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsQName
$ctoConstr :: HsQName -> Constr
toConstr :: HsQName -> Constr
$cdataTypeOf :: HsQName -> DataType
dataTypeOf :: HsQName -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsQName)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsQName)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsQName)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsQName)
$cgmapT :: (forall b. Data b => b -> b) -> HsQName -> HsQName
gmapT :: (forall b. Data b => b -> b) -> HsQName -> HsQName
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsQName -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsQName -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsQName -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsQName -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsQName -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsQName -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsQName -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsQName -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsQName -> m HsQName
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsQName -> m HsQName
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsQName -> m HsQName
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsQName -> m HsQName
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsQName -> m HsQName
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsQName -> m HsQName
Data)
#else
deriving (Eq,Ord,Show)
#endif
data HsName
= HsIdent String
| HsSymbol String
#ifdef __GLASGOW_HASKELL__
deriving (HsName -> HsName -> Bool
(HsName -> HsName -> Bool)
-> (HsName -> HsName -> Bool) -> Eq HsName
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsName -> HsName -> Bool
== :: HsName -> HsName -> Bool
$c/= :: HsName -> HsName -> Bool
/= :: HsName -> HsName -> Bool
Eq,Eq HsName
Eq HsName =>
(HsName -> HsName -> Ordering)
-> (HsName -> HsName -> Bool)
-> (HsName -> HsName -> Bool)
-> (HsName -> HsName -> Bool)
-> (HsName -> HsName -> Bool)
-> (HsName -> HsName -> HsName)
-> (HsName -> HsName -> HsName)
-> Ord HsName
HsName -> HsName -> Bool
HsName -> HsName -> Ordering
HsName -> HsName -> HsName
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: HsName -> HsName -> Ordering
compare :: HsName -> HsName -> Ordering
$c< :: HsName -> HsName -> Bool
< :: HsName -> HsName -> Bool
$c<= :: HsName -> HsName -> Bool
<= :: HsName -> HsName -> Bool
$c> :: HsName -> HsName -> Bool
> :: HsName -> HsName -> Bool
$c>= :: HsName -> HsName -> Bool
>= :: HsName -> HsName -> Bool
$cmax :: HsName -> HsName -> HsName
max :: HsName -> HsName -> HsName
$cmin :: HsName -> HsName -> HsName
min :: HsName -> HsName -> HsName
Ord,Int -> HsName -> ShowS
[HsName] -> ShowS
HsName -> String
(Int -> HsName -> ShowS)
-> (HsName -> String) -> ([HsName] -> ShowS) -> Show HsName
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsName -> ShowS
showsPrec :: Int -> HsName -> ShowS
$cshow :: HsName -> String
show :: HsName -> String
$cshowList :: [HsName] -> ShowS
showList :: [HsName] -> ShowS
Show,Typeable,Typeable HsName
Typeable HsName =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsName -> c HsName)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsName)
-> (HsName -> Constr)
-> (HsName -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsName))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsName))
-> ((forall b. Data b => b -> b) -> HsName -> HsName)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsName -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsName -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsName -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> HsName -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsName -> m HsName)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsName -> m HsName)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsName -> m HsName)
-> Data HsName
HsName -> Constr
HsName -> DataType
(forall b. Data b => b -> b) -> HsName -> HsName
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsName -> u
forall u. (forall d. Data d => d -> u) -> HsName -> [u]
forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsName -> r
forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsName -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsName -> m HsName
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsName -> m HsName
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsName
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsName -> c HsName
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsName)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsName)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsName -> c HsName
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsName -> c HsName
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsName
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsName
$ctoConstr :: HsName -> Constr
toConstr :: HsName -> Constr
$cdataTypeOf :: HsName -> DataType
dataTypeOf :: HsName -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsName)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsName)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsName)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsName)
$cgmapT :: (forall b. Data b => b -> b) -> HsName -> HsName
gmapT :: (forall b. Data b => b -> b) -> HsName -> HsName
$cgmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsName -> r
gmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsName -> r
$cgmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsName -> r
gmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsName -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsName -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsName -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsName -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsName -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsName -> m HsName
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsName -> m HsName
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsName -> m HsName
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsName -> m HsName
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsName -> m HsName
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsName -> m HsName
Data)
#else
deriving (Eq,Ord,Show)
#endif
data HsQOp
= HsQVarOp HsQName
| HsQConOp HsQName
#ifdef __GLASGOW_HASKELL__
deriving (HsQOp -> HsQOp -> Bool
(HsQOp -> HsQOp -> Bool) -> (HsQOp -> HsQOp -> Bool) -> Eq HsQOp
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsQOp -> HsQOp -> Bool
== :: HsQOp -> HsQOp -> Bool
$c/= :: HsQOp -> HsQOp -> Bool
/= :: HsQOp -> HsQOp -> Bool
Eq,Eq HsQOp
Eq HsQOp =>
(HsQOp -> HsQOp -> Ordering)
-> (HsQOp -> HsQOp -> Bool)
-> (HsQOp -> HsQOp -> Bool)
-> (HsQOp -> HsQOp -> Bool)
-> (HsQOp -> HsQOp -> Bool)
-> (HsQOp -> HsQOp -> HsQOp)
-> (HsQOp -> HsQOp -> HsQOp)
-> Ord HsQOp
HsQOp -> HsQOp -> Bool
HsQOp -> HsQOp -> Ordering
HsQOp -> HsQOp -> HsQOp
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: HsQOp -> HsQOp -> Ordering
compare :: HsQOp -> HsQOp -> Ordering
$c< :: HsQOp -> HsQOp -> Bool
< :: HsQOp -> HsQOp -> Bool
$c<= :: HsQOp -> HsQOp -> Bool
<= :: HsQOp -> HsQOp -> Bool
$c> :: HsQOp -> HsQOp -> Bool
> :: HsQOp -> HsQOp -> Bool
$c>= :: HsQOp -> HsQOp -> Bool
>= :: HsQOp -> HsQOp -> Bool
$cmax :: HsQOp -> HsQOp -> HsQOp
max :: HsQOp -> HsQOp -> HsQOp
$cmin :: HsQOp -> HsQOp -> HsQOp
min :: HsQOp -> HsQOp -> HsQOp
Ord,Int -> HsQOp -> ShowS
[HsQOp] -> ShowS
HsQOp -> String
(Int -> HsQOp -> ShowS)
-> (HsQOp -> String) -> ([HsQOp] -> ShowS) -> Show HsQOp
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsQOp -> ShowS
showsPrec :: Int -> HsQOp -> ShowS
$cshow :: HsQOp -> String
show :: HsQOp -> String
$cshowList :: [HsQOp] -> ShowS
showList :: [HsQOp] -> ShowS
Show,Typeable,Typeable HsQOp
Typeable HsQOp =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsQOp -> c HsQOp)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsQOp)
-> (HsQOp -> Constr)
-> (HsQOp -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsQOp))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsQOp))
-> ((forall b. Data b => b -> b) -> HsQOp -> HsQOp)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsQOp -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsQOp -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsQOp -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> HsQOp -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsQOp -> m HsQOp)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsQOp -> m HsQOp)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsQOp -> m HsQOp)
-> Data HsQOp
HsQOp -> Constr
HsQOp -> DataType
(forall b. Data b => b -> b) -> HsQOp -> HsQOp
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsQOp -> u
forall u. (forall d. Data d => d -> u) -> HsQOp -> [u]
forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsQOp -> r
forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsQOp -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsQOp -> m HsQOp
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsQOp -> m HsQOp
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsQOp
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsQOp -> c HsQOp
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsQOp)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsQOp)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsQOp -> c HsQOp
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsQOp -> c HsQOp
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsQOp
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsQOp
$ctoConstr :: HsQOp -> Constr
toConstr :: HsQOp -> Constr
$cdataTypeOf :: HsQOp -> DataType
dataTypeOf :: HsQOp -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsQOp)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsQOp)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsQOp)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsQOp)
$cgmapT :: (forall b. Data b => b -> b) -> HsQOp -> HsQOp
gmapT :: (forall b. Data b => b -> b) -> HsQOp -> HsQOp
$cgmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsQOp -> r
gmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsQOp -> r
$cgmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsQOp -> r
gmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsQOp -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsQOp -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsQOp -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsQOp -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsQOp -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsQOp -> m HsQOp
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsQOp -> m HsQOp
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsQOp -> m HsQOp
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsQOp -> m HsQOp
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsQOp -> m HsQOp
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsQOp -> m HsQOp
Data)
#else
deriving (Eq,Ord,Show)
#endif
data HsOp
= HsVarOp HsName
| HsConOp HsName
#ifdef __GLASGOW_HASKELL__
deriving (HsOp -> HsOp -> Bool
(HsOp -> HsOp -> Bool) -> (HsOp -> HsOp -> Bool) -> Eq HsOp
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsOp -> HsOp -> Bool
== :: HsOp -> HsOp -> Bool
$c/= :: HsOp -> HsOp -> Bool
/= :: HsOp -> HsOp -> Bool
Eq,Eq HsOp
Eq HsOp =>
(HsOp -> HsOp -> Ordering)
-> (HsOp -> HsOp -> Bool)
-> (HsOp -> HsOp -> Bool)
-> (HsOp -> HsOp -> Bool)
-> (HsOp -> HsOp -> Bool)
-> (HsOp -> HsOp -> HsOp)
-> (HsOp -> HsOp -> HsOp)
-> Ord HsOp
HsOp -> HsOp -> Bool
HsOp -> HsOp -> Ordering
HsOp -> HsOp -> HsOp
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: HsOp -> HsOp -> Ordering
compare :: HsOp -> HsOp -> Ordering
$c< :: HsOp -> HsOp -> Bool
< :: HsOp -> HsOp -> Bool
$c<= :: HsOp -> HsOp -> Bool
<= :: HsOp -> HsOp -> Bool
$c> :: HsOp -> HsOp -> Bool
> :: HsOp -> HsOp -> Bool
$c>= :: HsOp -> HsOp -> Bool
>= :: HsOp -> HsOp -> Bool
$cmax :: HsOp -> HsOp -> HsOp
max :: HsOp -> HsOp -> HsOp
$cmin :: HsOp -> HsOp -> HsOp
min :: HsOp -> HsOp -> HsOp
Ord,Int -> HsOp -> ShowS
[HsOp] -> ShowS
HsOp -> String
(Int -> HsOp -> ShowS)
-> (HsOp -> String) -> ([HsOp] -> ShowS) -> Show HsOp
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsOp -> ShowS
showsPrec :: Int -> HsOp -> ShowS
$cshow :: HsOp -> String
show :: HsOp -> String
$cshowList :: [HsOp] -> ShowS
showList :: [HsOp] -> ShowS
Show,Typeable,Typeable HsOp
Typeable HsOp =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsOp -> c HsOp)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsOp)
-> (HsOp -> Constr)
-> (HsOp -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsOp))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsOp))
-> ((forall b. Data b => b -> b) -> HsOp -> HsOp)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsOp -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsOp -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsOp -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> HsOp -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsOp -> m HsOp)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsOp -> m HsOp)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsOp -> m HsOp)
-> Data HsOp
HsOp -> Constr
HsOp -> DataType
(forall b. Data b => b -> b) -> HsOp -> HsOp
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsOp -> u
forall u. (forall d. Data d => d -> u) -> HsOp -> [u]
forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsOp -> r
forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsOp -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsOp -> m HsOp
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsOp -> m HsOp
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsOp
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsOp -> c HsOp
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsOp)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsOp)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsOp -> c HsOp
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsOp -> c HsOp
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsOp
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsOp
$ctoConstr :: HsOp -> Constr
toConstr :: HsOp -> Constr
$cdataTypeOf :: HsOp -> DataType
dataTypeOf :: HsOp -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsOp)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsOp)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsOp)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsOp)
$cgmapT :: (forall b. Data b => b -> b) -> HsOp -> HsOp
gmapT :: (forall b. Data b => b -> b) -> HsOp -> HsOp
$cgmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsOp -> r
gmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsOp -> r
$cgmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsOp -> r
gmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsOp -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsOp -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsOp -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsOp -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsOp -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsOp -> m HsOp
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsOp -> m HsOp
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsOp -> m HsOp
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsOp -> m HsOp
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsOp -> m HsOp
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsOp -> m HsOp
Data)
#else
deriving (Eq,Ord,Show)
#endif
data HsCName
= HsVarName HsName
| HsConName HsName
#ifdef __GLASGOW_HASKELL__
deriving (HsCName -> HsCName -> Bool
(HsCName -> HsCName -> Bool)
-> (HsCName -> HsCName -> Bool) -> Eq HsCName
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsCName -> HsCName -> Bool
== :: HsCName -> HsCName -> Bool
$c/= :: HsCName -> HsCName -> Bool
/= :: HsCName -> HsCName -> Bool
Eq,Eq HsCName
Eq HsCName =>
(HsCName -> HsCName -> Ordering)
-> (HsCName -> HsCName -> Bool)
-> (HsCName -> HsCName -> Bool)
-> (HsCName -> HsCName -> Bool)
-> (HsCName -> HsCName -> Bool)
-> (HsCName -> HsCName -> HsCName)
-> (HsCName -> HsCName -> HsCName)
-> Ord HsCName
HsCName -> HsCName -> Bool
HsCName -> HsCName -> Ordering
HsCName -> HsCName -> HsCName
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: HsCName -> HsCName -> Ordering
compare :: HsCName -> HsCName -> Ordering
$c< :: HsCName -> HsCName -> Bool
< :: HsCName -> HsCName -> Bool
$c<= :: HsCName -> HsCName -> Bool
<= :: HsCName -> HsCName -> Bool
$c> :: HsCName -> HsCName -> Bool
> :: HsCName -> HsCName -> Bool
$c>= :: HsCName -> HsCName -> Bool
>= :: HsCName -> HsCName -> Bool
$cmax :: HsCName -> HsCName -> HsCName
max :: HsCName -> HsCName -> HsCName
$cmin :: HsCName -> HsCName -> HsCName
min :: HsCName -> HsCName -> HsCName
Ord,Int -> HsCName -> ShowS
[HsCName] -> ShowS
HsCName -> String
(Int -> HsCName -> ShowS)
-> (HsCName -> String) -> ([HsCName] -> ShowS) -> Show HsCName
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsCName -> ShowS
showsPrec :: Int -> HsCName -> ShowS
$cshow :: HsCName -> String
show :: HsCName -> String
$cshowList :: [HsCName] -> ShowS
showList :: [HsCName] -> ShowS
Show,Typeable,Typeable HsCName
Typeable HsCName =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsCName -> c HsCName)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsCName)
-> (HsCName -> Constr)
-> (HsCName -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsCName))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsCName))
-> ((forall b. Data b => b -> b) -> HsCName -> HsCName)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsCName -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsCName -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsCName -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> HsCName -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsCName -> m HsCName)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsCName -> m HsCName)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsCName -> m HsCName)
-> Data HsCName
HsCName -> Constr
HsCName -> DataType
(forall b. Data b => b -> b) -> HsCName -> HsCName
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsCName -> u
forall u. (forall d. Data d => d -> u) -> HsCName -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsCName -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsCName -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsCName -> m HsCName
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsCName -> m HsCName
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsCName
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsCName -> c HsCName
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsCName)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsCName)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsCName -> c HsCName
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsCName -> c HsCName
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsCName
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsCName
$ctoConstr :: HsCName -> Constr
toConstr :: HsCName -> Constr
$cdataTypeOf :: HsCName -> DataType
dataTypeOf :: HsCName -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsCName)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsCName)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsCName)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsCName)
$cgmapT :: (forall b. Data b => b -> b) -> HsCName -> HsCName
gmapT :: (forall b. Data b => b -> b) -> HsCName -> HsCName
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsCName -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsCName -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsCName -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsCName -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsCName -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsCName -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsCName -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsCName -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsCName -> m HsCName
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsCName -> m HsCName
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsCName -> m HsCName
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsCName -> m HsCName
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsCName -> m HsCName
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsCName -> m HsCName
Data)
#else
deriving (Eq,Ord,Show)
#endif
data HsModule = HsModule SrcLoc Module (Maybe [HsExportSpec])
[HsImportDecl] [HsDecl]
#ifdef __GLASGOW_HASKELL__
deriving (HsModule -> HsModule -> Bool
(HsModule -> HsModule -> Bool)
-> (HsModule -> HsModule -> Bool) -> Eq HsModule
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsModule -> HsModule -> Bool
== :: HsModule -> HsModule -> Bool
$c/= :: HsModule -> HsModule -> Bool
/= :: HsModule -> HsModule -> Bool
Eq,Int -> HsModule -> ShowS
[HsModule] -> ShowS
HsModule -> String
(Int -> HsModule -> ShowS)
-> (HsModule -> String) -> ([HsModule] -> ShowS) -> Show HsModule
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsModule -> ShowS
showsPrec :: Int -> HsModule -> ShowS
$cshow :: HsModule -> String
show :: HsModule -> String
$cshowList :: [HsModule] -> ShowS
showList :: [HsModule] -> ShowS
Show,Typeable,Typeable HsModule
Typeable HsModule =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsModule -> c HsModule)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsModule)
-> (HsModule -> Constr)
-> (HsModule -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsModule))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsModule))
-> ((forall b. Data b => b -> b) -> HsModule -> HsModule)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsModule -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsModule -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsModule -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> HsModule -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsModule -> m HsModule)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsModule -> m HsModule)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsModule -> m HsModule)
-> Data HsModule
HsModule -> Constr
HsModule -> DataType
(forall b. Data b => b -> b) -> HsModule -> HsModule
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsModule -> u
forall u. (forall d. Data d => d -> u) -> HsModule -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsModule -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsModule -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsModule -> m HsModule
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsModule -> m HsModule
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsModule
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsModule -> c HsModule
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsModule)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsModule)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsModule -> c HsModule
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsModule -> c HsModule
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsModule
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsModule
$ctoConstr :: HsModule -> Constr
toConstr :: HsModule -> Constr
$cdataTypeOf :: HsModule -> DataType
dataTypeOf :: HsModule -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsModule)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsModule)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsModule)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsModule)
$cgmapT :: (forall b. Data b => b -> b) -> HsModule -> HsModule
gmapT :: (forall b. Data b => b -> b) -> HsModule -> HsModule
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsModule -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsModule -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsModule -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsModule -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsModule -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsModule -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsModule -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsModule -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsModule -> m HsModule
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsModule -> m HsModule
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsModule -> m HsModule
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsModule -> m HsModule
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsModule -> m HsModule
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsModule -> m HsModule
Data)
#else
deriving (Eq,Show)
#endif
data HsExportSpec
= HsEVar HsQName
| HsEAbs HsQName
| HsEThingAll HsQName
| HsEThingWith HsQName [HsCName]
| HsEModuleContents Module
#ifdef __GLASGOW_HASKELL__
deriving (HsExportSpec -> HsExportSpec -> Bool
(HsExportSpec -> HsExportSpec -> Bool)
-> (HsExportSpec -> HsExportSpec -> Bool) -> Eq HsExportSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsExportSpec -> HsExportSpec -> Bool
== :: HsExportSpec -> HsExportSpec -> Bool
$c/= :: HsExportSpec -> HsExportSpec -> Bool
/= :: HsExportSpec -> HsExportSpec -> Bool
Eq,Int -> HsExportSpec -> ShowS
[HsExportSpec] -> ShowS
HsExportSpec -> String
(Int -> HsExportSpec -> ShowS)
-> (HsExportSpec -> String)
-> ([HsExportSpec] -> ShowS)
-> Show HsExportSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsExportSpec -> ShowS
showsPrec :: Int -> HsExportSpec -> ShowS
$cshow :: HsExportSpec -> String
show :: HsExportSpec -> String
$cshowList :: [HsExportSpec] -> ShowS
showList :: [HsExportSpec] -> ShowS
Show,Typeable,Typeable HsExportSpec
Typeable HsExportSpec =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsExportSpec -> c HsExportSpec)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsExportSpec)
-> (HsExportSpec -> Constr)
-> (HsExportSpec -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsExportSpec))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsExportSpec))
-> ((forall b. Data b => b -> b) -> HsExportSpec -> HsExportSpec)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsExportSpec -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsExportSpec -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsExportSpec -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> HsExportSpec -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsExportSpec -> m HsExportSpec)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsExportSpec -> m HsExportSpec)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsExportSpec -> m HsExportSpec)
-> Data HsExportSpec
HsExportSpec -> Constr
HsExportSpec -> DataType
(forall b. Data b => b -> b) -> HsExportSpec -> HsExportSpec
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsExportSpec -> u
forall u. (forall d. Data d => d -> u) -> HsExportSpec -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsExportSpec -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsExportSpec -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsExportSpec -> m HsExportSpec
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsExportSpec -> m HsExportSpec
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsExportSpec
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsExportSpec -> c HsExportSpec
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsExportSpec)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsExportSpec)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsExportSpec -> c HsExportSpec
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsExportSpec -> c HsExportSpec
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsExportSpec
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsExportSpec
$ctoConstr :: HsExportSpec -> Constr
toConstr :: HsExportSpec -> Constr
$cdataTypeOf :: HsExportSpec -> DataType
dataTypeOf :: HsExportSpec -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsExportSpec)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsExportSpec)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsExportSpec)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsExportSpec)
$cgmapT :: (forall b. Data b => b -> b) -> HsExportSpec -> HsExportSpec
gmapT :: (forall b. Data b => b -> b) -> HsExportSpec -> HsExportSpec
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsExportSpec -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsExportSpec -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsExportSpec -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsExportSpec -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsExportSpec -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsExportSpec -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsExportSpec -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsExportSpec -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsExportSpec -> m HsExportSpec
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsExportSpec -> m HsExportSpec
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsExportSpec -> m HsExportSpec
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsExportSpec -> m HsExportSpec
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsExportSpec -> m HsExportSpec
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsExportSpec -> m HsExportSpec
Data)
#else
deriving (Eq,Show)
#endif
data HsImportDecl = HsImportDecl
{ HsImportDecl -> SrcLoc
importLoc :: SrcLoc
, HsImportDecl -> Module
importModule :: Module
, HsImportDecl -> Bool
importQualified :: Bool
, HsImportDecl -> Maybe Module
importAs :: Maybe Module
, HsImportDecl -> Maybe (Bool, [HsImportSpec])
importSpecs :: Maybe (Bool,[HsImportSpec])
}
#ifdef __GLASGOW_HASKELL__
deriving (HsImportDecl -> HsImportDecl -> Bool
(HsImportDecl -> HsImportDecl -> Bool)
-> (HsImportDecl -> HsImportDecl -> Bool) -> Eq HsImportDecl
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsImportDecl -> HsImportDecl -> Bool
== :: HsImportDecl -> HsImportDecl -> Bool
$c/= :: HsImportDecl -> HsImportDecl -> Bool
/= :: HsImportDecl -> HsImportDecl -> Bool
Eq,Int -> HsImportDecl -> ShowS
[HsImportDecl] -> ShowS
HsImportDecl -> String
(Int -> HsImportDecl -> ShowS)
-> (HsImportDecl -> String)
-> ([HsImportDecl] -> ShowS)
-> Show HsImportDecl
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsImportDecl -> ShowS
showsPrec :: Int -> HsImportDecl -> ShowS
$cshow :: HsImportDecl -> String
show :: HsImportDecl -> String
$cshowList :: [HsImportDecl] -> ShowS
showList :: [HsImportDecl] -> ShowS
Show,Typeable,Typeable HsImportDecl
Typeable HsImportDecl =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsImportDecl -> c HsImportDecl)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsImportDecl)
-> (HsImportDecl -> Constr)
-> (HsImportDecl -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsImportDecl))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsImportDecl))
-> ((forall b. Data b => b -> b) -> HsImportDecl -> HsImportDecl)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsImportDecl -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsImportDecl -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsImportDecl -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> HsImportDecl -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsImportDecl -> m HsImportDecl)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsImportDecl -> m HsImportDecl)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsImportDecl -> m HsImportDecl)
-> Data HsImportDecl
HsImportDecl -> Constr
HsImportDecl -> DataType
(forall b. Data b => b -> b) -> HsImportDecl -> HsImportDecl
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsImportDecl -> u
forall u. (forall d. Data d => d -> u) -> HsImportDecl -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsImportDecl -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsImportDecl -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsImportDecl -> m HsImportDecl
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsImportDecl -> m HsImportDecl
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsImportDecl
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsImportDecl -> c HsImportDecl
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsImportDecl)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsImportDecl)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsImportDecl -> c HsImportDecl
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsImportDecl -> c HsImportDecl
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsImportDecl
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsImportDecl
$ctoConstr :: HsImportDecl -> Constr
toConstr :: HsImportDecl -> Constr
$cdataTypeOf :: HsImportDecl -> DataType
dataTypeOf :: HsImportDecl -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsImportDecl)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsImportDecl)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsImportDecl)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsImportDecl)
$cgmapT :: (forall b. Data b => b -> b) -> HsImportDecl -> HsImportDecl
gmapT :: (forall b. Data b => b -> b) -> HsImportDecl -> HsImportDecl
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsImportDecl -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsImportDecl -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsImportDecl -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsImportDecl -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsImportDecl -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsImportDecl -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsImportDecl -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsImportDecl -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsImportDecl -> m HsImportDecl
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsImportDecl -> m HsImportDecl
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsImportDecl -> m HsImportDecl
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsImportDecl -> m HsImportDecl
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsImportDecl -> m HsImportDecl
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsImportDecl -> m HsImportDecl
Data)
#else
deriving (Eq,Show)
#endif
data HsImportSpec
= HsIVar HsName
| HsIAbs HsName
| HsIThingAll HsName
| HsIThingWith HsName [HsCName]
#ifdef __GLASGOW_HASKELL__
deriving (HsImportSpec -> HsImportSpec -> Bool
(HsImportSpec -> HsImportSpec -> Bool)
-> (HsImportSpec -> HsImportSpec -> Bool) -> Eq HsImportSpec
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsImportSpec -> HsImportSpec -> Bool
== :: HsImportSpec -> HsImportSpec -> Bool
$c/= :: HsImportSpec -> HsImportSpec -> Bool
/= :: HsImportSpec -> HsImportSpec -> Bool
Eq,Int -> HsImportSpec -> ShowS
[HsImportSpec] -> ShowS
HsImportSpec -> String
(Int -> HsImportSpec -> ShowS)
-> (HsImportSpec -> String)
-> ([HsImportSpec] -> ShowS)
-> Show HsImportSpec
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsImportSpec -> ShowS
showsPrec :: Int -> HsImportSpec -> ShowS
$cshow :: HsImportSpec -> String
show :: HsImportSpec -> String
$cshowList :: [HsImportSpec] -> ShowS
showList :: [HsImportSpec] -> ShowS
Show,Typeable,Typeable HsImportSpec
Typeable HsImportSpec =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsImportSpec -> c HsImportSpec)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsImportSpec)
-> (HsImportSpec -> Constr)
-> (HsImportSpec -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsImportSpec))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsImportSpec))
-> ((forall b. Data b => b -> b) -> HsImportSpec -> HsImportSpec)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsImportSpec -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsImportSpec -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsImportSpec -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> HsImportSpec -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsImportSpec -> m HsImportSpec)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsImportSpec -> m HsImportSpec)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsImportSpec -> m HsImportSpec)
-> Data HsImportSpec
HsImportSpec -> Constr
HsImportSpec -> DataType
(forall b. Data b => b -> b) -> HsImportSpec -> HsImportSpec
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsImportSpec -> u
forall u. (forall d. Data d => d -> u) -> HsImportSpec -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsImportSpec -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsImportSpec -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsImportSpec -> m HsImportSpec
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsImportSpec -> m HsImportSpec
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsImportSpec
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsImportSpec -> c HsImportSpec
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsImportSpec)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsImportSpec)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsImportSpec -> c HsImportSpec
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsImportSpec -> c HsImportSpec
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsImportSpec
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsImportSpec
$ctoConstr :: HsImportSpec -> Constr
toConstr :: HsImportSpec -> Constr
$cdataTypeOf :: HsImportSpec -> DataType
dataTypeOf :: HsImportSpec -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsImportSpec)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsImportSpec)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsImportSpec)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsImportSpec)
$cgmapT :: (forall b. Data b => b -> b) -> HsImportSpec -> HsImportSpec
gmapT :: (forall b. Data b => b -> b) -> HsImportSpec -> HsImportSpec
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsImportSpec -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsImportSpec -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsImportSpec -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsImportSpec -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsImportSpec -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsImportSpec -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsImportSpec -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsImportSpec -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsImportSpec -> m HsImportSpec
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsImportSpec -> m HsImportSpec
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsImportSpec -> m HsImportSpec
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsImportSpec -> m HsImportSpec
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsImportSpec -> m HsImportSpec
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsImportSpec -> m HsImportSpec
Data)
#else
deriving (Eq,Show)
#endif
data HsAssoc
= HsAssocNone
| HsAssocLeft
| HsAssocRight
#ifdef __GLASGOW_HASKELL__
deriving (HsAssoc -> HsAssoc -> Bool
(HsAssoc -> HsAssoc -> Bool)
-> (HsAssoc -> HsAssoc -> Bool) -> Eq HsAssoc
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsAssoc -> HsAssoc -> Bool
== :: HsAssoc -> HsAssoc -> Bool
$c/= :: HsAssoc -> HsAssoc -> Bool
/= :: HsAssoc -> HsAssoc -> Bool
Eq,Int -> HsAssoc -> ShowS
[HsAssoc] -> ShowS
HsAssoc -> String
(Int -> HsAssoc -> ShowS)
-> (HsAssoc -> String) -> ([HsAssoc] -> ShowS) -> Show HsAssoc
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsAssoc -> ShowS
showsPrec :: Int -> HsAssoc -> ShowS
$cshow :: HsAssoc -> String
show :: HsAssoc -> String
$cshowList :: [HsAssoc] -> ShowS
showList :: [HsAssoc] -> ShowS
Show,Typeable,Typeable HsAssoc
Typeable HsAssoc =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsAssoc -> c HsAssoc)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsAssoc)
-> (HsAssoc -> Constr)
-> (HsAssoc -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsAssoc))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsAssoc))
-> ((forall b. Data b => b -> b) -> HsAssoc -> HsAssoc)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsAssoc -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsAssoc -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsAssoc -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> HsAssoc -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsAssoc -> m HsAssoc)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsAssoc -> m HsAssoc)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsAssoc -> m HsAssoc)
-> Data HsAssoc
HsAssoc -> Constr
HsAssoc -> DataType
(forall b. Data b => b -> b) -> HsAssoc -> HsAssoc
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsAssoc -> u
forall u. (forall d. Data d => d -> u) -> HsAssoc -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsAssoc -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsAssoc -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsAssoc -> m HsAssoc
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsAssoc -> m HsAssoc
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsAssoc
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsAssoc -> c HsAssoc
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsAssoc)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsAssoc)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsAssoc -> c HsAssoc
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsAssoc -> c HsAssoc
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsAssoc
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsAssoc
$ctoConstr :: HsAssoc -> Constr
toConstr :: HsAssoc -> Constr
$cdataTypeOf :: HsAssoc -> DataType
dataTypeOf :: HsAssoc -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsAssoc)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsAssoc)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsAssoc)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsAssoc)
$cgmapT :: (forall b. Data b => b -> b) -> HsAssoc -> HsAssoc
gmapT :: (forall b. Data b => b -> b) -> HsAssoc -> HsAssoc
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsAssoc -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsAssoc -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsAssoc -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsAssoc -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsAssoc -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsAssoc -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsAssoc -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsAssoc -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsAssoc -> m HsAssoc
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsAssoc -> m HsAssoc
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsAssoc -> m HsAssoc
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsAssoc -> m HsAssoc
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsAssoc -> m HsAssoc
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsAssoc -> m HsAssoc
Data)
#else
deriving (Eq,Show)
#endif
data HsDecl
= HsTypeDecl SrcLoc HsName [HsName] HsType
| HsDataDecl SrcLoc HsContext HsName [HsName] [HsConDecl] [HsQName]
| HsInfixDecl SrcLoc HsAssoc Int [HsOp]
| HsNewTypeDecl SrcLoc HsContext HsName [HsName] HsConDecl [HsQName]
| HsClassDecl SrcLoc HsContext HsName [HsName] [HsDecl]
| HsInstDecl SrcLoc HsContext HsQName [HsType] [HsDecl]
| HsDefaultDecl SrcLoc [HsType]
| HsTypeSig SrcLoc [HsName] HsQualType
| HsFunBind [HsMatch]
| HsPatBind SrcLoc HsPat HsRhs [HsDecl]
| HsForeignImport SrcLoc String HsSafety String HsName HsType
| HsForeignExport SrcLoc String String HsName HsType
#ifdef __GLASGOW_HASKELL__
deriving (HsDecl -> HsDecl -> Bool
(HsDecl -> HsDecl -> Bool)
-> (HsDecl -> HsDecl -> Bool) -> Eq HsDecl
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsDecl -> HsDecl -> Bool
== :: HsDecl -> HsDecl -> Bool
$c/= :: HsDecl -> HsDecl -> Bool
/= :: HsDecl -> HsDecl -> Bool
Eq,Int -> HsDecl -> ShowS
[HsDecl] -> ShowS
HsDecl -> String
(Int -> HsDecl -> ShowS)
-> (HsDecl -> String) -> ([HsDecl] -> ShowS) -> Show HsDecl
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsDecl -> ShowS
showsPrec :: Int -> HsDecl -> ShowS
$cshow :: HsDecl -> String
show :: HsDecl -> String
$cshowList :: [HsDecl] -> ShowS
showList :: [HsDecl] -> ShowS
Show,Typeable,Typeable HsDecl
Typeable HsDecl =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsDecl -> c HsDecl)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsDecl)
-> (HsDecl -> Constr)
-> (HsDecl -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsDecl))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsDecl))
-> ((forall b. Data b => b -> b) -> HsDecl -> HsDecl)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsDecl -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsDecl -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsDecl -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> HsDecl -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsDecl -> m HsDecl)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsDecl -> m HsDecl)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsDecl -> m HsDecl)
-> Data HsDecl
HsDecl -> Constr
HsDecl -> DataType
(forall b. Data b => b -> b) -> HsDecl -> HsDecl
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsDecl -> u
forall u. (forall d. Data d => d -> u) -> HsDecl -> [u]
forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsDecl -> r
forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsDecl -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsDecl -> m HsDecl
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsDecl -> m HsDecl
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsDecl
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsDecl -> c HsDecl
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsDecl)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsDecl)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsDecl -> c HsDecl
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsDecl -> c HsDecl
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsDecl
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsDecl
$ctoConstr :: HsDecl -> Constr
toConstr :: HsDecl -> Constr
$cdataTypeOf :: HsDecl -> DataType
dataTypeOf :: HsDecl -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsDecl)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsDecl)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsDecl)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsDecl)
$cgmapT :: (forall b. Data b => b -> b) -> HsDecl -> HsDecl
gmapT :: (forall b. Data b => b -> b) -> HsDecl -> HsDecl
$cgmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsDecl -> r
gmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsDecl -> r
$cgmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsDecl -> r
gmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsDecl -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsDecl -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsDecl -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsDecl -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsDecl -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsDecl -> m HsDecl
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsDecl -> m HsDecl
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsDecl -> m HsDecl
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsDecl -> m HsDecl
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsDecl -> m HsDecl
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsDecl -> m HsDecl
Data)
#else
deriving (Eq,Show)
#endif
data HsMatch
= HsMatch SrcLoc HsName [HsPat] HsRhs [HsDecl]
#ifdef __GLASGOW_HASKELL__
deriving (HsMatch -> HsMatch -> Bool
(HsMatch -> HsMatch -> Bool)
-> (HsMatch -> HsMatch -> Bool) -> Eq HsMatch
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsMatch -> HsMatch -> Bool
== :: HsMatch -> HsMatch -> Bool
$c/= :: HsMatch -> HsMatch -> Bool
/= :: HsMatch -> HsMatch -> Bool
Eq,Int -> HsMatch -> ShowS
[HsMatch] -> ShowS
HsMatch -> String
(Int -> HsMatch -> ShowS)
-> (HsMatch -> String) -> ([HsMatch] -> ShowS) -> Show HsMatch
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsMatch -> ShowS
showsPrec :: Int -> HsMatch -> ShowS
$cshow :: HsMatch -> String
show :: HsMatch -> String
$cshowList :: [HsMatch] -> ShowS
showList :: [HsMatch] -> ShowS
Show,Typeable,Typeable HsMatch
Typeable HsMatch =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsMatch -> c HsMatch)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsMatch)
-> (HsMatch -> Constr)
-> (HsMatch -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsMatch))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsMatch))
-> ((forall b. Data b => b -> b) -> HsMatch -> HsMatch)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsMatch -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsMatch -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsMatch -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> HsMatch -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsMatch -> m HsMatch)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsMatch -> m HsMatch)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsMatch -> m HsMatch)
-> Data HsMatch
HsMatch -> Constr
HsMatch -> DataType
(forall b. Data b => b -> b) -> HsMatch -> HsMatch
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsMatch -> u
forall u. (forall d. Data d => d -> u) -> HsMatch -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsMatch -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsMatch -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsMatch -> m HsMatch
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsMatch -> m HsMatch
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsMatch
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsMatch -> c HsMatch
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsMatch)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsMatch)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsMatch -> c HsMatch
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsMatch -> c HsMatch
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsMatch
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsMatch
$ctoConstr :: HsMatch -> Constr
toConstr :: HsMatch -> Constr
$cdataTypeOf :: HsMatch -> DataType
dataTypeOf :: HsMatch -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsMatch)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsMatch)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsMatch)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsMatch)
$cgmapT :: (forall b. Data b => b -> b) -> HsMatch -> HsMatch
gmapT :: (forall b. Data b => b -> b) -> HsMatch -> HsMatch
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsMatch -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsMatch -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsMatch -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsMatch -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsMatch -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsMatch -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsMatch -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsMatch -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsMatch -> m HsMatch
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsMatch -> m HsMatch
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsMatch -> m HsMatch
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsMatch -> m HsMatch
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsMatch -> m HsMatch
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsMatch -> m HsMatch
Data)
#else
deriving (Eq,Show)
#endif
data HsConDecl
= HsConDecl SrcLoc HsName [HsBangType]
| HsRecDecl SrcLoc HsName [([HsName],HsBangType)]
#ifdef __GLASGOW_HASKELL__
deriving (HsConDecl -> HsConDecl -> Bool
(HsConDecl -> HsConDecl -> Bool)
-> (HsConDecl -> HsConDecl -> Bool) -> Eq HsConDecl
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsConDecl -> HsConDecl -> Bool
== :: HsConDecl -> HsConDecl -> Bool
$c/= :: HsConDecl -> HsConDecl -> Bool
/= :: HsConDecl -> HsConDecl -> Bool
Eq,Int -> HsConDecl -> ShowS
[HsConDecl] -> ShowS
HsConDecl -> String
(Int -> HsConDecl -> ShowS)
-> (HsConDecl -> String)
-> ([HsConDecl] -> ShowS)
-> Show HsConDecl
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsConDecl -> ShowS
showsPrec :: Int -> HsConDecl -> ShowS
$cshow :: HsConDecl -> String
show :: HsConDecl -> String
$cshowList :: [HsConDecl] -> ShowS
showList :: [HsConDecl] -> ShowS
Show,Typeable,Typeable HsConDecl
Typeable HsConDecl =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsConDecl -> c HsConDecl)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsConDecl)
-> (HsConDecl -> Constr)
-> (HsConDecl -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsConDecl))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsConDecl))
-> ((forall b. Data b => b -> b) -> HsConDecl -> HsConDecl)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsConDecl -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsConDecl -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsConDecl -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> HsConDecl -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsConDecl -> m HsConDecl)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsConDecl -> m HsConDecl)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsConDecl -> m HsConDecl)
-> Data HsConDecl
HsConDecl -> Constr
HsConDecl -> DataType
(forall b. Data b => b -> b) -> HsConDecl -> HsConDecl
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsConDecl -> u
forall u. (forall d. Data d => d -> u) -> HsConDecl -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsConDecl -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsConDecl -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsConDecl -> m HsConDecl
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsConDecl -> m HsConDecl
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsConDecl
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsConDecl -> c HsConDecl
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsConDecl)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsConDecl)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsConDecl -> c HsConDecl
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsConDecl -> c HsConDecl
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsConDecl
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsConDecl
$ctoConstr :: HsConDecl -> Constr
toConstr :: HsConDecl -> Constr
$cdataTypeOf :: HsConDecl -> DataType
dataTypeOf :: HsConDecl -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsConDecl)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsConDecl)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsConDecl)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsConDecl)
$cgmapT :: (forall b. Data b => b -> b) -> HsConDecl -> HsConDecl
gmapT :: (forall b. Data b => b -> b) -> HsConDecl -> HsConDecl
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsConDecl -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsConDecl -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsConDecl -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsConDecl -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsConDecl -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsConDecl -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsConDecl -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsConDecl -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsConDecl -> m HsConDecl
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsConDecl -> m HsConDecl
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsConDecl -> m HsConDecl
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsConDecl -> m HsConDecl
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsConDecl -> m HsConDecl
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsConDecl -> m HsConDecl
Data)
#else
deriving (Eq,Show)
#endif
data HsBangType
= HsBangedTy HsType
| HsUnBangedTy HsType
#ifdef __GLASGOW_HASKELL__
deriving (HsBangType -> HsBangType -> Bool
(HsBangType -> HsBangType -> Bool)
-> (HsBangType -> HsBangType -> Bool) -> Eq HsBangType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsBangType -> HsBangType -> Bool
== :: HsBangType -> HsBangType -> Bool
$c/= :: HsBangType -> HsBangType -> Bool
/= :: HsBangType -> HsBangType -> Bool
Eq,Int -> HsBangType -> ShowS
[HsBangType] -> ShowS
HsBangType -> String
(Int -> HsBangType -> ShowS)
-> (HsBangType -> String)
-> ([HsBangType] -> ShowS)
-> Show HsBangType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsBangType -> ShowS
showsPrec :: Int -> HsBangType -> ShowS
$cshow :: HsBangType -> String
show :: HsBangType -> String
$cshowList :: [HsBangType] -> ShowS
showList :: [HsBangType] -> ShowS
Show,Typeable,Typeable HsBangType
Typeable HsBangType =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsBangType -> c HsBangType)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsBangType)
-> (HsBangType -> Constr)
-> (HsBangType -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsBangType))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsBangType))
-> ((forall b. Data b => b -> b) -> HsBangType -> HsBangType)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsBangType -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsBangType -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsBangType -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> HsBangType -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsBangType -> m HsBangType)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsBangType -> m HsBangType)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsBangType -> m HsBangType)
-> Data HsBangType
HsBangType -> Constr
HsBangType -> DataType
(forall b. Data b => b -> b) -> HsBangType -> HsBangType
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsBangType -> u
forall u. (forall d. Data d => d -> u) -> HsBangType -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsBangType -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsBangType -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsBangType -> m HsBangType
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsBangType -> m HsBangType
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsBangType
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsBangType -> c HsBangType
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsBangType)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsBangType)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsBangType -> c HsBangType
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsBangType -> c HsBangType
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsBangType
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsBangType
$ctoConstr :: HsBangType -> Constr
toConstr :: HsBangType -> Constr
$cdataTypeOf :: HsBangType -> DataType
dataTypeOf :: HsBangType -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsBangType)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsBangType)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsBangType)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsBangType)
$cgmapT :: (forall b. Data b => b -> b) -> HsBangType -> HsBangType
gmapT :: (forall b. Data b => b -> b) -> HsBangType -> HsBangType
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsBangType -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsBangType -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsBangType -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsBangType -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsBangType -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsBangType -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsBangType -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsBangType -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsBangType -> m HsBangType
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsBangType -> m HsBangType
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsBangType -> m HsBangType
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsBangType -> m HsBangType
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsBangType -> m HsBangType
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsBangType -> m HsBangType
Data)
#else
deriving (Eq,Show)
#endif
data HsRhs
= HsUnGuardedRhs HsExp
| HsGuardedRhss [HsGuardedRhs]
#ifdef __GLASGOW_HASKELL__
deriving (HsRhs -> HsRhs -> Bool
(HsRhs -> HsRhs -> Bool) -> (HsRhs -> HsRhs -> Bool) -> Eq HsRhs
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsRhs -> HsRhs -> Bool
== :: HsRhs -> HsRhs -> Bool
$c/= :: HsRhs -> HsRhs -> Bool
/= :: HsRhs -> HsRhs -> Bool
Eq,Int -> HsRhs -> ShowS
[HsRhs] -> ShowS
HsRhs -> String
(Int -> HsRhs -> ShowS)
-> (HsRhs -> String) -> ([HsRhs] -> ShowS) -> Show HsRhs
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsRhs -> ShowS
showsPrec :: Int -> HsRhs -> ShowS
$cshow :: HsRhs -> String
show :: HsRhs -> String
$cshowList :: [HsRhs] -> ShowS
showList :: [HsRhs] -> ShowS
Show,Typeable,Typeable HsRhs
Typeable HsRhs =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsRhs -> c HsRhs)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsRhs)
-> (HsRhs -> Constr)
-> (HsRhs -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsRhs))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsRhs))
-> ((forall b. Data b => b -> b) -> HsRhs -> HsRhs)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsRhs -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsRhs -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsRhs -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> HsRhs -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsRhs -> m HsRhs)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsRhs -> m HsRhs)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsRhs -> m HsRhs)
-> Data HsRhs
HsRhs -> Constr
HsRhs -> DataType
(forall b. Data b => b -> b) -> HsRhs -> HsRhs
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsRhs -> u
forall u. (forall d. Data d => d -> u) -> HsRhs -> [u]
forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsRhs -> r
forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsRhs -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsRhs -> m HsRhs
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsRhs -> m HsRhs
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsRhs
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsRhs -> c HsRhs
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsRhs)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsRhs)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsRhs -> c HsRhs
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsRhs -> c HsRhs
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsRhs
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsRhs
$ctoConstr :: HsRhs -> Constr
toConstr :: HsRhs -> Constr
$cdataTypeOf :: HsRhs -> DataType
dataTypeOf :: HsRhs -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsRhs)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsRhs)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsRhs)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsRhs)
$cgmapT :: (forall b. Data b => b -> b) -> HsRhs -> HsRhs
gmapT :: (forall b. Data b => b -> b) -> HsRhs -> HsRhs
$cgmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsRhs -> r
gmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsRhs -> r
$cgmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsRhs -> r
gmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsRhs -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsRhs -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsRhs -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsRhs -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsRhs -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsRhs -> m HsRhs
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsRhs -> m HsRhs
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsRhs -> m HsRhs
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsRhs -> m HsRhs
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsRhs -> m HsRhs
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsRhs -> m HsRhs
Data)
#else
deriving (Eq,Show)
#endif
data HsGuardedRhs
= HsGuardedRhs SrcLoc HsExp HsExp
#ifdef __GLASGOW_HASKELL__
deriving (HsGuardedRhs -> HsGuardedRhs -> Bool
(HsGuardedRhs -> HsGuardedRhs -> Bool)
-> (HsGuardedRhs -> HsGuardedRhs -> Bool) -> Eq HsGuardedRhs
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsGuardedRhs -> HsGuardedRhs -> Bool
== :: HsGuardedRhs -> HsGuardedRhs -> Bool
$c/= :: HsGuardedRhs -> HsGuardedRhs -> Bool
/= :: HsGuardedRhs -> HsGuardedRhs -> Bool
Eq,Int -> HsGuardedRhs -> ShowS
[HsGuardedRhs] -> ShowS
HsGuardedRhs -> String
(Int -> HsGuardedRhs -> ShowS)
-> (HsGuardedRhs -> String)
-> ([HsGuardedRhs] -> ShowS)
-> Show HsGuardedRhs
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsGuardedRhs -> ShowS
showsPrec :: Int -> HsGuardedRhs -> ShowS
$cshow :: HsGuardedRhs -> String
show :: HsGuardedRhs -> String
$cshowList :: [HsGuardedRhs] -> ShowS
showList :: [HsGuardedRhs] -> ShowS
Show,Typeable,Typeable HsGuardedRhs
Typeable HsGuardedRhs =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsGuardedRhs -> c HsGuardedRhs)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsGuardedRhs)
-> (HsGuardedRhs -> Constr)
-> (HsGuardedRhs -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsGuardedRhs))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsGuardedRhs))
-> ((forall b. Data b => b -> b) -> HsGuardedRhs -> HsGuardedRhs)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsGuardedRhs -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsGuardedRhs -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsGuardedRhs -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> HsGuardedRhs -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsGuardedRhs -> m HsGuardedRhs)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsGuardedRhs -> m HsGuardedRhs)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsGuardedRhs -> m HsGuardedRhs)
-> Data HsGuardedRhs
HsGuardedRhs -> Constr
HsGuardedRhs -> DataType
(forall b. Data b => b -> b) -> HsGuardedRhs -> HsGuardedRhs
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsGuardedRhs -> u
forall u. (forall d. Data d => d -> u) -> HsGuardedRhs -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsGuardedRhs -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsGuardedRhs -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsGuardedRhs -> m HsGuardedRhs
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsGuardedRhs -> m HsGuardedRhs
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsGuardedRhs
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsGuardedRhs -> c HsGuardedRhs
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsGuardedRhs)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsGuardedRhs)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsGuardedRhs -> c HsGuardedRhs
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsGuardedRhs -> c HsGuardedRhs
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsGuardedRhs
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsGuardedRhs
$ctoConstr :: HsGuardedRhs -> Constr
toConstr :: HsGuardedRhs -> Constr
$cdataTypeOf :: HsGuardedRhs -> DataType
dataTypeOf :: HsGuardedRhs -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsGuardedRhs)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsGuardedRhs)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsGuardedRhs)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsGuardedRhs)
$cgmapT :: (forall b. Data b => b -> b) -> HsGuardedRhs -> HsGuardedRhs
gmapT :: (forall b. Data b => b -> b) -> HsGuardedRhs -> HsGuardedRhs
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsGuardedRhs -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsGuardedRhs -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsGuardedRhs -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsGuardedRhs -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsGuardedRhs -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsGuardedRhs -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsGuardedRhs -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsGuardedRhs -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsGuardedRhs -> m HsGuardedRhs
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsGuardedRhs -> m HsGuardedRhs
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsGuardedRhs -> m HsGuardedRhs
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsGuardedRhs -> m HsGuardedRhs
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsGuardedRhs -> m HsGuardedRhs
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsGuardedRhs -> m HsGuardedRhs
Data)
#else
deriving (Eq,Show)
#endif
data HsSafety
= HsSafe
| HsUnsafe
#ifdef __GLASGOW_HASKELL__
deriving (HsSafety -> HsSafety -> Bool
(HsSafety -> HsSafety -> Bool)
-> (HsSafety -> HsSafety -> Bool) -> Eq HsSafety
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsSafety -> HsSafety -> Bool
== :: HsSafety -> HsSafety -> Bool
$c/= :: HsSafety -> HsSafety -> Bool
/= :: HsSafety -> HsSafety -> Bool
Eq,Eq HsSafety
Eq HsSafety =>
(HsSafety -> HsSafety -> Ordering)
-> (HsSafety -> HsSafety -> Bool)
-> (HsSafety -> HsSafety -> Bool)
-> (HsSafety -> HsSafety -> Bool)
-> (HsSafety -> HsSafety -> Bool)
-> (HsSafety -> HsSafety -> HsSafety)
-> (HsSafety -> HsSafety -> HsSafety)
-> Ord HsSafety
HsSafety -> HsSafety -> Bool
HsSafety -> HsSafety -> Ordering
HsSafety -> HsSafety -> HsSafety
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: HsSafety -> HsSafety -> Ordering
compare :: HsSafety -> HsSafety -> Ordering
$c< :: HsSafety -> HsSafety -> Bool
< :: HsSafety -> HsSafety -> Bool
$c<= :: HsSafety -> HsSafety -> Bool
<= :: HsSafety -> HsSafety -> Bool
$c> :: HsSafety -> HsSafety -> Bool
> :: HsSafety -> HsSafety -> Bool
$c>= :: HsSafety -> HsSafety -> Bool
>= :: HsSafety -> HsSafety -> Bool
$cmax :: HsSafety -> HsSafety -> HsSafety
max :: HsSafety -> HsSafety -> HsSafety
$cmin :: HsSafety -> HsSafety -> HsSafety
min :: HsSafety -> HsSafety -> HsSafety
Ord,Int -> HsSafety -> ShowS
[HsSafety] -> ShowS
HsSafety -> String
(Int -> HsSafety -> ShowS)
-> (HsSafety -> String) -> ([HsSafety] -> ShowS) -> Show HsSafety
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsSafety -> ShowS
showsPrec :: Int -> HsSafety -> ShowS
$cshow :: HsSafety -> String
show :: HsSafety -> String
$cshowList :: [HsSafety] -> ShowS
showList :: [HsSafety] -> ShowS
Show,Typeable,Typeable HsSafety
Typeable HsSafety =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsSafety -> c HsSafety)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsSafety)
-> (HsSafety -> Constr)
-> (HsSafety -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsSafety))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsSafety))
-> ((forall b. Data b => b -> b) -> HsSafety -> HsSafety)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsSafety -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsSafety -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsSafety -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> HsSafety -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsSafety -> m HsSafety)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsSafety -> m HsSafety)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsSafety -> m HsSafety)
-> Data HsSafety
HsSafety -> Constr
HsSafety -> DataType
(forall b. Data b => b -> b) -> HsSafety -> HsSafety
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsSafety -> u
forall u. (forall d. Data d => d -> u) -> HsSafety -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsSafety -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsSafety -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsSafety -> m HsSafety
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsSafety -> m HsSafety
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsSafety
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsSafety -> c HsSafety
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsSafety)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsSafety)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsSafety -> c HsSafety
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsSafety -> c HsSafety
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsSafety
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsSafety
$ctoConstr :: HsSafety -> Constr
toConstr :: HsSafety -> Constr
$cdataTypeOf :: HsSafety -> DataType
dataTypeOf :: HsSafety -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsSafety)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsSafety)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsSafety)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsSafety)
$cgmapT :: (forall b. Data b => b -> b) -> HsSafety -> HsSafety
gmapT :: (forall b. Data b => b -> b) -> HsSafety -> HsSafety
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsSafety -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsSafety -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsSafety -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsSafety -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsSafety -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsSafety -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsSafety -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsSafety -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsSafety -> m HsSafety
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsSafety -> m HsSafety
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsSafety -> m HsSafety
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsSafety -> m HsSafety
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsSafety -> m HsSafety
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsSafety -> m HsSafety
Data)
#else
deriving (Eq,Ord,Show)
#endif
data HsQualType
= HsQualType HsContext HsType
#ifdef __GLASGOW_HASKELL__
deriving (HsQualType -> HsQualType -> Bool
(HsQualType -> HsQualType -> Bool)
-> (HsQualType -> HsQualType -> Bool) -> Eq HsQualType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsQualType -> HsQualType -> Bool
== :: HsQualType -> HsQualType -> Bool
$c/= :: HsQualType -> HsQualType -> Bool
/= :: HsQualType -> HsQualType -> Bool
Eq,Int -> HsQualType -> ShowS
[HsQualType] -> ShowS
HsQualType -> String
(Int -> HsQualType -> ShowS)
-> (HsQualType -> String)
-> ([HsQualType] -> ShowS)
-> Show HsQualType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsQualType -> ShowS
showsPrec :: Int -> HsQualType -> ShowS
$cshow :: HsQualType -> String
show :: HsQualType -> String
$cshowList :: [HsQualType] -> ShowS
showList :: [HsQualType] -> ShowS
Show,Typeable,Typeable HsQualType
Typeable HsQualType =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsQualType -> c HsQualType)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsQualType)
-> (HsQualType -> Constr)
-> (HsQualType -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsQualType))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsQualType))
-> ((forall b. Data b => b -> b) -> HsQualType -> HsQualType)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsQualType -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsQualType -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsQualType -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> HsQualType -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsQualType -> m HsQualType)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsQualType -> m HsQualType)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsQualType -> m HsQualType)
-> Data HsQualType
HsQualType -> Constr
HsQualType -> DataType
(forall b. Data b => b -> b) -> HsQualType -> HsQualType
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsQualType -> u
forall u. (forall d. Data d => d -> u) -> HsQualType -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsQualType -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsQualType -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsQualType -> m HsQualType
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsQualType -> m HsQualType
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsQualType
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsQualType -> c HsQualType
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsQualType)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsQualType)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsQualType -> c HsQualType
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsQualType -> c HsQualType
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsQualType
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsQualType
$ctoConstr :: HsQualType -> Constr
toConstr :: HsQualType -> Constr
$cdataTypeOf :: HsQualType -> DataType
dataTypeOf :: HsQualType -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsQualType)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsQualType)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsQualType)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsQualType)
$cgmapT :: (forall b. Data b => b -> b) -> HsQualType -> HsQualType
gmapT :: (forall b. Data b => b -> b) -> HsQualType -> HsQualType
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsQualType -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsQualType -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsQualType -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsQualType -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsQualType -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsQualType -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsQualType -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsQualType -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsQualType -> m HsQualType
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsQualType -> m HsQualType
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsQualType -> m HsQualType
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsQualType -> m HsQualType
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsQualType -> m HsQualType
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsQualType -> m HsQualType
Data)
#else
deriving (Eq,Show)
#endif
data HsType
= HsTyFun HsType HsType
| HsTyTuple [HsType]
| HsTyApp HsType HsType
| HsTyVar HsName
| HsTyCon HsQName
#ifdef __GLASGOW_HASKELL__
deriving (HsType -> HsType -> Bool
(HsType -> HsType -> Bool)
-> (HsType -> HsType -> Bool) -> Eq HsType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsType -> HsType -> Bool
== :: HsType -> HsType -> Bool
$c/= :: HsType -> HsType -> Bool
/= :: HsType -> HsType -> Bool
Eq,Int -> HsType -> ShowS
[HsType] -> ShowS
HsType -> String
(Int -> HsType -> ShowS)
-> (HsType -> String) -> ([HsType] -> ShowS) -> Show HsType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsType -> ShowS
showsPrec :: Int -> HsType -> ShowS
$cshow :: HsType -> String
show :: HsType -> String
$cshowList :: [HsType] -> ShowS
showList :: [HsType] -> ShowS
Show,Typeable,Typeable HsType
Typeable HsType =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsType -> c HsType)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsType)
-> (HsType -> Constr)
-> (HsType -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsType))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsType))
-> ((forall b. Data b => b -> b) -> HsType -> HsType)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsType -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsType -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsType -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> HsType -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsType -> m HsType)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsType -> m HsType)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsType -> m HsType)
-> Data HsType
HsType -> Constr
HsType -> DataType
(forall b. Data b => b -> b) -> HsType -> HsType
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsType -> u
forall u. (forall d. Data d => d -> u) -> HsType -> [u]
forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsType -> r
forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsType -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsType -> m HsType
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsType -> m HsType
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsType
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsType -> c HsType
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsType)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsType)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsType -> c HsType
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsType -> c HsType
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsType
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsType
$ctoConstr :: HsType -> Constr
toConstr :: HsType -> Constr
$cdataTypeOf :: HsType -> DataType
dataTypeOf :: HsType -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsType)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsType)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsType)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsType)
$cgmapT :: (forall b. Data b => b -> b) -> HsType -> HsType
gmapT :: (forall b. Data b => b -> b) -> HsType -> HsType
$cgmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsType -> r
gmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsType -> r
$cgmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsType -> r
gmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsType -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsType -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsType -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsType -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsType -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsType -> m HsType
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsType -> m HsType
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsType -> m HsType
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsType -> m HsType
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsType -> m HsType
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsType -> m HsType
Data)
#else
deriving (Eq,Show)
#endif
type HsContext = [HsAsst]
type HsAsst = (HsQName,[HsType])
data HsLiteral
= HsChar Char
| HsString String
| HsInt Integer
| HsFrac Rational
| HsCharPrim Char
| HsStringPrim String
| HsIntPrim Integer
| HsFloatPrim Rational
| HsDoublePrim Rational
#ifdef __GLASGOW_HASKELL__
deriving (HsLiteral -> HsLiteral -> Bool
(HsLiteral -> HsLiteral -> Bool)
-> (HsLiteral -> HsLiteral -> Bool) -> Eq HsLiteral
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsLiteral -> HsLiteral -> Bool
== :: HsLiteral -> HsLiteral -> Bool
$c/= :: HsLiteral -> HsLiteral -> Bool
/= :: HsLiteral -> HsLiteral -> Bool
Eq,Int -> HsLiteral -> ShowS
[HsLiteral] -> ShowS
HsLiteral -> String
(Int -> HsLiteral -> ShowS)
-> (HsLiteral -> String)
-> ([HsLiteral] -> ShowS)
-> Show HsLiteral
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsLiteral -> ShowS
showsPrec :: Int -> HsLiteral -> ShowS
$cshow :: HsLiteral -> String
show :: HsLiteral -> String
$cshowList :: [HsLiteral] -> ShowS
showList :: [HsLiteral] -> ShowS
Show,Typeable,Typeable HsLiteral
Typeable HsLiteral =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsLiteral -> c HsLiteral)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsLiteral)
-> (HsLiteral -> Constr)
-> (HsLiteral -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsLiteral))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsLiteral))
-> ((forall b. Data b => b -> b) -> HsLiteral -> HsLiteral)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsLiteral -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsLiteral -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsLiteral -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> HsLiteral -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsLiteral -> m HsLiteral)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsLiteral -> m HsLiteral)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsLiteral -> m HsLiteral)
-> Data HsLiteral
HsLiteral -> Constr
HsLiteral -> DataType
(forall b. Data b => b -> b) -> HsLiteral -> HsLiteral
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsLiteral -> u
forall u. (forall d. Data d => d -> u) -> HsLiteral -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsLiteral -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsLiteral -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsLiteral -> m HsLiteral
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsLiteral -> m HsLiteral
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsLiteral
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsLiteral -> c HsLiteral
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsLiteral)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsLiteral)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsLiteral -> c HsLiteral
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsLiteral -> c HsLiteral
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsLiteral
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsLiteral
$ctoConstr :: HsLiteral -> Constr
toConstr :: HsLiteral -> Constr
$cdataTypeOf :: HsLiteral -> DataType
dataTypeOf :: HsLiteral -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsLiteral)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsLiteral)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsLiteral)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsLiteral)
$cgmapT :: (forall b. Data b => b -> b) -> HsLiteral -> HsLiteral
gmapT :: (forall b. Data b => b -> b) -> HsLiteral -> HsLiteral
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsLiteral -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsLiteral -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsLiteral -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsLiteral -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsLiteral -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsLiteral -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsLiteral -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsLiteral -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsLiteral -> m HsLiteral
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsLiteral -> m HsLiteral
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsLiteral -> m HsLiteral
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsLiteral -> m HsLiteral
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsLiteral -> m HsLiteral
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsLiteral -> m HsLiteral
Data)
#else
deriving (Eq,Show)
#endif
data HsExp
= HsVar HsQName
| HsCon HsQName
| HsLit HsLiteral
| HsInfixApp HsExp HsQOp HsExp
| HsApp HsExp HsExp
| HsNegApp HsExp
| HsLambda SrcLoc [HsPat] HsExp
| HsLet [HsDecl] HsExp
| HsIf HsExp HsExp HsExp
| HsCase HsExp [HsAlt]
| HsDo [HsStmt]
| HsTuple [HsExp]
| HsList [HsExp]
| HsParen HsExp
| HsLeftSection HsExp HsQOp
| HsRightSection HsQOp HsExp
| HsRecConstr HsQName [HsFieldUpdate]
| HsRecUpdate HsExp [HsFieldUpdate]
| HsEnumFrom HsExp
| HsEnumFromTo HsExp HsExp
| HsEnumFromThen HsExp HsExp
| HsEnumFromThenTo HsExp HsExp HsExp
| HsListComp HsExp [HsStmt]
| HsExpTypeSig SrcLoc HsExp HsQualType
| HsAsPat HsName HsExp
| HsWildCard
| HsIrrPat HsExp
#ifdef __GLASGOW_HASKELL__
deriving (HsExp -> HsExp -> Bool
(HsExp -> HsExp -> Bool) -> (HsExp -> HsExp -> Bool) -> Eq HsExp
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsExp -> HsExp -> Bool
== :: HsExp -> HsExp -> Bool
$c/= :: HsExp -> HsExp -> Bool
/= :: HsExp -> HsExp -> Bool
Eq,Int -> HsExp -> ShowS
[HsExp] -> ShowS
HsExp -> String
(Int -> HsExp -> ShowS)
-> (HsExp -> String) -> ([HsExp] -> ShowS) -> Show HsExp
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsExp -> ShowS
showsPrec :: Int -> HsExp -> ShowS
$cshow :: HsExp -> String
show :: HsExp -> String
$cshowList :: [HsExp] -> ShowS
showList :: [HsExp] -> ShowS
Show,Typeable,Typeable HsExp
Typeable HsExp =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsExp -> c HsExp)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsExp)
-> (HsExp -> Constr)
-> (HsExp -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsExp))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsExp))
-> ((forall b. Data b => b -> b) -> HsExp -> HsExp)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsExp -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsExp -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsExp -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> HsExp -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsExp -> m HsExp)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsExp -> m HsExp)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsExp -> m HsExp)
-> Data HsExp
HsExp -> Constr
HsExp -> DataType
(forall b. Data b => b -> b) -> HsExp -> HsExp
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsExp -> u
forall u. (forall d. Data d => d -> u) -> HsExp -> [u]
forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsExp -> r
forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsExp -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsExp -> m HsExp
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsExp -> m HsExp
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsExp
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsExp -> c HsExp
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsExp)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsExp)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsExp -> c HsExp
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsExp -> c HsExp
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsExp
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsExp
$ctoConstr :: HsExp -> Constr
toConstr :: HsExp -> Constr
$cdataTypeOf :: HsExp -> DataType
dataTypeOf :: HsExp -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsExp)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsExp)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsExp)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsExp)
$cgmapT :: (forall b. Data b => b -> b) -> HsExp -> HsExp
gmapT :: (forall b. Data b => b -> b) -> HsExp -> HsExp
$cgmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsExp -> r
gmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsExp -> r
$cgmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsExp -> r
gmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsExp -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsExp -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsExp -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsExp -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsExp -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsExp -> m HsExp
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsExp -> m HsExp
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsExp -> m HsExp
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsExp -> m HsExp
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsExp -> m HsExp
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsExp -> m HsExp
Data)
#else
deriving (Eq,Show)
#endif
data HsPat
= HsPVar HsName
| HsPLit HsLiteral
| HsPNeg HsPat
| HsPInfixApp HsPat HsQName HsPat
| HsPApp HsQName [HsPat]
| HsPTuple [HsPat]
| HsPList [HsPat]
| HsPParen HsPat
| HsPRec HsQName [HsPatField]
| HsPAsPat HsName HsPat
| HsPWildCard
| HsPIrrPat HsPat
#ifdef __GLASGOW_HASKELL__
deriving (HsPat -> HsPat -> Bool
(HsPat -> HsPat -> Bool) -> (HsPat -> HsPat -> Bool) -> Eq HsPat
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsPat -> HsPat -> Bool
== :: HsPat -> HsPat -> Bool
$c/= :: HsPat -> HsPat -> Bool
/= :: HsPat -> HsPat -> Bool
Eq,Int -> HsPat -> ShowS
[HsPat] -> ShowS
HsPat -> String
(Int -> HsPat -> ShowS)
-> (HsPat -> String) -> ([HsPat] -> ShowS) -> Show HsPat
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsPat -> ShowS
showsPrec :: Int -> HsPat -> ShowS
$cshow :: HsPat -> String
show :: HsPat -> String
$cshowList :: [HsPat] -> ShowS
showList :: [HsPat] -> ShowS
Show,Typeable,Typeable HsPat
Typeable HsPat =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsPat -> c HsPat)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsPat)
-> (HsPat -> Constr)
-> (HsPat -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsPat))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsPat))
-> ((forall b. Data b => b -> b) -> HsPat -> HsPat)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsPat -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsPat -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsPat -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> HsPat -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsPat -> m HsPat)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsPat -> m HsPat)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsPat -> m HsPat)
-> Data HsPat
HsPat -> Constr
HsPat -> DataType
(forall b. Data b => b -> b) -> HsPat -> HsPat
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsPat -> u
forall u. (forall d. Data d => d -> u) -> HsPat -> [u]
forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsPat -> r
forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsPat -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsPat -> m HsPat
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsPat -> m HsPat
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsPat
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsPat -> c HsPat
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsPat)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsPat)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsPat -> c HsPat
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsPat -> c HsPat
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsPat
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsPat
$ctoConstr :: HsPat -> Constr
toConstr :: HsPat -> Constr
$cdataTypeOf :: HsPat -> DataType
dataTypeOf :: HsPat -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsPat)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsPat)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsPat)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsPat)
$cgmapT :: (forall b. Data b => b -> b) -> HsPat -> HsPat
gmapT :: (forall b. Data b => b -> b) -> HsPat -> HsPat
$cgmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsPat -> r
gmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsPat -> r
$cgmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsPat -> r
gmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsPat -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsPat -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsPat -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsPat -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsPat -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsPat -> m HsPat
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsPat -> m HsPat
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsPat -> m HsPat
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsPat -> m HsPat
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsPat -> m HsPat
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsPat -> m HsPat
Data)
#else
deriving (Eq,Show)
#endif
data HsPatField
= HsPFieldPat HsQName HsPat
#ifdef __GLASGOW_HASKELL__
deriving (HsPatField -> HsPatField -> Bool
(HsPatField -> HsPatField -> Bool)
-> (HsPatField -> HsPatField -> Bool) -> Eq HsPatField
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsPatField -> HsPatField -> Bool
== :: HsPatField -> HsPatField -> Bool
$c/= :: HsPatField -> HsPatField -> Bool
/= :: HsPatField -> HsPatField -> Bool
Eq,Int -> HsPatField -> ShowS
[HsPatField] -> ShowS
HsPatField -> String
(Int -> HsPatField -> ShowS)
-> (HsPatField -> String)
-> ([HsPatField] -> ShowS)
-> Show HsPatField
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsPatField -> ShowS
showsPrec :: Int -> HsPatField -> ShowS
$cshow :: HsPatField -> String
show :: HsPatField -> String
$cshowList :: [HsPatField] -> ShowS
showList :: [HsPatField] -> ShowS
Show,Typeable,Typeable HsPatField
Typeable HsPatField =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsPatField -> c HsPatField)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsPatField)
-> (HsPatField -> Constr)
-> (HsPatField -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsPatField))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsPatField))
-> ((forall b. Data b => b -> b) -> HsPatField -> HsPatField)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsPatField -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsPatField -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsPatField -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> HsPatField -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsPatField -> m HsPatField)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsPatField -> m HsPatField)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsPatField -> m HsPatField)
-> Data HsPatField
HsPatField -> Constr
HsPatField -> DataType
(forall b. Data b => b -> b) -> HsPatField -> HsPatField
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsPatField -> u
forall u. (forall d. Data d => d -> u) -> HsPatField -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsPatField -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsPatField -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsPatField -> m HsPatField
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsPatField -> m HsPatField
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsPatField
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsPatField -> c HsPatField
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsPatField)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsPatField)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsPatField -> c HsPatField
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsPatField -> c HsPatField
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsPatField
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsPatField
$ctoConstr :: HsPatField -> Constr
toConstr :: HsPatField -> Constr
$cdataTypeOf :: HsPatField -> DataType
dataTypeOf :: HsPatField -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsPatField)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsPatField)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsPatField)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsPatField)
$cgmapT :: (forall b. Data b => b -> b) -> HsPatField -> HsPatField
gmapT :: (forall b. Data b => b -> b) -> HsPatField -> HsPatField
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsPatField -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsPatField -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsPatField -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsPatField -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsPatField -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsPatField -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsPatField -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsPatField -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsPatField -> m HsPatField
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsPatField -> m HsPatField
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsPatField -> m HsPatField
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsPatField -> m HsPatField
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsPatField -> m HsPatField
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsPatField -> m HsPatField
Data)
#else
deriving (Eq,Show)
#endif
data HsStmt
= HsGenerator SrcLoc HsPat HsExp
| HsQualifier HsExp
| HsLetStmt [HsDecl]
#ifdef __GLASGOW_HASKELL__
deriving (HsStmt -> HsStmt -> Bool
(HsStmt -> HsStmt -> Bool)
-> (HsStmt -> HsStmt -> Bool) -> Eq HsStmt
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsStmt -> HsStmt -> Bool
== :: HsStmt -> HsStmt -> Bool
$c/= :: HsStmt -> HsStmt -> Bool
/= :: HsStmt -> HsStmt -> Bool
Eq,Int -> HsStmt -> ShowS
[HsStmt] -> ShowS
HsStmt -> String
(Int -> HsStmt -> ShowS)
-> (HsStmt -> String) -> ([HsStmt] -> ShowS) -> Show HsStmt
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsStmt -> ShowS
showsPrec :: Int -> HsStmt -> ShowS
$cshow :: HsStmt -> String
show :: HsStmt -> String
$cshowList :: [HsStmt] -> ShowS
showList :: [HsStmt] -> ShowS
Show,Typeable,Typeable HsStmt
Typeable HsStmt =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsStmt -> c HsStmt)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsStmt)
-> (HsStmt -> Constr)
-> (HsStmt -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsStmt))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsStmt))
-> ((forall b. Data b => b -> b) -> HsStmt -> HsStmt)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsStmt -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsStmt -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsStmt -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> HsStmt -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsStmt -> m HsStmt)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsStmt -> m HsStmt)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsStmt -> m HsStmt)
-> Data HsStmt
HsStmt -> Constr
HsStmt -> DataType
(forall b. Data b => b -> b) -> HsStmt -> HsStmt
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsStmt -> u
forall u. (forall d. Data d => d -> u) -> HsStmt -> [u]
forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsStmt -> r
forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsStmt -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsStmt -> m HsStmt
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsStmt -> m HsStmt
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsStmt
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsStmt -> c HsStmt
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsStmt)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsStmt)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsStmt -> c HsStmt
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsStmt -> c HsStmt
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsStmt
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsStmt
$ctoConstr :: HsStmt -> Constr
toConstr :: HsStmt -> Constr
$cdataTypeOf :: HsStmt -> DataType
dataTypeOf :: HsStmt -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsStmt)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsStmt)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsStmt)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsStmt)
$cgmapT :: (forall b. Data b => b -> b) -> HsStmt -> HsStmt
gmapT :: (forall b. Data b => b -> b) -> HsStmt -> HsStmt
$cgmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsStmt -> r
gmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsStmt -> r
$cgmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsStmt -> r
gmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsStmt -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsStmt -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsStmt -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsStmt -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsStmt -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsStmt -> m HsStmt
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsStmt -> m HsStmt
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsStmt -> m HsStmt
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsStmt -> m HsStmt
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsStmt -> m HsStmt
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsStmt -> m HsStmt
Data)
#else
deriving (Eq,Show)
#endif
data HsFieldUpdate
= HsFieldUpdate HsQName HsExp
#ifdef __GLASGOW_HASKELL__
deriving (HsFieldUpdate -> HsFieldUpdate -> Bool
(HsFieldUpdate -> HsFieldUpdate -> Bool)
-> (HsFieldUpdate -> HsFieldUpdate -> Bool) -> Eq HsFieldUpdate
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsFieldUpdate -> HsFieldUpdate -> Bool
== :: HsFieldUpdate -> HsFieldUpdate -> Bool
$c/= :: HsFieldUpdate -> HsFieldUpdate -> Bool
/= :: HsFieldUpdate -> HsFieldUpdate -> Bool
Eq,Int -> HsFieldUpdate -> ShowS
[HsFieldUpdate] -> ShowS
HsFieldUpdate -> String
(Int -> HsFieldUpdate -> ShowS)
-> (HsFieldUpdate -> String)
-> ([HsFieldUpdate] -> ShowS)
-> Show HsFieldUpdate
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsFieldUpdate -> ShowS
showsPrec :: Int -> HsFieldUpdate -> ShowS
$cshow :: HsFieldUpdate -> String
show :: HsFieldUpdate -> String
$cshowList :: [HsFieldUpdate] -> ShowS
showList :: [HsFieldUpdate] -> ShowS
Show,Typeable,Typeable HsFieldUpdate
Typeable HsFieldUpdate =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsFieldUpdate -> c HsFieldUpdate)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsFieldUpdate)
-> (HsFieldUpdate -> Constr)
-> (HsFieldUpdate -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsFieldUpdate))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsFieldUpdate))
-> ((forall b. Data b => b -> b) -> HsFieldUpdate -> HsFieldUpdate)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsFieldUpdate -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsFieldUpdate -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsFieldUpdate -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> HsFieldUpdate -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsFieldUpdate -> m HsFieldUpdate)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsFieldUpdate -> m HsFieldUpdate)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsFieldUpdate -> m HsFieldUpdate)
-> Data HsFieldUpdate
HsFieldUpdate -> Constr
HsFieldUpdate -> DataType
(forall b. Data b => b -> b) -> HsFieldUpdate -> HsFieldUpdate
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsFieldUpdate -> u
forall u. (forall d. Data d => d -> u) -> HsFieldUpdate -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsFieldUpdate -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsFieldUpdate -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsFieldUpdate -> m HsFieldUpdate
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsFieldUpdate -> m HsFieldUpdate
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsFieldUpdate
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsFieldUpdate -> c HsFieldUpdate
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsFieldUpdate)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsFieldUpdate)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsFieldUpdate -> c HsFieldUpdate
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsFieldUpdate -> c HsFieldUpdate
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsFieldUpdate
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsFieldUpdate
$ctoConstr :: HsFieldUpdate -> Constr
toConstr :: HsFieldUpdate -> Constr
$cdataTypeOf :: HsFieldUpdate -> DataType
dataTypeOf :: HsFieldUpdate -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsFieldUpdate)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsFieldUpdate)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsFieldUpdate)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsFieldUpdate)
$cgmapT :: (forall b. Data b => b -> b) -> HsFieldUpdate -> HsFieldUpdate
gmapT :: (forall b. Data b => b -> b) -> HsFieldUpdate -> HsFieldUpdate
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsFieldUpdate -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsFieldUpdate -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsFieldUpdate -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsFieldUpdate -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsFieldUpdate -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsFieldUpdate -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsFieldUpdate -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsFieldUpdate -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsFieldUpdate -> m HsFieldUpdate
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsFieldUpdate -> m HsFieldUpdate
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsFieldUpdate -> m HsFieldUpdate
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsFieldUpdate -> m HsFieldUpdate
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsFieldUpdate -> m HsFieldUpdate
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsFieldUpdate -> m HsFieldUpdate
Data)
#else
deriving (Eq,Show)
#endif
data HsAlt
= HsAlt SrcLoc HsPat HsGuardedAlts [HsDecl]
#ifdef __GLASGOW_HASKELL__
deriving (HsAlt -> HsAlt -> Bool
(HsAlt -> HsAlt -> Bool) -> (HsAlt -> HsAlt -> Bool) -> Eq HsAlt
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsAlt -> HsAlt -> Bool
== :: HsAlt -> HsAlt -> Bool
$c/= :: HsAlt -> HsAlt -> Bool
/= :: HsAlt -> HsAlt -> Bool
Eq,Int -> HsAlt -> ShowS
[HsAlt] -> ShowS
HsAlt -> String
(Int -> HsAlt -> ShowS)
-> (HsAlt -> String) -> ([HsAlt] -> ShowS) -> Show HsAlt
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsAlt -> ShowS
showsPrec :: Int -> HsAlt -> ShowS
$cshow :: HsAlt -> String
show :: HsAlt -> String
$cshowList :: [HsAlt] -> ShowS
showList :: [HsAlt] -> ShowS
Show,Typeable,Typeable HsAlt
Typeable HsAlt =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsAlt -> c HsAlt)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsAlt)
-> (HsAlt -> Constr)
-> (HsAlt -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsAlt))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsAlt))
-> ((forall b. Data b => b -> b) -> HsAlt -> HsAlt)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsAlt -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsAlt -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsAlt -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> HsAlt -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsAlt -> m HsAlt)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsAlt -> m HsAlt)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsAlt -> m HsAlt)
-> Data HsAlt
HsAlt -> Constr
HsAlt -> DataType
(forall b. Data b => b -> b) -> HsAlt -> HsAlt
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsAlt -> u
forall u. (forall d. Data d => d -> u) -> HsAlt -> [u]
forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsAlt -> r
forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsAlt -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsAlt -> m HsAlt
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsAlt -> m HsAlt
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsAlt
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsAlt -> c HsAlt
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsAlt)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsAlt)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsAlt -> c HsAlt
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsAlt -> c HsAlt
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsAlt
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsAlt
$ctoConstr :: HsAlt -> Constr
toConstr :: HsAlt -> Constr
$cdataTypeOf :: HsAlt -> DataType
dataTypeOf :: HsAlt -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsAlt)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsAlt)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsAlt)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsAlt)
$cgmapT :: (forall b. Data b => b -> b) -> HsAlt -> HsAlt
gmapT :: (forall b. Data b => b -> b) -> HsAlt -> HsAlt
$cgmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsAlt -> r
gmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsAlt -> r
$cgmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsAlt -> r
gmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsAlt -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsAlt -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsAlt -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsAlt -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsAlt -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsAlt -> m HsAlt
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsAlt -> m HsAlt
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsAlt -> m HsAlt
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsAlt -> m HsAlt
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsAlt -> m HsAlt
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsAlt -> m HsAlt
Data)
#else
deriving (Eq,Show)
#endif
data HsGuardedAlts
= HsUnGuardedAlt HsExp
| HsGuardedAlts [HsGuardedAlt]
#ifdef __GLASGOW_HASKELL__
deriving (HsGuardedAlts -> HsGuardedAlts -> Bool
(HsGuardedAlts -> HsGuardedAlts -> Bool)
-> (HsGuardedAlts -> HsGuardedAlts -> Bool) -> Eq HsGuardedAlts
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsGuardedAlts -> HsGuardedAlts -> Bool
== :: HsGuardedAlts -> HsGuardedAlts -> Bool
$c/= :: HsGuardedAlts -> HsGuardedAlts -> Bool
/= :: HsGuardedAlts -> HsGuardedAlts -> Bool
Eq,Int -> HsGuardedAlts -> ShowS
[HsGuardedAlts] -> ShowS
HsGuardedAlts -> String
(Int -> HsGuardedAlts -> ShowS)
-> (HsGuardedAlts -> String)
-> ([HsGuardedAlts] -> ShowS)
-> Show HsGuardedAlts
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsGuardedAlts -> ShowS
showsPrec :: Int -> HsGuardedAlts -> ShowS
$cshow :: HsGuardedAlts -> String
show :: HsGuardedAlts -> String
$cshowList :: [HsGuardedAlts] -> ShowS
showList :: [HsGuardedAlts] -> ShowS
Show,Typeable,Typeable HsGuardedAlts
Typeable HsGuardedAlts =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsGuardedAlts -> c HsGuardedAlts)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsGuardedAlts)
-> (HsGuardedAlts -> Constr)
-> (HsGuardedAlts -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsGuardedAlts))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsGuardedAlts))
-> ((forall b. Data b => b -> b) -> HsGuardedAlts -> HsGuardedAlts)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsGuardedAlts -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsGuardedAlts -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsGuardedAlts -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> HsGuardedAlts -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsGuardedAlts -> m HsGuardedAlts)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsGuardedAlts -> m HsGuardedAlts)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsGuardedAlts -> m HsGuardedAlts)
-> Data HsGuardedAlts
HsGuardedAlts -> Constr
HsGuardedAlts -> DataType
(forall b. Data b => b -> b) -> HsGuardedAlts -> HsGuardedAlts
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsGuardedAlts -> u
forall u. (forall d. Data d => d -> u) -> HsGuardedAlts -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsGuardedAlts -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsGuardedAlts -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsGuardedAlts -> m HsGuardedAlts
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsGuardedAlts -> m HsGuardedAlts
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsGuardedAlts
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsGuardedAlts -> c HsGuardedAlts
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsGuardedAlts)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsGuardedAlts)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsGuardedAlts -> c HsGuardedAlts
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsGuardedAlts -> c HsGuardedAlts
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsGuardedAlts
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsGuardedAlts
$ctoConstr :: HsGuardedAlts -> Constr
toConstr :: HsGuardedAlts -> Constr
$cdataTypeOf :: HsGuardedAlts -> DataType
dataTypeOf :: HsGuardedAlts -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsGuardedAlts)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsGuardedAlts)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsGuardedAlts)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsGuardedAlts)
$cgmapT :: (forall b. Data b => b -> b) -> HsGuardedAlts -> HsGuardedAlts
gmapT :: (forall b. Data b => b -> b) -> HsGuardedAlts -> HsGuardedAlts
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsGuardedAlts -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsGuardedAlts -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsGuardedAlts -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsGuardedAlts -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsGuardedAlts -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsGuardedAlts -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsGuardedAlts -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsGuardedAlts -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsGuardedAlts -> m HsGuardedAlts
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsGuardedAlts -> m HsGuardedAlts
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsGuardedAlts -> m HsGuardedAlts
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsGuardedAlts -> m HsGuardedAlts
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsGuardedAlts -> m HsGuardedAlts
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsGuardedAlts -> m HsGuardedAlts
Data)
#else
deriving (Eq,Show)
#endif
data HsGuardedAlt
= HsGuardedAlt SrcLoc HsExp HsExp
#ifdef __GLASGOW_HASKELL__
deriving (HsGuardedAlt -> HsGuardedAlt -> Bool
(HsGuardedAlt -> HsGuardedAlt -> Bool)
-> (HsGuardedAlt -> HsGuardedAlt -> Bool) -> Eq HsGuardedAlt
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HsGuardedAlt -> HsGuardedAlt -> Bool
== :: HsGuardedAlt -> HsGuardedAlt -> Bool
$c/= :: HsGuardedAlt -> HsGuardedAlt -> Bool
/= :: HsGuardedAlt -> HsGuardedAlt -> Bool
Eq,Int -> HsGuardedAlt -> ShowS
[HsGuardedAlt] -> ShowS
HsGuardedAlt -> String
(Int -> HsGuardedAlt -> ShowS)
-> (HsGuardedAlt -> String)
-> ([HsGuardedAlt] -> ShowS)
-> Show HsGuardedAlt
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HsGuardedAlt -> ShowS
showsPrec :: Int -> HsGuardedAlt -> ShowS
$cshow :: HsGuardedAlt -> String
show :: HsGuardedAlt -> String
$cshowList :: [HsGuardedAlt] -> ShowS
showList :: [HsGuardedAlt] -> ShowS
Show,Typeable,Typeable HsGuardedAlt
Typeable HsGuardedAlt =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsGuardedAlt -> c HsGuardedAlt)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsGuardedAlt)
-> (HsGuardedAlt -> Constr)
-> (HsGuardedAlt -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsGuardedAlt))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsGuardedAlt))
-> ((forall b. Data b => b -> b) -> HsGuardedAlt -> HsGuardedAlt)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsGuardedAlt -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsGuardedAlt -> r)
-> (forall u. (forall d. Data d => d -> u) -> HsGuardedAlt -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> HsGuardedAlt -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsGuardedAlt -> m HsGuardedAlt)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsGuardedAlt -> m HsGuardedAlt)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsGuardedAlt -> m HsGuardedAlt)
-> Data HsGuardedAlt
HsGuardedAlt -> Constr
HsGuardedAlt -> DataType
(forall b. Data b => b -> b) -> HsGuardedAlt -> HsGuardedAlt
forall a.
Typeable a =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> HsGuardedAlt -> u
forall u. (forall d. Data d => d -> u) -> HsGuardedAlt -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsGuardedAlt -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsGuardedAlt -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsGuardedAlt -> m HsGuardedAlt
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsGuardedAlt -> m HsGuardedAlt
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsGuardedAlt
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsGuardedAlt -> c HsGuardedAlt
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsGuardedAlt)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsGuardedAlt)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsGuardedAlt -> c HsGuardedAlt
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> HsGuardedAlt -> c HsGuardedAlt
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsGuardedAlt
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c HsGuardedAlt
$ctoConstr :: HsGuardedAlt -> Constr
toConstr :: HsGuardedAlt -> Constr
$cdataTypeOf :: HsGuardedAlt -> DataType
dataTypeOf :: HsGuardedAlt -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsGuardedAlt)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c HsGuardedAlt)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsGuardedAlt)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c HsGuardedAlt)
$cgmapT :: (forall b. Data b => b -> b) -> HsGuardedAlt -> HsGuardedAlt
gmapT :: (forall b. Data b => b -> b) -> HsGuardedAlt -> HsGuardedAlt
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsGuardedAlt -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> HsGuardedAlt -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsGuardedAlt -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> HsGuardedAlt -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> HsGuardedAlt -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> HsGuardedAlt -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsGuardedAlt -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> HsGuardedAlt -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsGuardedAlt -> m HsGuardedAlt
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> HsGuardedAlt -> m HsGuardedAlt
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsGuardedAlt -> m HsGuardedAlt
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsGuardedAlt -> m HsGuardedAlt
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsGuardedAlt -> m HsGuardedAlt
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> HsGuardedAlt -> m HsGuardedAlt
Data)
#else
deriving (Eq,Show)
#endif
prelude_mod, main_mod :: Module
prelude_mod :: Module
prelude_mod = String -> Module
Module String
"Prelude"
main_mod :: Module
main_mod = String -> Module
Module String
"Main"
main_name :: HsName
main_name :: HsName
main_name = String -> HsName
HsIdent String
"main"
unit_con_name :: HsQName
unit_con_name :: HsQName
unit_con_name = HsSpecialCon -> HsQName
Special HsSpecialCon
HsUnitCon
tuple_con_name :: Int -> HsQName
tuple_con_name :: Int -> HsQName
tuple_con_name Int
i = HsSpecialCon -> HsQName
Special (Int -> HsSpecialCon
HsTupleCon (Int
iInt -> Int -> Int
forall a. Num a => a -> a -> a
+Int
1))
list_cons_name :: HsQName
list_cons_name :: HsQName
list_cons_name = HsSpecialCon -> HsQName
Special HsSpecialCon
HsCons
unit_con :: HsExp
unit_con :: HsExp
unit_con = HsQName -> HsExp
HsCon HsQName
unit_con_name
tuple_con :: Int -> HsExp
tuple_con :: Int -> HsExp
tuple_con Int
i = HsQName -> HsExp
HsCon (Int -> HsQName
tuple_con_name Int
i)
unit_tycon_name, fun_tycon_name, list_tycon_name :: HsQName
unit_tycon_name :: HsQName
unit_tycon_name = HsQName
unit_con_name
fun_tycon_name :: HsQName
fun_tycon_name = HsSpecialCon -> HsQName
Special HsSpecialCon
HsFunCon
list_tycon_name :: HsQName
list_tycon_name = HsSpecialCon -> HsQName
Special HsSpecialCon
HsListCon
tuple_tycon_name :: Int -> HsQName
tuple_tycon_name :: Int -> HsQName
tuple_tycon_name Int
i = Int -> HsQName
tuple_con_name Int
i
unit_tycon, fun_tycon, list_tycon :: HsType
unit_tycon :: HsType
unit_tycon = HsQName -> HsType
HsTyCon HsQName
unit_tycon_name
fun_tycon :: HsType
fun_tycon = HsQName -> HsType
HsTyCon HsQName
fun_tycon_name
list_tycon :: HsType
list_tycon = HsQName -> HsType
HsTyCon HsQName
list_tycon_name
tuple_tycon :: Int -> HsType
tuple_tycon :: Int -> HsType
tuple_tycon Int
i = HsQName -> HsType
HsTyCon (Int -> HsQName
tuple_tycon_name Int
i)