{-# Language DeriveDataTypeable, FlexibleContexts, FlexibleInstances, MultiParamTypeClasses, OverloadedStrings,
StandaloneDeriving, TemplateHaskell, TypeFamilies, TypeOperators, UndecidableInstances #-}
module Language.Haskell.AST where
import Control.Monad (forM)
import qualified Data.Kind as Kind
import Data.List.NonEmpty (NonEmpty)
import Data.Data (Data, Typeable)
import Data.Text (Text)
import qualified Language.Haskell.Abstract as Abstract
import qualified Rank2.TH
import qualified Transformation.Deep.TH
import qualified Transformation.Shallow.TH
import Language.Haskell.Extensions (ExtensionSwitch)
data Language = Language deriving (Typeable Language
Typeable Language =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Language -> c Language)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Language)
-> (Language -> Constr)
-> (Language -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c Language))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Language))
-> ((forall b. Data b => b -> b) -> Language -> Language)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Language -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Language -> r)
-> (forall u. (forall d. Data d => d -> u) -> Language -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> Language -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Language -> m Language)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Language -> m Language)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Language -> m Language)
-> Data Language
Language -> Constr
Language -> DataType
(forall b. Data b => b -> b) -> Language -> Language
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) -> Language -> u
forall u. (forall d. Data d => d -> u) -> Language -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Language -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Language -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Language -> m Language
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Language -> m Language
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Language
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Language -> c Language
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c Language)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Language)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Language -> c Language
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Language -> c Language
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Language
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c Language
$ctoConstr :: Language -> Constr
toConstr :: Language -> Constr
$cdataTypeOf :: Language -> DataType
dataTypeOf :: Language -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c Language)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c Language)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Language)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Language)
$cgmapT :: (forall b. Data b => b -> b) -> Language -> Language
gmapT :: (forall b. Data b => b -> b) -> Language -> Language
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Language -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Language -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Language -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Language -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> Language -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> Language -> [u]
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> Language -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> Language -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Language -> m Language
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Language -> m Language
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Language -> m Language
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Language -> m Language
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Language -> m Language
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Language -> m Language
Data, Language -> Language -> Bool
(Language -> Language -> Bool)
-> (Language -> Language -> Bool) -> Eq Language
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Language -> Language -> Bool
== :: Language -> Language -> Bool
$c/= :: Language -> Language -> Bool
/= :: Language -> Language -> Bool
Eq, Int -> Language -> ShowS
[Language] -> ShowS
Language -> String
(Int -> Language -> ShowS)
-> (Language -> String) -> ([Language] -> ShowS) -> Show Language
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Language -> ShowS
showsPrec :: Int -> Language -> ShowS
$cshow :: Language -> String
show :: Language -> String
$cshowList :: [Language] -> ShowS
showList :: [Language] -> ShowS
Show)
instance Abstract.Haskell Language where
type Module Language = Module Language
type Declaration Language = Declaration Language
type Expression Language = Expression Language
type Type Language = Type Language
type EquationLHS Language = EquationLHS Language
type EquationRHS Language = EquationRHS Language
type GuardedExpression Language = GuardedExpression Language
type Pattern Language = Pattern Language
type Statement Language = Statement Language
type TypeLHS Language = TypeLHS Language
type ClassInstanceLHS Language = ClassInstanceLHS Language
type Import Language = Import Language
type ImportSpecification Language = ImportSpecification Language
type ImportItem Language = ImportItem Language
type Export Language = Export Language
type Context Language = Context Language
type DataConstructor Language = DataConstructor Language
type DerivingClause Language = DerivingClause Language
type FieldDeclaration Language = FieldDeclaration Language
type FieldBinding Language = FieldBinding Language
type FieldPattern Language = FieldPattern Language
type CaseAlternative Language = CaseAlternative Language
type Constructor Language = Constructor Language
type Value Language = Value Language
type CallingConvention Language = CallingConvention Language
type CallSafety Language = CallSafety Language
type Associativity Language = Associativity Language
type Members Language = Members Language
type Name Language = Name Language
type ModuleName Language = ModuleName Language
type QualifiedName Language = QualifiedName Language
anonymousModule :: forall (s :: * -> *) l (d :: * -> *).
[s (Import l l d d)]
-> [s (Declaration l l d d)] -> Module Language l d s
anonymousModule = [s (Import l l d d)]
-> [s (Declaration l l d d)] -> Module Language l d s
[s (Import l l d d)]
-> [s (Declaration l l d d)] -> Module Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
[s (Import l l d d)] -> [s (Declaration l l d d)] -> Module λ l d s
AnonymousModule
namedModule :: forall (s :: * -> *) l (d :: * -> *).
ModuleName Language
-> Maybe [s (Export l l d d)]
-> [s (Import l l d d)]
-> [s (Declaration l l d d)]
-> Module Language l d s
namedModule = ModuleName Language
-> Maybe [s (Export l l d d)]
-> [s (Import l l d d)]
-> [s (Declaration l l d d)]
-> Module Language l d s
ModuleName Language
-> Maybe [s (Export l l d d)]
-> [s (Import l l d d)]
-> [s (Declaration l l d d)]
-> Module Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
ModuleName λ
-> Maybe [s (Export l l d d)]
-> [s (Import l l d d)]
-> [s (Declaration l l d d)]
-> Module λ l d s
NamedModule
withLanguagePragma :: forall (s :: * -> *) l (d :: * -> *).
[ExtensionSwitch] -> s (Module l l d d) -> Module Language l d s
withLanguagePragma = [ExtensionSwitch] -> s (Module l l d d) -> Module Language l d s
[ExtensionSwitch] -> s (Module l l d d) -> Module Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
[ExtensionSwitch] -> s (Module l l d d) -> Module λ l d s
ExtendedModule
exportClassOrType :: forall l (d :: * -> *) (s :: * -> *).
QualifiedName Language
-> Maybe (Members Language) -> Export Language l d s
exportClassOrType = QualifiedName Language
-> Maybe (Members Language) -> Export Language l d s
QualifiedName Language
-> Maybe (Members Language) -> Export Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
QualifiedName λ -> Maybe (Members λ) -> Export λ l d s
ExportClassOrType
exportVar :: forall l (d :: * -> *) (s :: * -> *).
QualifiedName Language -> Export Language l d s
exportVar = QualifiedName Language -> Export Language l d s
QualifiedName Language -> Export Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
QualifiedName λ -> Export λ l d s
ExportVar
reExportModule :: forall l (d :: * -> *) (s :: * -> *).
ModuleName Language -> Export Language l d s
reExportModule = ModuleName Language -> Export Language l d s
ModuleName Language -> Export Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
ModuleName λ -> Export λ l d s
ReExportModule
importDeclaration :: forall (s :: * -> *) l (d :: * -> *).
Bool
-> ModuleName Language
-> Maybe (ModuleName Language)
-> Maybe (s (ImportSpecification l l d d))
-> Import Language l d s
importDeclaration = Bool
-> ModuleName Language
-> Maybe (ModuleName Language)
-> Maybe (s (ImportSpecification l l d d))
-> Import Language l d s
Bool
-> ModuleName Language
-> Maybe (ModuleName Language)
-> Maybe (s (ImportSpecification l l d d))
-> Import Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
Bool
-> ModuleName λ
-> Maybe (ModuleName λ)
-> Maybe (s (ImportSpecification l l d d))
-> Import λ l d s
Import
excludedImports :: forall (s :: * -> *) l (d :: * -> *).
[s (ImportItem l l d d)] -> ImportSpecification Language l d s
excludedImports = Bool
-> [s (ImportItem l l d d)] -> ImportSpecification Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
Bool -> [s (ImportItem l l d d)] -> ImportSpecification λ l d s
ImportSpecification Bool
False
includedImports :: forall (s :: * -> *) l (d :: * -> *).
[s (ImportItem l l d d)] -> ImportSpecification Language l d s
includedImports = Bool
-> [s (ImportItem l l d d)] -> ImportSpecification Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
Bool -> [s (ImportItem l l d d)] -> ImportSpecification λ l d s
ImportSpecification Bool
True
importClassOrType :: forall l (d :: * -> *) (s :: * -> *).
Name Language
-> Maybe (Members Language) -> ImportItem Language l d s
importClassOrType = Name Language
-> Maybe (Members Language) -> ImportItem Language l d s
Name Language
-> Maybe (Members Language) -> ImportItem Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
Name λ -> Maybe (Members λ) -> ImportItem λ l d s
ImportClassOrType
importVar :: forall l (d :: * -> *) (s :: * -> *).
Name Language -> ImportItem Language l d s
importVar = Name Language -> ImportItem Language l d s
Name Language -> ImportItem Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
Name λ -> ImportItem λ l d s
ImportVar
allMembers :: Members Language
allMembers = Members Language
Members Language
forall λ. Members λ
AllMembers
memberList :: [Name Language] -> Members Language
memberList = [Name Language] -> Members Language
[Name Language] -> Members Language
forall λ. [Name λ] -> Members λ
MemberList
classDeclaration :: forall (s :: * -> *) l (d :: * -> *).
s (Context l l d d)
-> s (TypeLHS l l d d)
-> [s (Declaration l l d d)]
-> Declaration Language l d s
classDeclaration = s (Context l l d d)
-> s (TypeLHS l l d d)
-> [s (Declaration l l d d)]
-> Declaration Language l d s
s (Context l l d d)
-> s (TypeLHS l l d d)
-> [s (Declaration l l d d)]
-> Declaration Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Context l l d d)
-> s (TypeLHS l l d d)
-> [s (Declaration l l d d)]
-> Declaration λ l d s
ClassDeclaration
dataDeclaration :: forall (s :: * -> *) l (d :: * -> *).
s (Context l l d d)
-> s (TypeLHS l l d d)
-> [s (DataConstructor l l d d)]
-> [s (DerivingClause l l d d)]
-> Declaration Language l d s
dataDeclaration = s (Context l l d d)
-> s (TypeLHS l l d d)
-> [s (DataConstructor l l d d)]
-> [s (DerivingClause l l d d)]
-> Declaration Language l d s
s (Context l l d d)
-> s (TypeLHS l l d d)
-> [s (DataConstructor l l d d)]
-> [s (DerivingClause l l d d)]
-> Declaration Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Context l l d d)
-> s (TypeLHS l l d d)
-> [s (DataConstructor l l d d)]
-> [s (DerivingClause l l d d)]
-> Declaration λ l d s
DataDeclaration
defaultDeclaration :: forall (s :: * -> *) l (d :: * -> *).
[s (Type l l d d)] -> Declaration Language l d s
defaultDeclaration = [s (Type l l d d)] -> Declaration Language l d s
[s (Type l l d d)] -> Declaration Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
[s (Type l l d d)] -> Declaration λ l d s
DefaultDeclaration
equationDeclaration :: forall (s :: * -> *) l (d :: * -> *).
s (EquationLHS l l d d)
-> s (EquationRHS l l d d)
-> [s (Declaration l l d d)]
-> Declaration Language l d s
equationDeclaration = s (EquationLHS l l d d)
-> s (EquationRHS l l d d)
-> [s (Declaration l l d d)]
-> Declaration Language l d s
s (EquationLHS l l d d)
-> s (EquationRHS l l d d)
-> [s (Declaration l l d d)]
-> Declaration Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (EquationLHS l l d d)
-> s (EquationRHS l l d d)
-> [s (Declaration l l d d)]
-> Declaration λ l d s
EquationDeclaration
fixityDeclaration :: forall l (d :: * -> *) (s :: * -> *).
Associativity Language
-> Maybe Int
-> NonEmpty (Name Language)
-> Declaration Language l d s
fixityDeclaration = Associativity Language
-> Maybe Int
-> NonEmpty (Name Language)
-> Declaration Language l d s
Associativity Language
-> Maybe Int
-> NonEmpty (Name Language)
-> Declaration Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
Associativity λ
-> Maybe Int -> NonEmpty (Name λ) -> Declaration λ l d s
FixityDeclaration
foreignExport :: forall (s :: * -> *) l (d :: * -> *).
CallingConvention Language
-> Maybe Text
-> Name Language
-> s (Type l l d d)
-> Declaration Language l d s
foreignExport = CallingConvention Language
-> Maybe Text
-> Name Language
-> s (Type l l d d)
-> Declaration Language l d s
CallingConvention Language
-> Maybe Text
-> Name Language
-> s (Type l l d d)
-> Declaration Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
CallingConvention λ
-> Maybe Text -> Name λ -> s (Type l l d d) -> Declaration λ l d s
ForeignExport
foreignImport :: forall (s :: * -> *) l (d :: * -> *).
CallingConvention Language
-> Maybe (CallSafety Language)
-> Maybe Text
-> Name Language
-> s (Type l l d d)
-> Declaration Language l d s
foreignImport = CallingConvention Language
-> Maybe (CallSafety Language)
-> Maybe Text
-> Name Language
-> s (Type l l d d)
-> Declaration Language l d s
CallingConvention Language
-> Maybe (CallSafety Language)
-> Maybe Text
-> Name Language
-> s (Type l l d d)
-> Declaration Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
CallingConvention λ
-> Maybe (CallSafety λ)
-> Maybe Text
-> Name λ
-> s (Type l l d d)
-> Declaration λ l d s
ForeignImport
instanceDeclaration :: forall (s :: * -> *) l (d :: * -> *).
s (Context l l d d)
-> s (ClassInstanceLHS l l d d)
-> [s (Declaration l l d d)]
-> Declaration Language l d s
instanceDeclaration = s (Context l l d d)
-> s (ClassInstanceLHS l l d d)
-> [s (Declaration l l d d)]
-> Declaration Language l d s
s (Context l l d d)
-> s (ClassInstanceLHS l l d d)
-> [s (Declaration l l d d)]
-> Declaration Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Context l l d d)
-> s (ClassInstanceLHS l l d d)
-> [s (Declaration l l d d)]
-> Declaration λ l d s
InstanceDeclaration
newtypeDeclaration :: forall (s :: * -> *) l (d :: * -> *).
s (Context l l d d)
-> s (TypeLHS l l d d)
-> s (DataConstructor l l d d)
-> [s (DerivingClause l l d d)]
-> Declaration Language l d s
newtypeDeclaration = s (Context l l d d)
-> s (TypeLHS l l d d)
-> s (DataConstructor l l d d)
-> [s (DerivingClause l l d d)]
-> Declaration Language l d s
s (Context l l d d)
-> s (TypeLHS l l d d)
-> s (DataConstructor l l d d)
-> [s (DerivingClause l l d d)]
-> Declaration Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Context l l d d)
-> s (TypeLHS l l d d)
-> s (DataConstructor l l d d)
-> [s (DerivingClause l l d d)]
-> Declaration λ l d s
NewtypeDeclaration
typeSynonymDeclaration :: forall (s :: * -> *) l (d :: * -> *).
s (TypeLHS l l d d)
-> s (Type l l d d) -> Declaration Language l d s
typeSynonymDeclaration = s (TypeLHS l l d d)
-> s (Type l l d d) -> Declaration Language l d s
s (TypeLHS l l d d)
-> s (Type l l d d) -> Declaration Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (TypeLHS l l d d) -> s (Type l l d d) -> Declaration λ l d s
TypeSynonymDeclaration
typeSignature :: forall (s :: * -> *) l (d :: * -> *).
NonEmpty (Name Language)
-> s (Context l l d d)
-> s (Type l l d d)
-> Declaration Language l d s
typeSignature = NonEmpty (Name Language)
-> s (Context l l d d)
-> s (Type l l d d)
-> Declaration Language l d s
NonEmpty (Name Language)
-> s (Context l l d d)
-> s (Type l l d d)
-> Declaration Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
NonEmpty (Name λ)
-> s (Context l l d d) -> s (Type l l d d) -> Declaration λ l d s
TypeSignature
applyExpression :: forall (s :: * -> *) l (d :: * -> *).
s (Expression l l d d)
-> s (Expression l l d d) -> Expression Language l d s
applyExpression = s (Expression l l d d)
-> s (Expression l l d d) -> Expression Language l d s
s (Expression l l d d)
-> s (Expression l l d d) -> Expression Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Expression l l d d)
-> s (Expression l l d d) -> Expression λ l d s
ApplyExpression
conditionalExpression :: forall (s :: * -> *) l (d :: * -> *).
s (Expression l l d d)
-> s (Expression l l d d)
-> s (Expression l l d d)
-> Expression Language l d s
conditionalExpression = s (Expression l l d d)
-> s (Expression l l d d)
-> s (Expression l l d d)
-> Expression Language l d s
s (Expression l l d d)
-> s (Expression l l d d)
-> s (Expression l l d d)
-> Expression Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Expression l l d d)
-> s (Expression l l d d)
-> s (Expression l l d d)
-> Expression λ l d s
ConditionalExpression
constructorExpression :: forall (s :: * -> *) l (d :: * -> *).
s (Constructor l l d d) -> Expression Language l d s
constructorExpression = s (Constructor l l d d) -> Expression Language l d s
s (Constructor l l d d) -> Expression Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Constructor l l d d) -> Expression λ l d s
ConstructorExpression
caseExpression :: forall (s :: * -> *) l (d :: * -> *).
s (Expression l l d d)
-> [s (CaseAlternative l l d d)] -> Expression Language l d s
caseExpression = s (Expression l l d d)
-> [s (CaseAlternative l l d d)] -> Expression Language l d s
s (Expression l l d d)
-> [s (CaseAlternative l l d d)] -> Expression Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Expression l l d d)
-> [s (CaseAlternative l l d d)] -> Expression λ l d s
CaseExpression
doExpression :: forall (s :: * -> *) l (d :: * -> *).
s (GuardedExpression l l d d) -> Expression Language l d s
doExpression = s (GuardedExpression l l d d) -> Expression Language l d s
s (GuardedExpression l l d d) -> Expression Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (GuardedExpression l l d d) -> Expression λ l d s
DoExpression
infixExpression :: forall (s :: * -> *) l (d :: * -> *).
s (Expression l l d d)
-> s (Expression l l d d)
-> s (Expression l l d d)
-> Expression Language l d s
infixExpression = s (Expression l l d d)
-> s (Expression l l d d)
-> s (Expression l l d d)
-> Expression Language l d s
s (Expression l l d d)
-> s (Expression l l d d)
-> s (Expression l l d d)
-> Expression Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Expression l l d d)
-> s (Expression l l d d)
-> s (Expression l l d d)
-> Expression λ l d s
InfixExpression
leftSectionExpression :: forall (s :: * -> *) l (d :: * -> *).
s (Expression l l d d)
-> QualifiedName Language -> Expression Language l d s
leftSectionExpression = s (Expression l l d d)
-> QualifiedName Language -> Expression Language l d s
s (Expression l l d d)
-> QualifiedName Language -> Expression Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Expression l l d d) -> QualifiedName λ -> Expression λ l d s
LeftSectionExpression
lambdaExpression :: forall (s :: * -> *) l (d :: * -> *).
[s (Pattern l l d d)]
-> s (Expression l l d d) -> Expression Language l d s
lambdaExpression = [s (Pattern l l d d)]
-> s (Expression l l d d) -> Expression Language l d s
[s (Pattern l l d d)]
-> s (Expression l l d d) -> Expression Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
[s (Pattern l l d d)]
-> s (Expression l l d d) -> Expression λ l d s
LambdaExpression
letExpression :: forall (s :: * -> *) l (d :: * -> *).
[s (Declaration l l d d)]
-> s (Expression l l d d) -> Expression Language l d s
letExpression = [s (Declaration l l d d)]
-> s (Expression l l d d) -> Expression Language l d s
[s (Declaration l l d d)]
-> s (Expression l l d d) -> Expression Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
[s (Declaration l l d d)]
-> s (Expression l l d d) -> Expression λ l d s
LetExpression
listComprehension :: forall (s :: * -> *) l (d :: * -> *).
s (Expression l l d d)
-> NonEmpty (s (Statement l l d d)) -> Expression Language l d s
listComprehension = s (Expression l l d d)
-> NonEmpty (s (Statement l l d d)) -> Expression Language l d s
s (Expression l l d d)
-> NonEmpty (s (Statement l l d d)) -> Expression Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Expression l l d d)
-> NonEmpty (s (Statement l l d d)) -> Expression λ l d s
ListComprehension
listExpression :: forall (s :: * -> *) l (d :: * -> *).
[s (Expression l l d d)] -> Expression Language l d s
listExpression = [s (Expression l l d d)] -> Expression Language l d s
[s (Expression l l d d)] -> Expression Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
[s (Expression l l d d)] -> Expression λ l d s
ListExpression
literalExpression :: forall (s :: * -> *) l (d :: * -> *).
s (Value l l d d) -> Expression Language l d s
literalExpression = s (Value l l d d) -> Expression Language l d s
s (Value l l d d) -> Expression Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Value l l d d) -> Expression λ l d s
LiteralExpression
negate :: forall l (d :: * -> *) (s :: * -> *). Expression Language l d s
negate = Expression Language l d s
Expression Language l d s
forall λ l (d :: * -> *) (s :: * -> *). Expression λ l d s
Negate
recordExpression :: forall (s :: * -> *) l (d :: * -> *).
s (Expression l l d d)
-> [s (FieldBinding l l d d)] -> Expression Language l d s
recordExpression = s (Expression l l d d)
-> [s (FieldBinding l l d d)] -> Expression Language l d s
s (Expression l l d d)
-> [s (FieldBinding l l d d)] -> Expression Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Expression l l d d)
-> [s (FieldBinding l l d d)] -> Expression λ l d s
RecordExpression
referenceExpression :: forall l (d :: * -> *).
QualifiedName Language -> Expression Language l d d
referenceExpression = QualifiedName Language -> Expression Language l d d
QualifiedName Language -> Expression Language l d d
forall λ l (d :: * -> *) (s :: * -> *).
QualifiedName λ -> Expression λ l d s
ReferenceExpression
rightSectionExpression :: forall (s :: * -> *) l (d :: * -> *).
QualifiedName Language
-> s (Expression l l d d) -> Expression Language l d s
rightSectionExpression = QualifiedName Language
-> s (Expression l l d d) -> Expression Language l d s
QualifiedName Language
-> s (Expression l l d d) -> Expression Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
QualifiedName λ -> s (Expression l l d d) -> Expression λ l d s
RightSectionExpression
sequenceExpression :: forall (s :: * -> *) l (d :: * -> *).
s (Expression l l d d)
-> Maybe (s (Expression l l d d))
-> Maybe (s (Expression l l d d))
-> Expression Language l d s
sequenceExpression = s (Expression l l d d)
-> Maybe (s (Expression l l d d))
-> Maybe (s (Expression l l d d))
-> Expression Language l d s
s (Expression l l d d)
-> Maybe (s (Expression l l d d))
-> Maybe (s (Expression l l d d))
-> Expression Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Expression l l d d)
-> Maybe (s (Expression l l d d))
-> Maybe (s (Expression l l d d))
-> Expression λ l d s
SequenceExpression
tupleExpression :: forall (s :: * -> *) l (d :: * -> *).
NonEmpty (s (Expression l l d d)) -> Expression Language l d s
tupleExpression = NonEmpty (s (Expression l l d d)) -> Expression Language l d s
NonEmpty (s (Expression l l d d)) -> Expression Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
NonEmpty (s (Expression l l d d)) -> Expression λ l d s
TupleExpression
typedExpression :: forall (s :: * -> *) l (d :: * -> *).
s (Expression l l d d)
-> s (Type l l d d) -> Expression Language l d s
typedExpression = s (Expression l l d d)
-> s (Type l l d d) -> Expression Language l d s
s (Expression l l d d)
-> s (Type l l d d) -> Expression Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Expression l l d d) -> s (Type l l d d) -> Expression λ l d s
TypedExpression
asPattern :: forall (s :: * -> *) l (d :: * -> *).
Name Language -> s (Pattern l l d d) -> Pattern Language l d s
asPattern = Name Language -> s (Pattern l l d d) -> Pattern Language l d s
Name Language -> s (Pattern l l d d) -> Pattern Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
Name λ -> s (Pattern l l d d) -> Pattern λ l d s
AsPattern
constructorPattern :: forall (s :: * -> *) l (d :: * -> *).
s (Constructor l l d d)
-> [s (Pattern l l d d)] -> Pattern Language l d s
constructorPattern = s (Constructor l l d d)
-> [s (Pattern l l d d)] -> Pattern Language l d s
s (Constructor l l d d)
-> [s (Pattern l l d d)] -> Pattern Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Constructor l l d d) -> [s (Pattern l l d d)] -> Pattern λ l d s
ConstructorPattern
infixPattern :: forall (s :: * -> *) l (d :: * -> *).
s (Pattern l l d d)
-> QualifiedName Language
-> s (Pattern l l d d)
-> Pattern Language l d s
infixPattern = s (Pattern l l d d)
-> QualifiedName Language
-> s (Pattern l l d d)
-> Pattern Language l d s
s (Pattern l l d d)
-> QualifiedName Language
-> s (Pattern l l d d)
-> Pattern Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Pattern l l d d)
-> QualifiedName λ -> s (Pattern l l d d) -> Pattern λ l d s
InfixPattern
irrefutablePattern :: forall (s :: * -> *) l (d :: * -> *).
s (Pattern l l d d) -> Pattern Language l d s
irrefutablePattern = s (Pattern l l d d) -> Pattern Language l d s
s (Pattern l l d d) -> Pattern Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Pattern l l d d) -> Pattern λ l d s
IrrefutablePattern
listPattern :: forall (s :: * -> *) l (d :: * -> *).
[s (Pattern l l d d)] -> Pattern Language l d s
listPattern = [s (Pattern l l d d)] -> Pattern Language l d s
[s (Pattern l l d d)] -> Pattern Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
[s (Pattern l l d d)] -> Pattern λ l d s
ListPattern
literalPattern :: forall (s :: * -> *) l (d :: * -> *).
s (Value l l d d) -> Pattern Language l d s
literalPattern = s (Value l l d d) -> Pattern Language l d s
s (Value l l d d) -> Pattern Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Value l l d d) -> Pattern λ l d s
LiteralPattern
recordPattern :: forall (s :: * -> *) l (d :: * -> *).
QualifiedName Language
-> [s (FieldPattern l l d d)] -> Pattern Language l d s
recordPattern = QualifiedName Language
-> [s (FieldPattern l l d d)] -> Pattern Language l d s
QualifiedName Language
-> [s (FieldPattern l l d d)] -> Pattern Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
QualifiedName λ -> [s (FieldPattern l l d d)] -> Pattern λ l d s
RecordPattern
tuplePattern :: forall (s :: * -> *) l (d :: * -> *).
NonEmpty (s (Pattern l l d d)) -> Pattern Language l d s
tuplePattern = NonEmpty (s (Pattern l l d d)) -> Pattern Language l d s
NonEmpty (s (Pattern l l d d)) -> Pattern Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
NonEmpty (s (Pattern l l d d)) -> Pattern λ l d s
TuplePattern
variablePattern :: forall l (d :: * -> *) (s :: * -> *).
Name Language -> Pattern Language l d s
variablePattern = Name Language -> Pattern Language l d s
Name Language -> Pattern Language l d s
forall λ l (d :: * -> *) (s :: * -> *). Name λ -> Pattern λ l d s
VariablePattern
wildcardPattern :: forall l (d :: * -> *) (s :: * -> *). Pattern Language l d s
wildcardPattern = Pattern Language l d s
Pattern Language l d s
forall λ l (d :: * -> *) (s :: * -> *). Pattern λ l d s
WildcardPattern
constructorType :: forall (s :: * -> *) l (d :: * -> *).
s (Constructor l l d d) -> Type Language l d s
constructorType = s (Constructor l l d d) -> Type Language l d s
s (Constructor l l d d) -> Type Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Constructor l l d d) -> Type λ l d s
ConstructorType
functionConstructorType :: forall l (d :: * -> *) (s :: * -> *). Type Language l d s
functionConstructorType = Type Language l d s
Type Language l d s
forall λ l (d :: * -> *) (s :: * -> *). Type λ l d s
FunctionConstructorType
functionType :: forall (s :: * -> *) l (d :: * -> *).
s (Type l l d d) -> s (Type l l d d) -> Type Language l d s
functionType = s (Type l l d d) -> s (Type l l d d) -> Type Language l d s
s (Type l l d d) -> s (Type l l d d) -> Type Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Type l l d d) -> s (Type l l d d) -> Type λ l d s
FunctionType
listType :: forall (s :: * -> *) l (d :: * -> *).
s (Type l l d d) -> Type Language l d s
listType = s (Type l l d d) -> Type Language l d s
s (Type l l d d) -> Type Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Type l l d d) -> Type λ l d s
ListType
strictType :: forall (s :: * -> *) l (d :: * -> *).
s (Type l l d d) -> Type Language l d s
strictType = s (Type l l d d) -> Type Language l d s
s (Type l l d d) -> Type Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Type l l d d) -> Type λ l d s
StrictType
tupleType :: forall (s :: * -> *) l (d :: * -> *).
NonEmpty (s (Type l l d d)) -> Type Language l d s
tupleType = NonEmpty (s (Type l l d d)) -> Type Language l d s
NonEmpty (s (Type l l d d)) -> Type Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
NonEmpty (s (Type l l d d)) -> Type λ l d s
TupleType
typeApplication :: forall (s :: * -> *) l (d :: * -> *).
s (Type l l d d) -> s (Type l l d d) -> Type Language l d s
typeApplication = s (Type l l d d) -> s (Type l l d d) -> Type Language l d s
s (Type l l d d) -> s (Type l l d d) -> Type Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Type l l d d) -> s (Type l l d d) -> Type λ l d s
TypeApplication
typeVariable :: forall l (d :: * -> *) (s :: * -> *).
Name Language -> Type Language l d s
typeVariable = Name Language -> Type Language l d s
Name Language -> Type Language l d s
forall λ l (d :: * -> *) (s :: * -> *). Name λ -> Type λ l d s
TypeVariable
constructorReference :: forall l (d :: * -> *) (s :: * -> *).
QualifiedName Language -> Constructor Language l d s
constructorReference = QualifiedName Language -> Constructor Language l d s
QualifiedName Language -> Constructor Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
QualifiedName λ -> Constructor λ l d s
ConstructorReference
emptyListConstructor :: forall l (d :: * -> *) (s :: * -> *). Constructor Language l d s
emptyListConstructor = Constructor Language l d s
Constructor Language l d s
forall λ l (d :: * -> *) (s :: * -> *). Constructor λ l d s
EmptyListConstructor
tupleConstructor :: forall l (d :: * -> *) (s :: * -> *).
Int -> Constructor Language l d s
tupleConstructor = Int -> Constructor Language l d s
Int -> Constructor Language l d s
forall λ l (d :: * -> *) (s :: * -> *). Int -> Constructor λ l d s
TupleConstructor
unitConstructor :: forall l (d :: * -> *) (s :: * -> *). Constructor Language l d s
unitConstructor = Constructor Language l d s
Constructor Language l d s
forall λ l (d :: * -> *) (s :: * -> *). Constructor λ l d s
UnitConstructor
constructor :: forall (s :: * -> *) l (d :: * -> *).
Name Language
-> [s (Type l l d d)] -> DataConstructor Language l d s
constructor = Name Language
-> [s (Type l l d d)] -> DataConstructor Language l d s
Name Language
-> [s (Type l l d d)] -> DataConstructor Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
Name λ -> [s (Type l l d d)] -> DataConstructor λ l d s
Constructor
recordConstructor :: forall (s :: * -> *) l (d :: * -> *).
Name Language
-> [s (FieldDeclaration l l d d)] -> DataConstructor Language l d s
recordConstructor = Name Language
-> [s (FieldDeclaration l l d d)] -> DataConstructor Language l d s
Name Language
-> [s (FieldDeclaration l l d d)] -> DataConstructor Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
Name λ -> [s (FieldDeclaration l l d d)] -> DataConstructor λ l d s
RecordConstructor
constructorFields :: forall (s :: * -> *) l (d :: * -> *).
NonEmpty (Name Language)
-> s (Type l l d d) -> FieldDeclaration Language l d s
constructorFields = NonEmpty (Name Language)
-> s (Type l l d d) -> FieldDeclaration Language l d s
NonEmpty (Name Language)
-> s (Type l l d d) -> FieldDeclaration Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
NonEmpty (Name λ) -> s (Type l l d d) -> FieldDeclaration λ l d s
ConstructorFields
fieldBinding :: forall (s :: * -> *) l (d :: * -> *).
QualifiedName Language
-> s (Expression l l d d) -> FieldBinding Language l d s
fieldBinding = QualifiedName Language
-> s (Expression l l d d) -> FieldBinding Language l d s
QualifiedName Language
-> s (Expression l l d d) -> FieldBinding Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
QualifiedName λ -> s (Expression l l d d) -> FieldBinding λ l d s
FieldBinding
fieldPattern :: forall (s :: * -> *) l (d :: * -> *).
QualifiedName Language
-> s (Pattern l l d d) -> FieldPattern Language l d s
fieldPattern = QualifiedName Language
-> s (Pattern l l d d) -> FieldPattern Language l d s
QualifiedName Language
-> s (Pattern l l d d) -> FieldPattern Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
QualifiedName λ -> s (Pattern l l d d) -> FieldPattern λ l d s
FieldPattern
simpleDerive :: forall l (d :: * -> *) (s :: * -> *).
QualifiedName Language -> DerivingClause Language l d s
simpleDerive = QualifiedName Language -> DerivingClause Language l d s
QualifiedName Language -> DerivingClause Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
QualifiedName λ -> DerivingClause λ l d s
SimpleDerive
typeClassInstanceLHS :: forall (s :: * -> *) l (d :: * -> *).
QualifiedName Language
-> s (Type l l d d) -> ClassInstanceLHS Language l d s
typeClassInstanceLHS = QualifiedName Language
-> s (Type l l d d) -> ClassInstanceLHS Language l d s
QualifiedName Language
-> s (Type l l d d) -> ClassInstanceLHS Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
QualifiedName λ -> s (Type l l d d) -> ClassInstanceLHS λ l d s
TypeClassInstanceLHS
simpleTypeLHS :: forall l (d :: * -> *) (s :: * -> *).
Name Language -> [Name Language] -> TypeLHS Language l d s
simpleTypeLHS = Name Language -> [Name Language] -> TypeLHS Language l d s
Name Language -> [Name Language] -> TypeLHS Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
Name λ -> [Name λ] -> TypeLHS λ l d s
SimpleTypeLHS
prefixLHS :: forall (s :: * -> *) l (d :: * -> *).
s (EquationLHS l l d d)
-> NonEmpty (s (Pattern l l d d)) -> EquationLHS Language l d s
prefixLHS = s (EquationLHS l l d d)
-> NonEmpty (s (Pattern l l d d)) -> EquationLHS Language l d s
s (EquationLHS l l d d)
-> NonEmpty (s (Pattern l l d d)) -> EquationLHS Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (EquationLHS l l d d)
-> NonEmpty (s (Pattern l l d d)) -> EquationLHS λ l d s
PrefixLHS
infixLHS :: forall (s :: * -> *) l (d :: * -> *).
s (Pattern l l d d)
-> Name Language
-> s (Pattern l l d d)
-> EquationLHS Language l d s
infixLHS = s (Pattern l l d d)
-> Name Language
-> s (Pattern l l d d)
-> EquationLHS Language l d s
s (Pattern l l d d)
-> Name Language
-> s (Pattern l l d d)
-> EquationLHS Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Pattern l l d d)
-> Name λ -> s (Pattern l l d d) -> EquationLHS λ l d s
InfixLHS
patternLHS :: forall (s :: * -> *) l (d :: * -> *).
s (Pattern l l d d) -> EquationLHS Language l d s
patternLHS = s (Pattern l l d d) -> EquationLHS Language l d s
s (Pattern l l d d) -> EquationLHS Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Pattern l l d d) -> EquationLHS λ l d s
PatternLHS
variableLHS :: forall l (d :: * -> *) (s :: * -> *).
Name Language -> EquationLHS Language l d s
variableLHS = Name Language -> EquationLHS Language l d s
Name Language -> EquationLHS Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
Name λ -> EquationLHS λ l d s
VariableLHS
caseAlternative :: forall (s :: * -> *) l (d :: * -> *).
s (Pattern l l d d)
-> s (EquationRHS l l d d)
-> [s (Declaration l l d d)]
-> CaseAlternative Language l d s
caseAlternative = s (Pattern l l d d)
-> s (EquationRHS l l d d)
-> [s (Declaration l l d d)]
-> CaseAlternative Language l d s
s (Pattern l l d d)
-> s (EquationRHS l l d d)
-> [s (Declaration l l d d)]
-> CaseAlternative Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Pattern l l d d)
-> s (EquationRHS l l d d)
-> [s (Declaration l l d d)]
-> CaseAlternative λ l d s
CaseAlternative
guardedRHS :: forall (s :: * -> *) l (d :: * -> *).
NonEmpty (s (GuardedExpression l l d d))
-> EquationRHS Language l d s
guardedRHS = NonEmpty (s (GuardedExpression l l d d))
-> EquationRHS Language l d s
NonEmpty (s (GuardedExpression l l d d))
-> EquationRHS Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
NonEmpty (s (GuardedExpression l l d d)) -> EquationRHS λ l d s
GuardedRHS
normalRHS :: forall (s :: * -> *) l (d :: * -> *).
s (Expression l l d d) -> EquationRHS Language l d s
normalRHS = s (Expression l l d d) -> EquationRHS Language l d s
s (Expression l l d d) -> EquationRHS Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Expression l l d d) -> EquationRHS λ l d s
NormalRHS
guardedExpression :: forall (s :: * -> *) l (d :: * -> *).
[s (Statement l l d d)]
-> s (Expression l l d d) -> GuardedExpression Language l d s
guardedExpression = [s (Statement l l d d)]
-> s (Expression l l d d) -> GuardedExpression Language l d s
[s (Statement l l d d)]
-> s (Expression l l d d) -> GuardedExpression Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
[s (Statement l l d d)]
-> s (Expression l l d d) -> GuardedExpression λ l d s
GuardedExpression
classConstraint :: forall (s :: * -> *) l (d :: * -> *).
QualifiedName Language
-> s (Type l l d d) -> Context Language l d s
classConstraint = QualifiedName Language
-> s (Type l l d d) -> Context Language l d s
QualifiedName Language
-> s (Type l l d d) -> Context Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
QualifiedName λ -> s (Type l l d d) -> Context λ l d s
ClassConstraint
constraints :: forall (s :: * -> *) l (d :: * -> *).
[s (Context l l d d)] -> Context Language l d s
constraints = [s (Context l l d d)] -> Context Language l d s
[s (Context l l d d)] -> Context Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
[s (Context l l d d)] -> Context λ l d s
Constraints
noContext :: forall l (d :: * -> *) (s :: * -> *). Context Language l d s
noContext = Context Language l d s
Context Language l d s
forall λ l (d :: * -> *) (s :: * -> *). Context λ l d s
NoContext
bindStatement :: forall (s :: * -> *) l (d :: * -> *).
s (Pattern l l d d)
-> s (Expression l l d d) -> Statement Language l d s
bindStatement = s (Pattern l l d d)
-> s (Expression l l d d) -> Statement Language l d s
s (Pattern l l d d)
-> s (Expression l l d d) -> Statement Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Pattern l l d d) -> s (Expression l l d d) -> Statement λ l d s
BindStatement
expressionStatement :: forall (s :: * -> *) l (d :: * -> *).
s (Expression l l d d) -> Statement Language l d s
expressionStatement = s (Expression l l d d) -> Statement Language l d s
s (Expression l l d d) -> Statement Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
s (Expression l l d d) -> Statement λ l d s
ExpressionStatement
letStatement :: forall (s :: * -> *) l (d :: * -> *).
[s (Declaration l l d d)] -> Statement Language l d s
letStatement = [s (Declaration l l d d)] -> Statement Language l d s
[s (Declaration l l d d)] -> Statement Language l d s
forall λ l (d :: * -> *) (s :: * -> *).
[s (Declaration l l d d)] -> Statement λ l d s
LetStatement
charLiteral :: forall l (d :: * -> *) (s :: * -> *). Char -> Value Language l d s
charLiteral = Char -> Value Language l d s
Char -> Value Language l d s
forall λ l (d :: * -> *) (s :: * -> *). Char -> Value λ l d s
CharLiteral
floatingLiteral :: forall l (d :: * -> *) (s :: * -> *).
Rational -> Value Language l d s
floatingLiteral = Rational -> Value Language l d s
Rational -> Value Language l d s
forall λ l (d :: * -> *) (s :: * -> *). Rational -> Value λ l d s
FloatingLiteral
integerLiteral :: forall l (d :: * -> *) (s :: * -> *).
Integer -> Value Language l d s
integerLiteral = Integer -> Value Language l d s
Integer -> Value Language l d s
forall λ l (d :: * -> *) (s :: * -> *). Integer -> Value λ l d s
IntegerLiteral
stringLiteral :: forall l (d :: * -> *) (s :: * -> *). Text -> Value Language l d s
stringLiteral = Text -> Value Language l d s
Text -> Value Language l d s
forall λ l (d :: * -> *) (s :: * -> *). Text -> Value λ l d s
StringLiteral
name :: Text -> Name Language
name = Text -> Name Language
Text -> Name Language
forall λ. Text -> Name λ
Name
moduleName :: NonEmpty (Name Language) -> ModuleName Language
moduleName = NonEmpty (Name Language) -> ModuleName Language
NonEmpty (Name Language) -> ModuleName Language
forall λ. NonEmpty (Name λ) -> ModuleName λ
ModuleName
qualifiedName :: Maybe (ModuleName Language)
-> Name Language -> QualifiedName Language
qualifiedName = Maybe (ModuleName Language)
-> Name Language -> QualifiedName Language
Maybe (ModuleName Language)
-> Name Language -> QualifiedName Language
forall λ. Maybe (ModuleName λ) -> Name λ -> QualifiedName λ
QualifiedName
nonAssociative :: Associativity Language
nonAssociative = Associativity Language
Associativity Language
forall λ. Associativity λ
NonAssociative
leftAssociative :: Associativity Language
leftAssociative = Associativity Language
Associativity Language
forall λ. Associativity λ
LeftAssociative
rightAssociative :: Associativity Language
rightAssociative = Associativity Language
Associativity Language
forall λ. Associativity λ
RightAssociative
cCall :: CallingConvention Language
cCall = CallingConvention Language
CallingConvention Language
forall λ. CallingConvention λ
CCall
cppCall :: CallingConvention Language
cppCall = CallingConvention Language
CallingConvention Language
forall λ. CallingConvention λ
CppCall
dotNetCall :: CallingConvention Language
dotNetCall = CallingConvention Language
CallingConvention Language
forall λ. CallingConvention λ
DotNetCall
jvmCall :: CallingConvention Language
jvmCall = CallingConvention Language
CallingConvention Language
forall λ. CallingConvention λ
JvmCall
stdCall :: CallingConvention Language
stdCall = CallingConvention Language
CallingConvention Language
forall λ. CallingConvention λ
StdCall
safeCall :: CallSafety Language
safeCall = CallSafety Language
CallSafety Language
forall λ. CallSafety λ
SafeCall
unsafeCall :: CallSafety Language
unsafeCall = CallSafety Language
CallSafety Language
forall λ. CallSafety λ
UnsafeCall
data Module λ l d s =
NamedModule (Abstract.ModuleName λ) (Maybe [s (Abstract.Export l l d d)]) [s (Abstract.Import l l d d)]
[s (Abstract.Declaration l l d d)]
| AnonymousModule [s (Abstract.Import l l d d)] [s (Abstract.Declaration l l d d)]
| ExtendedModule [ExtensionSwitch] (s (Abstract.Module l l d d))
data Declaration λ l d s =
ClassDeclaration (s (Abstract.Context l l d d)) (s (Abstract.TypeLHS l l d d)) [s (Abstract.Declaration l l d d)]
| DataDeclaration (s (Abstract.Context l l d d)) (s (Abstract.TypeLHS l l d d))
[s (Abstract.DataConstructor l l d d)] [s (Abstract.DerivingClause l l d d)]
| DefaultDeclaration [s (Abstract.Type l l d d)]
| EquationDeclaration (s (Abstract.EquationLHS l l d d)) (s (Abstract.EquationRHS l l d d))
[s (Abstract.Declaration l l d d)]
| FixityDeclaration (Associativity λ) (Maybe Int) (NonEmpty (Abstract.Name λ))
| ForeignExport (CallingConvention λ) (Maybe Text) (Abstract.Name λ) (s (Abstract.Type l l d d))
| ForeignImport (CallingConvention λ) (Maybe (CallSafety λ)) (Maybe Text) (Abstract.Name λ)
(s (Abstract.Type l l d d))
| InstanceDeclaration (s (Abstract.Context l l d d)) (s (Abstract.ClassInstanceLHS l l d d))
([s (Abstract.Declaration l l d d)])
| NewtypeDeclaration (s (Abstract.Context l l d d)) (s (Abstract.TypeLHS l l d d))
(s (Abstract.DataConstructor l l d d)) [s (Abstract.DerivingClause l l d d)]
| TypeSynonymDeclaration (s (Abstract.TypeLHS l l d d)) (s (Abstract.Type l l d d))
| TypeSignature (NonEmpty (Abstract.Name λ)) (s (Abstract.Context l l d d)) (s (Abstract.Type l l d d))
data Expression λ l d s =
ApplyExpression (s (Abstract.Expression l l d d)) (s (Abstract.Expression l l d d))
| ConditionalExpression (s (Abstract.Expression l l d d)) (s (Abstract.Expression l l d d))
(s (Abstract.Expression l l d d))
| ConstructorExpression (s (Abstract.Constructor l l d d))
| CaseExpression (s (Abstract.Expression l l d d)) [s (Abstract.CaseAlternative l l d d)]
| DoExpression (s (Abstract.GuardedExpression l l d d))
| InfixExpression (s (Abstract.Expression l l d d)) (s (Abstract.Expression l l d d))
(s (Abstract.Expression l l d d))
| LeftSectionExpression (s (Abstract.Expression l l d d)) (Abstract.QualifiedName λ)
| LambdaExpression [s (Abstract.Pattern l l d d)] (s (Abstract.Expression l l d d))
| LetExpression [s (Abstract.Declaration l l d d)] (s (Abstract.Expression l l d d))
| ListComprehension (s (Abstract.Expression l l d d)) (NonEmpty (s (Abstract.Statement l l d d)))
| ListExpression [s (Abstract.Expression l l d d)]
| LiteralExpression (s (Abstract.Value l l d d))
| Negate
| RecordExpression (s (Abstract.Expression l l d d)) [s (Abstract.FieldBinding l l d d)]
| ReferenceExpression (Abstract.QualifiedName λ)
| RightSectionExpression (Abstract.QualifiedName λ) (s (Abstract.Expression l l d d))
| SequenceExpression (s (Abstract.Expression l l d d)) (Maybe (s (Abstract.Expression l l d d)))
(Maybe (s (Abstract.Expression l l d d)))
| TupleExpression (NonEmpty (s (Abstract.Expression l l d d)))
| TypedExpression (s (Abstract.Expression l l d d)) (s (Abstract.Type l l d d))
data Type λ l d s =
ConstructorType (s (Abstract.Constructor l l d d))
| FunctionConstructorType
| FunctionType (s (Abstract.Type l l d d)) (s (Abstract.Type l l d d))
| ListType (s (Abstract.Type l l d d))
| StrictType (s (Abstract.Type l l d d))
| TupleType (NonEmpty (s (Abstract.Type l l d d)))
| TypeApplication (s (Abstract.Type l l d d)) (s (Abstract.Type l l d d))
| TypeVariable (Abstract.Name λ)
data EquationLHS λ l d s =
PrefixLHS (s (Abstract.EquationLHS l l d d)) (NonEmpty (s (Abstract.Pattern l l d d)))
| InfixLHS (s (Abstract.Pattern l l d d)) (Abstract.Name λ) (s (Abstract.Pattern l l d d))
| PatternLHS (s (Abstract.Pattern l l d d))
| VariableLHS (Abstract.Name λ)
data EquationRHS λ l d s =
GuardedRHS (NonEmpty (s (Abstract.GuardedExpression l l d d)))
| NormalRHS (s (Abstract.Expression l l d d))
data GuardedExpression λ l d s = GuardedExpression [s (Abstract.Statement l l d d)] (s (Abstract.Expression l l d d))
data Pattern λ l d s =
AsPattern (Abstract.Name λ) (s (Abstract.Pattern l l d d))
| ConstructorPattern (s (Abstract.Constructor l l d d)) [s (Abstract.Pattern l l d d)]
| InfixPattern (s (Abstract.Pattern l l d d)) (Abstract.QualifiedName λ) (s (Abstract.Pattern l l d d))
| IrrefutablePattern (s (Abstract.Pattern l l d d))
| ListPattern [s (Abstract.Pattern l l d d)]
| LiteralPattern (s (Abstract.Value l l d d))
| RecordPattern (Abstract.QualifiedName λ) [s (Abstract.FieldPattern l l d d)]
| TuplePattern (NonEmpty (s (Abstract.Pattern l l d d)))
| VariablePattern (Abstract.Name λ)
| WildcardPattern
data Statement λ l d s =
BindStatement (s (Abstract.Pattern l l d d)) (s (Abstract.Expression l l d d))
| ExpressionStatement (s (Abstract.Expression l l d d))
| LetStatement [s (Abstract.Declaration l l d d)]
data ClassInstanceLHS λ l d s =
TypeClassInstanceLHS (Abstract.QualifiedName λ) (s (Abstract.Type l l d d))
data TypeLHS λ l (d :: Kind.Type -> Kind.Type) (s :: Kind.Type -> Kind.Type) =
SimpleTypeLHS (Abstract.Name λ) [Abstract.Name λ]
data Import λ l d s = Import Bool (Abstract.ModuleName λ) (Maybe (Abstract.ModuleName λ))
(Maybe (s (Abstract.ImportSpecification l l d d)))
data ImportSpecification λ l d s = ImportSpecification Bool [s (Abstract.ImportItem l l d d)]
data ImportItem λ l (d :: Kind.Type -> Kind.Type) (s :: Kind.Type -> Kind.Type) =
ImportClassOrType (Abstract.Name λ) (Maybe (Abstract.Members λ))
| ImportVar (Abstract.Name λ)
data Export λ l (d :: Kind.Type -> Kind.Type) (s :: Kind.Type -> Kind.Type) =
ExportClassOrType (Abstract.QualifiedName λ) (Maybe (Abstract.Members λ))
| ExportVar (Abstract.QualifiedName λ)
| ReExportModule (Abstract.ModuleName λ)
data Context λ l d s =
ClassConstraint (Abstract.QualifiedName λ) (s (Abstract.Type l l d d))
| Constraints [s (Abstract.Context l l d d)]
| NoContext
data DataConstructor λ l d s =
Constructor (Abstract.Name λ) [s (Abstract.Type l l d d)]
| RecordConstructor (Abstract.Name λ) [s (Abstract.FieldDeclaration l l d d)]
data DerivingClause λ l (d :: Kind.Type -> Kind.Type) (s :: Kind.Type -> Kind.Type) = SimpleDerive (Abstract.QualifiedName λ)
data FieldDeclaration λ l d s = ConstructorFields (NonEmpty (Abstract.Name λ)) (s (Abstract.Type l l d d))
data FieldBinding λ l d s = FieldBinding (Abstract.QualifiedName λ) (s (Abstract.Expression l l d d))
data FieldPattern λ l d s = FieldPattern (Abstract.QualifiedName λ) (s (Abstract.Pattern l l d d))
data CaseAlternative λ l d s =
CaseAlternative (s (Abstract.Pattern l l d d)) (s (Abstract.EquationRHS l l d d)) [s (Abstract.Declaration l l d d)]
data Constructor λ l (d :: Kind.Type -> Kind.Type) (s :: Kind.Type -> Kind.Type) =
ConstructorReference (Abstract.QualifiedName λ)
| EmptyListConstructor
| TupleConstructor Int
| UnitConstructor
data Value λ l (d :: Kind.Type -> Kind.Type) (s :: Kind.Type -> Kind.Type) =
CharLiteral Char
| FloatingLiteral Rational
| IntegerLiteral Integer
| StringLiteral Text
deriving (Typeable (Value λ l d s)
Typeable (Value λ l d s) =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Value λ l d s -> c (Value λ l d s))
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Value λ l d s))
-> (Value λ l d s -> Constr)
-> (Value λ l d s -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (Value λ l d s)))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (Value λ l d s)))
-> ((forall b. Data b => b -> b) -> Value λ l d s -> Value λ l d s)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Value λ l d s -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Value λ l d s -> r)
-> (forall u. (forall d. Data d => d -> u) -> Value λ l d s -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> Value λ l d s -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> Value λ l d s -> m (Value λ l d s))
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> Value λ l d s -> m (Value λ l d s))
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> Value λ l d s -> m (Value λ l d s))
-> Data (Value λ l d s)
Value λ l d s -> Constr
Value λ l d s -> DataType
(forall b. Data b => b -> b) -> Value λ l d s -> Value λ l d s
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) -> Value λ l d s -> u
forall u. (forall d. Data d => d -> u) -> Value λ l d s -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Value λ l d s -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Value λ l d s -> r
forall λ l (d :: * -> *) (s :: * -> *).
(Typeable d, Typeable s, Typeable λ, Typeable l) =>
Typeable (Value λ l d s)
forall λ l (d :: * -> *) (s :: * -> *).
(Typeable d, Typeable s, Typeable λ, Typeable l) =>
Value λ l d s -> Constr
forall λ l (d :: * -> *) (s :: * -> *).
(Typeable d, Typeable s, Typeable λ, Typeable l) =>
Value λ l d s -> DataType
forall λ l (d :: * -> *) (s :: * -> *).
(Typeable d, Typeable s, Typeable λ, Typeable l) =>
(forall b. Data b => b -> b) -> Value λ l d s -> Value λ l d s
forall λ l (d :: * -> *) (s :: * -> *) u.
(Typeable d, Typeable s, Typeable λ, Typeable l) =>
Int -> (forall d. Data d => d -> u) -> Value λ l d s -> u
forall λ l (d :: * -> *) (s :: * -> *) u.
(Typeable d, Typeable s, Typeable λ, Typeable l) =>
(forall d. Data d => d -> u) -> Value λ l d s -> [u]
forall λ l (d :: * -> *) (s :: * -> *) r r'.
(Typeable d, Typeable s, Typeable λ, Typeable l) =>
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Value λ l d s -> r
forall λ l (d :: * -> *) (s :: * -> *) r r'.
(Typeable d, Typeable s, Typeable λ, Typeable l) =>
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Value λ l d s -> r
forall λ l (d :: * -> *) (s :: * -> *) (m :: * -> *).
(Typeable d, Typeable s, Typeable λ, Typeable l, Monad m) =>
(forall d. Data d => d -> m d)
-> Value λ l d s -> m (Value λ l d s)
forall λ l (d :: * -> *) (s :: * -> *) (m :: * -> *).
(Typeable d, Typeable s, Typeable λ, Typeable l, MonadPlus m) =>
(forall d. Data d => d -> m d)
-> Value λ l d s -> m (Value λ l d s)
forall λ l (d :: * -> *) (s :: * -> *) (c :: * -> *).
(Typeable d, Typeable s, Typeable λ, Typeable l) =>
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Value λ l d s)
forall λ l (d :: * -> *) (s :: * -> *) (c :: * -> *).
(Typeable d, Typeable s, Typeable λ, Typeable l) =>
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Value λ l d s -> c (Value λ l d s)
forall λ l (d :: * -> *) (s :: * -> *) (t :: * -> *) (c :: * -> *).
(Typeable d, Typeable s, Typeable λ, Typeable l, Typeable t) =>
(forall d. Data d => c (t d)) -> Maybe (c (Value λ l d s))
forall λ l (d :: * -> *) (s :: * -> *) (t :: * -> * -> *)
(c :: * -> *).
(Typeable d, Typeable s, Typeable λ, Typeable l, Typeable t) =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (Value λ l d s))
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> Value λ l d s -> m (Value λ l d s)
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> Value λ l d s -> m (Value λ l d s)
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Value λ l d s)
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Value λ l d s -> c (Value λ l d s)
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (Value λ l d s))
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (Value λ l d s))
$cgfoldl :: forall λ l (d :: * -> *) (s :: * -> *) (c :: * -> *).
(Typeable d, Typeable s, Typeable λ, Typeable l) =>
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Value λ l d s -> c (Value λ l d s)
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Value λ l d s -> c (Value λ l d s)
$cgunfold :: forall λ l (d :: * -> *) (s :: * -> *) (c :: * -> *).
(Typeable d, Typeable s, Typeable λ, Typeable l) =>
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Value λ l d s)
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Value λ l d s)
$ctoConstr :: forall λ l (d :: * -> *) (s :: * -> *).
(Typeable d, Typeable s, Typeable λ, Typeable l) =>
Value λ l d s -> Constr
toConstr :: Value λ l d s -> Constr
$cdataTypeOf :: forall λ l (d :: * -> *) (s :: * -> *).
(Typeable d, Typeable s, Typeable λ, Typeable l) =>
Value λ l d s -> DataType
dataTypeOf :: Value λ l d s -> DataType
$cdataCast1 :: forall λ l (d :: * -> *) (s :: * -> *) (t :: * -> *) (c :: * -> *).
(Typeable d, Typeable s, Typeable λ, Typeable l, Typeable t) =>
(forall d. Data d => c (t d)) -> Maybe (c (Value λ l d s))
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (Value λ l d s))
$cdataCast2 :: forall λ l (d :: * -> *) (s :: * -> *) (t :: * -> * -> *)
(c :: * -> *).
(Typeable d, Typeable s, Typeable λ, Typeable l, Typeable t) =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (Value λ l d s))
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (Value λ l d s))
$cgmapT :: forall λ l (d :: * -> *) (s :: * -> *).
(Typeable d, Typeable s, Typeable λ, Typeable l) =>
(forall b. Data b => b -> b) -> Value λ l d s -> Value λ l d s
gmapT :: (forall b. Data b => b -> b) -> Value λ l d s -> Value λ l d s
$cgmapQl :: forall λ l (d :: * -> *) (s :: * -> *) r r'.
(Typeable d, Typeable s, Typeable λ, Typeable l) =>
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Value λ l d s -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Value λ l d s -> r
$cgmapQr :: forall λ l (d :: * -> *) (s :: * -> *) r r'.
(Typeable d, Typeable s, Typeable λ, Typeable l) =>
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Value λ l d s -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Value λ l d s -> r
$cgmapQ :: forall λ l (d :: * -> *) (s :: * -> *) u.
(Typeable d, Typeable s, Typeable λ, Typeable l) =>
(forall d. Data d => d -> u) -> Value λ l d s -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> Value λ l d s -> [u]
$cgmapQi :: forall λ l (d :: * -> *) (s :: * -> *) u.
(Typeable d, Typeable s, Typeable λ, Typeable l) =>
Int -> (forall d. Data d => d -> u) -> Value λ l d s -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> Value λ l d s -> u
$cgmapM :: forall λ l (d :: * -> *) (s :: * -> *) (m :: * -> *).
(Typeable d, Typeable s, Typeable λ, Typeable l, Monad m) =>
(forall d. Data d => d -> m d)
-> Value λ l d s -> m (Value λ l d s)
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> Value λ l d s -> m (Value λ l d s)
$cgmapMp :: forall λ l (d :: * -> *) (s :: * -> *) (m :: * -> *).
(Typeable d, Typeable s, Typeable λ, Typeable l, MonadPlus m) =>
(forall d. Data d => d -> m d)
-> Value λ l d s -> m (Value λ l d s)
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> Value λ l d s -> m (Value λ l d s)
$cgmapMo :: forall λ l (d :: * -> *) (s :: * -> *) (m :: * -> *).
(Typeable d, Typeable s, Typeable λ, Typeable l, MonadPlus m) =>
(forall d. Data d => d -> m d)
-> Value λ l d s -> m (Value λ l d s)
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> Value λ l d s -> m (Value λ l d s)
Data, Value λ l d s -> Value λ l d s -> Bool
(Value λ l d s -> Value λ l d s -> Bool)
-> (Value λ l d s -> Value λ l d s -> Bool) -> Eq (Value λ l d s)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
forall λ l (d :: * -> *) (s :: * -> *).
Value λ l d s -> Value λ l d s -> Bool
$c== :: forall λ l (d :: * -> *) (s :: * -> *).
Value λ l d s -> Value λ l d s -> Bool
== :: Value λ l d s -> Value λ l d s -> Bool
$c/= :: forall λ l (d :: * -> *) (s :: * -> *).
Value λ l d s -> Value λ l d s -> Bool
/= :: Value λ l d s -> Value λ l d s -> Bool
Eq, Int -> Value λ l d s -> ShowS
[Value λ l d s] -> ShowS
Value λ l d s -> String
(Int -> Value λ l d s -> ShowS)
-> (Value λ l d s -> String)
-> ([Value λ l d s] -> ShowS)
-> Show (Value λ l d s)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
forall λ l (d :: * -> *) (s :: * -> *).
Int -> Value λ l d s -> ShowS
forall λ l (d :: * -> *) (s :: * -> *). [Value λ l d s] -> ShowS
forall λ l (d :: * -> *) (s :: * -> *). Value λ l d s -> String
$cshowsPrec :: forall λ l (d :: * -> *) (s :: * -> *).
Int -> Value λ l d s -> ShowS
showsPrec :: Int -> Value λ l d s -> ShowS
$cshow :: forall λ l (d :: * -> *) (s :: * -> *). Value λ l d s -> String
show :: Value λ l d s -> String
$cshowList :: forall λ l (d :: * -> *) (s :: * -> *). [Value λ l d s] -> ShowS
showList :: [Value λ l d s] -> ShowS
Show)
deriving instance Typeable (Module λ l d s)
deriving instance (Data (s (Abstract.Module l l d d)), Data (s (Abstract.Declaration l l d d)),
Data (s (Abstract.Export l l d d)), Data (s (Abstract.Import l l d d)),
Data (Abstract.ModuleName λ),
Data λ, Typeable l, Typeable d, Typeable s) => Data (Module λ l d s)
deriving instance (Show (s (Abstract.Module l l d d)), Show (s (Abstract.Declaration l l d d)),
Show (s (Abstract.Export l l d d)), Show (s (Abstract.Import l l d d)),
Show (Abstract.ModuleName λ)) => Show (Module λ l d s)
deriving instance (Eq (s (Abstract.Module l l d d)), Eq (s (Abstract.Declaration l l d d)),
Eq (s (Abstract.Export l l d d)), Eq (s (Abstract.Import l l d d)),
Eq (Abstract.ModuleName λ)) => Eq (Module λ l d s)
deriving instance Typeable (Declaration λ l d s)
deriving instance (Data (s (Abstract.Context l l d d)), Data (s (Abstract.DataConstructor l l d d)),
Data (s (Abstract.Declaration l l d d)), Data (s (Abstract.DerivingClause l l d d)),
Data (s (Abstract.EquationLHS l l d d)), Data (s (Abstract.EquationRHS l l d d)),
Data (s (Abstract.Type l l d d)), Data (s (Abstract.TypeLHS l l d d)),
Data (s (Abstract.ClassInstanceLHS l l d d)),
Data (Abstract.Name λ),
Data λ, Typeable l, Typeable d, Typeable s) => Data (Declaration λ l d s)
deriving instance (Show (s (Abstract.Context l l d d)), Show (s (Abstract.DataConstructor l l d d)),
Show (s (Abstract.Declaration l l d d)), Show (s (Abstract.DerivingClause l l d d)),
Show (s (Abstract.EquationLHS l l d d)), Show (s (Abstract.EquationRHS l l d d)),
Show (s (Abstract.Type l l d d)), Show (s (Abstract.TypeLHS l l d d)),
Show (s (Abstract.ClassInstanceLHS l l d d)),
Show (Abstract.Name λ)) => Show (Declaration λ l d s)
deriving instance (Eq (s (Abstract.Context l l d d)), Eq (s (Abstract.DataConstructor l l d d)),
Eq (s (Abstract.Declaration l l d d)), Eq (s (Abstract.DerivingClause l l d d)),
Eq (s (Abstract.EquationLHS l l d d)), Eq (s (Abstract.EquationRHS l l d d)),
Eq (s (Abstract.Type l l d d)), Eq (s (Abstract.TypeLHS l l d d)),
Eq (s (Abstract.ClassInstanceLHS l l d d)),
Eq (Abstract.Name λ)) => Eq (Declaration λ l d s)
deriving instance Typeable (Expression λ l d s)
deriving instance (Data (s (Abstract.CaseAlternative l l d d)), Data (s (Abstract.Constructor l l d d)),
Data (s (Abstract.Expression l l d d)), Data (s (Abstract.GuardedExpression l l d d)),
Data (s (Abstract.Declaration l l d d)), Data (s (Abstract.FieldBinding l l d d)),
Data (s (Abstract.Pattern l l d d)), Data (s (Abstract.Statement l l d d)),
Data (s (Abstract.Type l l d d)), Data (s (Abstract.Value l l d d)), Data (Abstract.QualifiedName λ),
Data λ, Typeable l, Typeable d, Typeable s) => Data (Expression λ l d s)
deriving instance (Show (s (Abstract.CaseAlternative l l d d)), Show (s (Abstract.Constructor l l d d)),
Show (s (Abstract.Expression l l d d)), Show (s (Abstract.GuardedExpression l l d d)),
Show (s (Abstract.Declaration l l d d)), Show (s (Abstract.FieldBinding l l d d)),
Show (s (Abstract.Pattern l l d d)), Show (s (Abstract.Statement l l d d)),
Show (s (Abstract.Type l l d d)), Show (s (Abstract.Value l l d d)),
Show (Abstract.QualifiedName λ)) => Show (Expression λ l d s)
deriving instance (Eq (s (Abstract.CaseAlternative l l d d)), Eq (s (Abstract.Constructor l l d d)),
Eq (s (Abstract.Expression l l d d)), Eq (s (Abstract.GuardedExpression l l d d)),
Eq (s (Abstract.Declaration l l d d)), Eq (s (Abstract.FieldBinding l l d d)),
Eq (s (Abstract.Pattern l l d d)), Eq (s (Abstract.Statement l l d d)),
Eq (s (Abstract.Type l l d d)), Eq (s (Abstract.Value l l d d)),
Eq (Abstract.QualifiedName λ)) => Eq (Expression λ l d s)
deriving instance Typeable (Type λ l d s)
deriving instance (Data (s (Abstract.Constructor l l d d)), Data (s (Abstract.Type l l d d)), Data (Abstract.Name λ),
Data λ, Typeable l, Typeable d, Typeable s) => Data (Type λ l d s)
deriving instance (Show (s (Abstract.Constructor l l d d)), Show (s (Abstract.Type l l d d)),
Show (Abstract.Name λ)) => Show (Type λ l d s)
deriving instance (Eq (s (Abstract.Constructor l l d d)), Eq (s (Abstract.Type l l d d)),
Eq (Abstract.Name λ)) => Eq (Type λ l d s)
deriving instance Typeable (EquationLHS λ l d s)
deriving instance (Data (s (Abstract.EquationLHS l l d d)), Data (s (Abstract.Pattern l l d d)), Data (Abstract.Name λ),
Data λ, Typeable l, Typeable d, Typeable s) => Data (EquationLHS λ l d s)
deriving instance (Show (s (Abstract.EquationLHS l l d d)), Show (s (Abstract.Pattern l l d d)),
Show (Abstract.Name λ)) => Show (EquationLHS λ l d s)
deriving instance (Eq (s (Abstract.EquationLHS l l d d)), Eq (s (Abstract.Pattern l l d d)),
Eq (Abstract.Name λ)) => Eq (EquationLHS λ l d s)
deriving instance Typeable (EquationRHS λ l d s)
deriving instance (Data (s (Abstract.GuardedExpression l l d d)), Data (s (Abstract.Expression l l d d)),
Data λ, Typeable l, Typeable d, Typeable s) => Data (EquationRHS λ l d s)
deriving instance (Show (s (Abstract.GuardedExpression l l d d)), Show (s (Abstract.Expression l l d d))) =>
Show (EquationRHS λ l d s)
deriving instance (Eq (s (Abstract.GuardedExpression l l d d)), Eq (s (Abstract.Expression l l d d))) =>
Eq (EquationRHS λ l d s)
deriving instance Typeable (GuardedExpression λ l d s)
deriving instance (Data (s (Abstract.Statement l l d d)), Data (s (Abstract.Expression l l d d)),
Data λ, Typeable l, Typeable d, Typeable s) => Data (GuardedExpression λ l d s)
deriving instance (Show (s (Abstract.Statement l l d d)), Show (s (Abstract.Expression l l d d))) =>
Show (GuardedExpression λ l d s)
deriving instance (Eq (s (Abstract.Statement l l d d)), Eq (s (Abstract.Expression l l d d))) =>
Eq (GuardedExpression λ l d s)
deriving instance Typeable (Export λ l d s)
deriving instance (Data (Abstract.Members λ), Data (Abstract.ModuleName λ), Data (Abstract.QualifiedName λ),
Data λ, Typeable l, Typeable d, Typeable s) => Data (Export λ l d s)
deriving instance (Show (Abstract.Members λ),
Show (Abstract.ModuleName λ), Show (Abstract.QualifiedName λ)) => Show (Export λ l d s)
deriving instance (Eq (Abstract.Members λ),
Eq (Abstract.ModuleName λ), Eq (Abstract.QualifiedName λ)) => Eq (Export λ l d s)
deriving instance Typeable (DerivingClause λ l d s)
deriving instance (Data (Abstract.QualifiedName λ),
Data λ, Typeable l, Typeable d, Typeable s) => Data (DerivingClause λ l d s)
deriving instance Show (Abstract.QualifiedName λ) => Show (DerivingClause λ l d s)
deriving instance Eq (Abstract.QualifiedName λ) => Eq (DerivingClause λ l d s)
deriving instance Typeable (Pattern λ l d s)
deriving instance (Data (s (Abstract.Constructor l l d d)), Data (s (Abstract.FieldPattern l l d d)),
Data (s (Abstract.Pattern l l d d)), Data (s (Abstract.Value l l d d)),
Data (Abstract.Name λ), Data (Abstract.QualifiedName λ),
Data λ, Typeable l, Typeable d, Typeable s) => Data (Pattern λ l d s)
deriving instance (Show (s (Abstract.Constructor l l d d)), Show (s (Abstract.FieldPattern l l d d)),
Show (s (Abstract.Pattern l l d d)), Show (s (Abstract.Value l l d d)),
Show (Abstract.QualifiedName λ), Show (Abstract.Name λ)) => Show (Pattern λ l d s)
deriving instance (Eq (s (Abstract.Constructor l l d d)), Eq (s (Abstract.FieldPattern l l d d)),
Eq (s (Abstract.Pattern l l d d)), Eq (s (Abstract.Value l l d d)),
Eq (Abstract.QualifiedName λ), Eq (Abstract.Name λ)) => Eq (Pattern λ l d s)
deriving instance Typeable (Statement λ l d s)
deriving instance (Data (s (Abstract.Declaration l l d d)), Data (s (Abstract.Expression l l d d)),
Data (s (Abstract.Pattern l l d d)),
Data λ, Typeable l, Typeable d, Typeable s) => Data (Statement λ l d s)
deriving instance (Show (s (Abstract.Declaration l l d d)), Show (s (Abstract.Expression l l d d)),
Show (s (Abstract.Pattern l l d d))) => Show (Statement λ l d s)
deriving instance (Eq (s (Abstract.Declaration l l d d)), Eq (s (Abstract.Expression l l d d)),
Eq (s (Abstract.Pattern l l d d))) => Eq (Statement λ l d s)
deriving instance Typeable (TypeLHS λ l d s)
deriving instance (Data (Abstract.Name λ), Data λ, Typeable l, Typeable d, Typeable s) => Data (TypeLHS λ l d s)
deriving instance (Show (Abstract.Name λ)) => Show (TypeLHS λ l d s)
deriving instance (Eq (Abstract.Name λ)) => Eq (TypeLHS λ l d s)
deriving instance Typeable (ClassInstanceLHS λ l d s)
deriving instance (Data (s (Abstract.Type l l d d)), Data (Abstract.QualifiedName λ),
Data λ, Typeable l, Typeable d, Typeable s) => Data (ClassInstanceLHS λ l d s)
deriving instance (Show (s (Abstract.Type l l d d)), Show (Abstract.QualifiedName λ)) => Show (ClassInstanceLHS λ l d s)
deriving instance (Eq (s (Abstract.Type l l d d)), Eq (Abstract.QualifiedName λ)) => Eq (ClassInstanceLHS λ l d s)
deriving instance Typeable (Import λ l d s)
deriving instance (Data (s (Abstract.ImportSpecification l l d d)), Data (Abstract.ModuleName λ),
Data λ, Typeable l, Typeable d, Typeable s) => Data (Import λ l d s)
deriving instance (Show (s (Abstract.ImportSpecification l l d d)), Show (Abstract.ModuleName λ)) =>
Show (Import λ l d s)
deriving instance (Eq (s (Abstract.ImportSpecification l l d d)), Eq (Abstract.ModuleName λ)) =>
Eq (Import λ l d s)
deriving instance Typeable (ImportSpecification λ l d s)
deriving instance (Data (s (Abstract.ImportItem l l d d)),
Data λ, Typeable l, Typeable d, Typeable s) => Data (ImportSpecification λ l d s)
deriving instance (Show (s (Abstract.ImportItem l l d d))) => Show (ImportSpecification λ l d s)
deriving instance (Eq (s (Abstract.ImportItem l l d d))) => Eq (ImportSpecification λ l d s)
deriving instance Typeable (ImportItem λ l d s)
deriving instance (Data (Abstract.Members λ), Data (Abstract.Name λ),
Data λ, Typeable l, Typeable d, Typeable s) => Data (ImportItem λ l d s)
deriving instance (Show (Abstract.Members λ), Show (Abstract.Name λ)) => Show (ImportItem λ l d s)
deriving instance (Eq (Abstract.Members λ), Eq (Abstract.Name λ)) => Eq (ImportItem λ l d s)
deriving instance Typeable (Context λ l d s)
deriving instance (Data (s (Abstract.Context l l d d)), Data (s (Abstract.Type l l d d)),
Data (Abstract.Name λ), Data (Abstract.QualifiedName λ),
Data λ, Typeable l, Typeable d, Typeable s) => Data (Context λ l d s)
deriving instance (Show (s (Abstract.Context l l d d)), Show (s (Abstract.Type l l d d)),
Show (Abstract.QualifiedName λ), Show (Abstract.Name λ)) => Show (Context λ l d s)
deriving instance (Eq (s (Abstract.Context l l d d)), Eq (s (Abstract.Type l l d d)),
Eq (Abstract.QualifiedName λ), Eq (Abstract.Name λ)) => Eq (Context λ l d s)
deriving instance Typeable (DataConstructor λ l d s)
deriving instance (Data (s (Abstract.FieldDeclaration l l d d)), Data (s (Abstract.Type l l d d)),
Data (Abstract.Name λ),
Data λ, Typeable l, Typeable d, Typeable s) => Data (DataConstructor λ l d s)
deriving instance (Show (s (Abstract.FieldDeclaration l l d d)), Show (s (Abstract.Type l l d d)),
Show (Abstract.Name λ), Show (Abstract.Name λ)) => Show (DataConstructor λ l d s)
deriving instance (Eq (s (Abstract.FieldDeclaration l l d d)), Eq (s (Abstract.Type l l d d)),
Eq (Abstract.Name λ), Eq (Abstract.Name λ)) => Eq (DataConstructor λ l d s)
deriving instance Typeable (FieldBinding λ l d s)
deriving instance (Data (s (Abstract.Expression l l d d)), Data (Abstract.QualifiedName λ),
Data λ, Typeable l, Typeable d, Typeable s) => Data (FieldBinding λ l d s)
deriving instance (Show (s (Abstract.Expression l l d d)), Show (Abstract.QualifiedName λ)) =>
Show (FieldBinding λ l d s)
deriving instance (Eq (s (Abstract.Expression l l d d)), Eq (Abstract.QualifiedName λ)) =>
Eq (FieldBinding λ l d s)
deriving instance Typeable (FieldDeclaration λ l d s)
deriving instance (Data (s (Abstract.Type l l d d)), Data (Abstract.Name λ),
Data λ, Typeable l, Typeable d, Typeable s) => Data (FieldDeclaration λ l d s)
deriving instance (Show (s (Abstract.Type l l d d)), Show (Abstract.Name λ)) => Show (FieldDeclaration λ l d s)
deriving instance (Eq (s (Abstract.Type l l d d)), Eq (Abstract.Name λ)) => Eq (FieldDeclaration λ l d s)
deriving instance Typeable (FieldPattern λ l d s)
deriving instance (Data (s (Abstract.Pattern l l d d)), Data (Abstract.QualifiedName λ),
Data λ, Typeable l, Typeable d, Typeable s) => Data (FieldPattern λ l d s)
deriving instance (Show (s (Abstract.Pattern l l d d)), Show (Abstract.QualifiedName λ)) => Show (FieldPattern λ l d s)
deriving instance (Eq (s (Abstract.Pattern l l d d)), Eq (Abstract.QualifiedName λ)) => Eq (FieldPattern λ l d s)
deriving instance Typeable (CaseAlternative λ l d s)
deriving instance (Data (s (Abstract.Pattern l l d d)), Data (s (Abstract.EquationRHS l l d d)),
Data (s (Abstract.Declaration l l d d)),
Typeable λ, Typeable l, Typeable d, Typeable s) => Data (CaseAlternative λ l d s)
deriving instance (Show (s (Abstract.Pattern l l d d)), Show (s (Abstract.EquationRHS l l d d)),
Show (s (Abstract.Declaration l l d d))) => Show (CaseAlternative λ l d s)
deriving instance (Eq (s (Abstract.Pattern l l d d)), Eq (s (Abstract.EquationRHS l l d d)),
Eq (s (Abstract.Declaration l l d d))) => Eq (CaseAlternative λ l d s)
deriving instance Data (Abstract.QualifiedName λ) => Typeable (Constructor λ l d s)
deriving instance (Data (Abstract.QualifiedName λ),
Data λ, Typeable l, Typeable d, Typeable s) => Data (Constructor λ l d s)
deriving instance Show (Abstract.QualifiedName λ) => Show (Constructor λ l d s)
deriving instance Eq (Abstract.QualifiedName λ) => Eq (Constructor λ l d s)
data CallingConvention λ = CCall | CppCall | DotNetCall | JvmCall | StdCall deriving (Typeable (CallingConvention λ)
Typeable (CallingConvention λ) =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> CallingConvention λ
-> c (CallingConvention λ))
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (CallingConvention λ))
-> (CallingConvention λ -> Constr)
-> (CallingConvention λ -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (CallingConvention λ)))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (CallingConvention λ)))
-> ((forall b. Data b => b -> b)
-> CallingConvention λ -> CallingConvention λ)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CallingConvention λ -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CallingConvention λ -> r)
-> (forall u.
(forall d. Data d => d -> u) -> CallingConvention λ -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> CallingConvention λ -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> CallingConvention λ -> m (CallingConvention λ))
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> CallingConvention λ -> m (CallingConvention λ))
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> CallingConvention λ -> m (CallingConvention λ))
-> Data (CallingConvention λ)
CallingConvention λ -> Constr
CallingConvention λ -> DataType
(forall b. Data b => b -> b)
-> CallingConvention λ -> CallingConvention λ
forall λ. Data λ => Typeable (CallingConvention λ)
forall λ. Data λ => CallingConvention λ -> Constr
forall λ. Data λ => CallingConvention λ -> DataType
forall λ.
Data λ =>
(forall b. Data b => b -> b)
-> CallingConvention λ -> CallingConvention λ
forall λ u.
Data λ =>
Int -> (forall d. Data d => d -> u) -> CallingConvention λ -> u
forall λ u.
Data λ =>
(forall d. Data d => d -> u) -> CallingConvention λ -> [u]
forall λ r r'.
Data λ =>
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CallingConvention λ -> r
forall λ r r'.
Data λ =>
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CallingConvention λ -> r
forall λ (m :: * -> *).
(Data λ, Monad m) =>
(forall d. Data d => d -> m d)
-> CallingConvention λ -> m (CallingConvention λ)
forall λ (m :: * -> *).
(Data λ, MonadPlus m) =>
(forall d. Data d => d -> m d)
-> CallingConvention λ -> m (CallingConvention λ)
forall λ (c :: * -> *).
Data λ =>
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (CallingConvention λ)
forall λ (c :: * -> *).
Data λ =>
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> CallingConvention λ
-> c (CallingConvention λ)
forall λ (t :: * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d. Data d => c (t d)) -> Maybe (c (CallingConvention λ))
forall λ (t :: * -> * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (CallingConvention λ))
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) -> CallingConvention λ -> u
forall u.
(forall d. Data d => d -> u) -> CallingConvention λ -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CallingConvention λ -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CallingConvention λ -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> CallingConvention λ -> m (CallingConvention λ)
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> CallingConvention λ -> m (CallingConvention λ)
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (CallingConvention λ)
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> CallingConvention λ
-> c (CallingConvention λ)
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (CallingConvention λ))
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (CallingConvention λ))
$cgfoldl :: forall λ (c :: * -> *).
Data λ =>
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> CallingConvention λ
-> c (CallingConvention λ)
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> CallingConvention λ
-> c (CallingConvention λ)
$cgunfold :: forall λ (c :: * -> *).
Data λ =>
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (CallingConvention λ)
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (CallingConvention λ)
$ctoConstr :: forall λ. Data λ => CallingConvention λ -> Constr
toConstr :: CallingConvention λ -> Constr
$cdataTypeOf :: forall λ. Data λ => CallingConvention λ -> DataType
dataTypeOf :: CallingConvention λ -> DataType
$cdataCast1 :: forall λ (t :: * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d. Data d => c (t d)) -> Maybe (c (CallingConvention λ))
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (CallingConvention λ))
$cdataCast2 :: forall λ (t :: * -> * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (CallingConvention λ))
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (CallingConvention λ))
$cgmapT :: forall λ.
Data λ =>
(forall b. Data b => b -> b)
-> CallingConvention λ -> CallingConvention λ
gmapT :: (forall b. Data b => b -> b)
-> CallingConvention λ -> CallingConvention λ
$cgmapQl :: forall λ r r'.
Data λ =>
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CallingConvention λ -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CallingConvention λ -> r
$cgmapQr :: forall λ r r'.
Data λ =>
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CallingConvention λ -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CallingConvention λ -> r
$cgmapQ :: forall λ u.
Data λ =>
(forall d. Data d => d -> u) -> CallingConvention λ -> [u]
gmapQ :: forall u.
(forall d. Data d => d -> u) -> CallingConvention λ -> [u]
$cgmapQi :: forall λ u.
Data λ =>
Int -> (forall d. Data d => d -> u) -> CallingConvention λ -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> CallingConvention λ -> u
$cgmapM :: forall λ (m :: * -> *).
(Data λ, Monad m) =>
(forall d. Data d => d -> m d)
-> CallingConvention λ -> m (CallingConvention λ)
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> CallingConvention λ -> m (CallingConvention λ)
$cgmapMp :: forall λ (m :: * -> *).
(Data λ, MonadPlus m) =>
(forall d. Data d => d -> m d)
-> CallingConvention λ -> m (CallingConvention λ)
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> CallingConvention λ -> m (CallingConvention λ)
$cgmapMo :: forall λ (m :: * -> *).
(Data λ, MonadPlus m) =>
(forall d. Data d => d -> m d)
-> CallingConvention λ -> m (CallingConvention λ)
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> CallingConvention λ -> m (CallingConvention λ)
Data, CallingConvention λ -> CallingConvention λ -> Bool
(CallingConvention λ -> CallingConvention λ -> Bool)
-> (CallingConvention λ -> CallingConvention λ -> Bool)
-> Eq (CallingConvention λ)
forall λ. CallingConvention λ -> CallingConvention λ -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall λ. CallingConvention λ -> CallingConvention λ -> Bool
== :: CallingConvention λ -> CallingConvention λ -> Bool
$c/= :: forall λ. CallingConvention λ -> CallingConvention λ -> Bool
/= :: CallingConvention λ -> CallingConvention λ -> Bool
Eq, Int -> CallingConvention λ -> ShowS
[CallingConvention λ] -> ShowS
CallingConvention λ -> String
(Int -> CallingConvention λ -> ShowS)
-> (CallingConvention λ -> String)
-> ([CallingConvention λ] -> ShowS)
-> Show (CallingConvention λ)
forall λ. Int -> CallingConvention λ -> ShowS
forall λ. [CallingConvention λ] -> ShowS
forall λ. CallingConvention λ -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall λ. Int -> CallingConvention λ -> ShowS
showsPrec :: Int -> CallingConvention λ -> ShowS
$cshow :: forall λ. CallingConvention λ -> String
show :: CallingConvention λ -> String
$cshowList :: forall λ. [CallingConvention λ] -> ShowS
showList :: [CallingConvention λ] -> ShowS
Show)
data CallSafety λ = SafeCall | UnsafeCall deriving (Typeable (CallSafety λ)
Typeable (CallSafety λ) =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> CallSafety λ -> c (CallSafety λ))
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (CallSafety λ))
-> (CallSafety λ -> Constr)
-> (CallSafety λ -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (CallSafety λ)))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (CallSafety λ)))
-> ((forall b. Data b => b -> b) -> CallSafety λ -> CallSafety λ)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CallSafety λ -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CallSafety λ -> r)
-> (forall u. (forall d. Data d => d -> u) -> CallSafety λ -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> CallSafety λ -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> CallSafety λ -> m (CallSafety λ))
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> CallSafety λ -> m (CallSafety λ))
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> CallSafety λ -> m (CallSafety λ))
-> Data (CallSafety λ)
CallSafety λ -> Constr
CallSafety λ -> DataType
(forall b. Data b => b -> b) -> CallSafety λ -> CallSafety λ
forall λ. Data λ => Typeable (CallSafety λ)
forall λ. Data λ => CallSafety λ -> Constr
forall λ. Data λ => CallSafety λ -> DataType
forall λ.
Data λ =>
(forall b. Data b => b -> b) -> CallSafety λ -> CallSafety λ
forall λ u.
Data λ =>
Int -> (forall d. Data d => d -> u) -> CallSafety λ -> u
forall λ u.
Data λ =>
(forall d. Data d => d -> u) -> CallSafety λ -> [u]
forall λ r r'.
Data λ =>
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CallSafety λ -> r
forall λ r r'.
Data λ =>
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CallSafety λ -> r
forall λ (m :: * -> *).
(Data λ, Monad m) =>
(forall d. Data d => d -> m d) -> CallSafety λ -> m (CallSafety λ)
forall λ (m :: * -> *).
(Data λ, MonadPlus m) =>
(forall d. Data d => d -> m d) -> CallSafety λ -> m (CallSafety λ)
forall λ (c :: * -> *).
Data λ =>
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (CallSafety λ)
forall λ (c :: * -> *).
Data λ =>
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> CallSafety λ -> c (CallSafety λ)
forall λ (t :: * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d. Data d => c (t d)) -> Maybe (c (CallSafety λ))
forall λ (t :: * -> * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (CallSafety λ))
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) -> CallSafety λ -> u
forall u. (forall d. Data d => d -> u) -> CallSafety λ -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CallSafety λ -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CallSafety λ -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> CallSafety λ -> m (CallSafety λ)
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> CallSafety λ -> m (CallSafety λ)
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (CallSafety λ)
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> CallSafety λ -> c (CallSafety λ)
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (CallSafety λ))
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (CallSafety λ))
$cgfoldl :: forall λ (c :: * -> *).
Data λ =>
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> CallSafety λ -> c (CallSafety λ)
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> CallSafety λ -> c (CallSafety λ)
$cgunfold :: forall λ (c :: * -> *).
Data λ =>
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (CallSafety λ)
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (CallSafety λ)
$ctoConstr :: forall λ. Data λ => CallSafety λ -> Constr
toConstr :: CallSafety λ -> Constr
$cdataTypeOf :: forall λ. Data λ => CallSafety λ -> DataType
dataTypeOf :: CallSafety λ -> DataType
$cdataCast1 :: forall λ (t :: * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d. Data d => c (t d)) -> Maybe (c (CallSafety λ))
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (CallSafety λ))
$cdataCast2 :: forall λ (t :: * -> * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (CallSafety λ))
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (CallSafety λ))
$cgmapT :: forall λ.
Data λ =>
(forall b. Data b => b -> b) -> CallSafety λ -> CallSafety λ
gmapT :: (forall b. Data b => b -> b) -> CallSafety λ -> CallSafety λ
$cgmapQl :: forall λ r r'.
Data λ =>
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CallSafety λ -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> CallSafety λ -> r
$cgmapQr :: forall λ r r'.
Data λ =>
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CallSafety λ -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> CallSafety λ -> r
$cgmapQ :: forall λ u.
Data λ =>
(forall d. Data d => d -> u) -> CallSafety λ -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> CallSafety λ -> [u]
$cgmapQi :: forall λ u.
Data λ =>
Int -> (forall d. Data d => d -> u) -> CallSafety λ -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> CallSafety λ -> u
$cgmapM :: forall λ (m :: * -> *).
(Data λ, Monad m) =>
(forall d. Data d => d -> m d) -> CallSafety λ -> m (CallSafety λ)
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> CallSafety λ -> m (CallSafety λ)
$cgmapMp :: forall λ (m :: * -> *).
(Data λ, MonadPlus m) =>
(forall d. Data d => d -> m d) -> CallSafety λ -> m (CallSafety λ)
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> CallSafety λ -> m (CallSafety λ)
$cgmapMo :: forall λ (m :: * -> *).
(Data λ, MonadPlus m) =>
(forall d. Data d => d -> m d) -> CallSafety λ -> m (CallSafety λ)
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> CallSafety λ -> m (CallSafety λ)
Data, CallSafety λ -> CallSafety λ -> Bool
(CallSafety λ -> CallSafety λ -> Bool)
-> (CallSafety λ -> CallSafety λ -> Bool) -> Eq (CallSafety λ)
forall λ. CallSafety λ -> CallSafety λ -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall λ. CallSafety λ -> CallSafety λ -> Bool
== :: CallSafety λ -> CallSafety λ -> Bool
$c/= :: forall λ. CallSafety λ -> CallSafety λ -> Bool
/= :: CallSafety λ -> CallSafety λ -> Bool
Eq, Int -> CallSafety λ -> ShowS
[CallSafety λ] -> ShowS
CallSafety λ -> String
(Int -> CallSafety λ -> ShowS)
-> (CallSafety λ -> String)
-> ([CallSafety λ] -> ShowS)
-> Show (CallSafety λ)
forall λ. Int -> CallSafety λ -> ShowS
forall λ. [CallSafety λ] -> ShowS
forall λ. CallSafety λ -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall λ. Int -> CallSafety λ -> ShowS
showsPrec :: Int -> CallSafety λ -> ShowS
$cshow :: forall λ. CallSafety λ -> String
show :: CallSafety λ -> String
$cshowList :: forall λ. [CallSafety λ] -> ShowS
showList :: [CallSafety λ] -> ShowS
Show)
data Associativity λ = NonAssociative | LeftAssociative | RightAssociative deriving (Typeable (Associativity λ)
Typeable (Associativity λ) =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Associativity λ -> c (Associativity λ))
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Associativity λ))
-> (Associativity λ -> Constr)
-> (Associativity λ -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (Associativity λ)))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (Associativity λ)))
-> ((forall b. Data b => b -> b)
-> Associativity λ -> Associativity λ)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Associativity λ -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Associativity λ -> r)
-> (forall u.
(forall d. Data d => d -> u) -> Associativity λ -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> Associativity λ -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> Associativity λ -> m (Associativity λ))
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> Associativity λ -> m (Associativity λ))
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> Associativity λ -> m (Associativity λ))
-> Data (Associativity λ)
Associativity λ -> Constr
Associativity λ -> DataType
(forall b. Data b => b -> b) -> Associativity λ -> Associativity λ
forall λ. Data λ => Typeable (Associativity λ)
forall λ. Data λ => Associativity λ -> Constr
forall λ. Data λ => Associativity λ -> DataType
forall λ.
Data λ =>
(forall b. Data b => b -> b) -> Associativity λ -> Associativity λ
forall λ u.
Data λ =>
Int -> (forall d. Data d => d -> u) -> Associativity λ -> u
forall λ u.
Data λ =>
(forall d. Data d => d -> u) -> Associativity λ -> [u]
forall λ r r'.
Data λ =>
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Associativity λ -> r
forall λ r r'.
Data λ =>
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Associativity λ -> r
forall λ (m :: * -> *).
(Data λ, Monad m) =>
(forall d. Data d => d -> m d)
-> Associativity λ -> m (Associativity λ)
forall λ (m :: * -> *).
(Data λ, MonadPlus m) =>
(forall d. Data d => d -> m d)
-> Associativity λ -> m (Associativity λ)
forall λ (c :: * -> *).
Data λ =>
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Associativity λ)
forall λ (c :: * -> *).
Data λ =>
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Associativity λ -> c (Associativity λ)
forall λ (t :: * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d. Data d => c (t d)) -> Maybe (c (Associativity λ))
forall λ (t :: * -> * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (Associativity λ))
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) -> Associativity λ -> u
forall u. (forall d. Data d => d -> u) -> Associativity λ -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Associativity λ -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Associativity λ -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> Associativity λ -> m (Associativity λ)
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> Associativity λ -> m (Associativity λ)
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Associativity λ)
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Associativity λ -> c (Associativity λ)
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (Associativity λ))
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (Associativity λ))
$cgfoldl :: forall λ (c :: * -> *).
Data λ =>
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Associativity λ -> c (Associativity λ)
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Associativity λ -> c (Associativity λ)
$cgunfold :: forall λ (c :: * -> *).
Data λ =>
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Associativity λ)
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Associativity λ)
$ctoConstr :: forall λ. Data λ => Associativity λ -> Constr
toConstr :: Associativity λ -> Constr
$cdataTypeOf :: forall λ. Data λ => Associativity λ -> DataType
dataTypeOf :: Associativity λ -> DataType
$cdataCast1 :: forall λ (t :: * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d. Data d => c (t d)) -> Maybe (c (Associativity λ))
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (Associativity λ))
$cdataCast2 :: forall λ (t :: * -> * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (Associativity λ))
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (Associativity λ))
$cgmapT :: forall λ.
Data λ =>
(forall b. Data b => b -> b) -> Associativity λ -> Associativity λ
gmapT :: (forall b. Data b => b -> b) -> Associativity λ -> Associativity λ
$cgmapQl :: forall λ r r'.
Data λ =>
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Associativity λ -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Associativity λ -> r
$cgmapQr :: forall λ r r'.
Data λ =>
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Associativity λ -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Associativity λ -> r
$cgmapQ :: forall λ u.
Data λ =>
(forall d. Data d => d -> u) -> Associativity λ -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> Associativity λ -> [u]
$cgmapQi :: forall λ u.
Data λ =>
Int -> (forall d. Data d => d -> u) -> Associativity λ -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> Associativity λ -> u
$cgmapM :: forall λ (m :: * -> *).
(Data λ, Monad m) =>
(forall d. Data d => d -> m d)
-> Associativity λ -> m (Associativity λ)
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> Associativity λ -> m (Associativity λ)
$cgmapMp :: forall λ (m :: * -> *).
(Data λ, MonadPlus m) =>
(forall d. Data d => d -> m d)
-> Associativity λ -> m (Associativity λ)
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> Associativity λ -> m (Associativity λ)
$cgmapMo :: forall λ (m :: * -> *).
(Data λ, MonadPlus m) =>
(forall d. Data d => d -> m d)
-> Associativity λ -> m (Associativity λ)
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> Associativity λ -> m (Associativity λ)
Data, Associativity λ -> Associativity λ -> Bool
(Associativity λ -> Associativity λ -> Bool)
-> (Associativity λ -> Associativity λ -> Bool)
-> Eq (Associativity λ)
forall λ. Associativity λ -> Associativity λ -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall λ. Associativity λ -> Associativity λ -> Bool
== :: Associativity λ -> Associativity λ -> Bool
$c/= :: forall λ. Associativity λ -> Associativity λ -> Bool
/= :: Associativity λ -> Associativity λ -> Bool
Eq, Int -> Associativity λ -> ShowS
[Associativity λ] -> ShowS
Associativity λ -> String
(Int -> Associativity λ -> ShowS)
-> (Associativity λ -> String)
-> ([Associativity λ] -> ShowS)
-> Show (Associativity λ)
forall λ. Int -> Associativity λ -> ShowS
forall λ. [Associativity λ] -> ShowS
forall λ. Associativity λ -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall λ. Int -> Associativity λ -> ShowS
showsPrec :: Int -> Associativity λ -> ShowS
$cshow :: forall λ. Associativity λ -> String
show :: Associativity λ -> String
$cshowList :: forall λ. [Associativity λ] -> ShowS
showList :: [Associativity λ] -> ShowS
Show)
data Members λ = AllMembers
| MemberList [Name λ]
deriving (Typeable (Members λ)
Typeable (Members λ) =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Members λ -> c (Members λ))
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Members λ))
-> (Members λ -> Constr)
-> (Members λ -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (Members λ)))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (Members λ)))
-> ((forall b. Data b => b -> b) -> Members λ -> Members λ)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Members λ -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Members λ -> r)
-> (forall u. (forall d. Data d => d -> u) -> Members λ -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> Members λ -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Members λ -> m (Members λ))
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Members λ -> m (Members λ))
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Members λ -> m (Members λ))
-> Data (Members λ)
Members λ -> Constr
Members λ -> DataType
(forall b. Data b => b -> b) -> Members λ -> Members λ
forall λ. Data λ => Typeable (Members λ)
forall λ. Data λ => Members λ -> Constr
forall λ. Data λ => Members λ -> DataType
forall λ.
Data λ =>
(forall b. Data b => b -> b) -> Members λ -> Members λ
forall λ u.
Data λ =>
Int -> (forall d. Data d => d -> u) -> Members λ -> u
forall λ u.
Data λ =>
(forall d. Data d => d -> u) -> Members λ -> [u]
forall λ r r'.
Data λ =>
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Members λ -> r
forall λ r r'.
Data λ =>
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Members λ -> r
forall λ (m :: * -> *).
(Data λ, Monad m) =>
(forall d. Data d => d -> m d) -> Members λ -> m (Members λ)
forall λ (m :: * -> *).
(Data λ, MonadPlus m) =>
(forall d. Data d => d -> m d) -> Members λ -> m (Members λ)
forall λ (c :: * -> *).
Data λ =>
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Members λ)
forall λ (c :: * -> *).
Data λ =>
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Members λ -> c (Members λ)
forall λ (t :: * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d. Data d => c (t d)) -> Maybe (c (Members λ))
forall λ (t :: * -> * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (Members λ))
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) -> Members λ -> u
forall u. (forall d. Data d => d -> u) -> Members λ -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Members λ -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Members λ -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Members λ -> m (Members λ)
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Members λ -> m (Members λ)
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Members λ)
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Members λ -> c (Members λ)
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (Members λ))
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (Members λ))
$cgfoldl :: forall λ (c :: * -> *).
Data λ =>
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Members λ -> c (Members λ)
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Members λ -> c (Members λ)
$cgunfold :: forall λ (c :: * -> *).
Data λ =>
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Members λ)
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Members λ)
$ctoConstr :: forall λ. Data λ => Members λ -> Constr
toConstr :: Members λ -> Constr
$cdataTypeOf :: forall λ. Data λ => Members λ -> DataType
dataTypeOf :: Members λ -> DataType
$cdataCast1 :: forall λ (t :: * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d. Data d => c (t d)) -> Maybe (c (Members λ))
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (Members λ))
$cdataCast2 :: forall λ (t :: * -> * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (Members λ))
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (Members λ))
$cgmapT :: forall λ.
Data λ =>
(forall b. Data b => b -> b) -> Members λ -> Members λ
gmapT :: (forall b. Data b => b -> b) -> Members λ -> Members λ
$cgmapQl :: forall λ r r'.
Data λ =>
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Members λ -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Members λ -> r
$cgmapQr :: forall λ r r'.
Data λ =>
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Members λ -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Members λ -> r
$cgmapQ :: forall λ u.
Data λ =>
(forall d. Data d => d -> u) -> Members λ -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> Members λ -> [u]
$cgmapQi :: forall λ u.
Data λ =>
Int -> (forall d. Data d => d -> u) -> Members λ -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> Members λ -> u
$cgmapM :: forall λ (m :: * -> *).
(Data λ, Monad m) =>
(forall d. Data d => d -> m d) -> Members λ -> m (Members λ)
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Members λ -> m (Members λ)
$cgmapMp :: forall λ (m :: * -> *).
(Data λ, MonadPlus m) =>
(forall d. Data d => d -> m d) -> Members λ -> m (Members λ)
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Members λ -> m (Members λ)
$cgmapMo :: forall λ (m :: * -> *).
(Data λ, MonadPlus m) =>
(forall d. Data d => d -> m d) -> Members λ -> m (Members λ)
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Members λ -> m (Members λ)
Data, Members λ -> Members λ -> Bool
(Members λ -> Members λ -> Bool)
-> (Members λ -> Members λ -> Bool) -> Eq (Members λ)
forall λ. Members λ -> Members λ -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall λ. Members λ -> Members λ -> Bool
== :: Members λ -> Members λ -> Bool
$c/= :: forall λ. Members λ -> Members λ -> Bool
/= :: Members λ -> Members λ -> Bool
Eq, Int -> Members λ -> ShowS
[Members λ] -> ShowS
Members λ -> String
(Int -> Members λ -> ShowS)
-> (Members λ -> String)
-> ([Members λ] -> ShowS)
-> Show (Members λ)
forall λ. Int -> Members λ -> ShowS
forall λ. [Members λ] -> ShowS
forall λ. Members λ -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall λ. Int -> Members λ -> ShowS
showsPrec :: Int -> Members λ -> ShowS
$cshow :: forall λ. Members λ -> String
show :: Members λ -> String
$cshowList :: forall λ. [Members λ] -> ShowS
showList :: [Members λ] -> ShowS
Show)
newtype Name λ = Name {forall λ. Name λ -> Text
getName :: Text} deriving (Typeable (Name λ)
Typeable (Name λ) =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Name λ -> c (Name λ))
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Name λ))
-> (Name λ -> Constr)
-> (Name λ -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (Name λ)))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Name λ)))
-> ((forall b. Data b => b -> b) -> Name λ -> Name λ)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> Name λ -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> Name λ -> r)
-> (forall u. (forall d. Data d => d -> u) -> Name λ -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> Name λ -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Name λ -> m (Name λ))
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Name λ -> m (Name λ))
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Name λ -> m (Name λ))
-> Data (Name λ)
Name λ -> Constr
Name λ -> DataType
(forall b. Data b => b -> b) -> Name λ -> Name λ
forall λ. Data λ => Typeable (Name λ)
forall λ. Data λ => Name λ -> Constr
forall λ. Data λ => Name λ -> DataType
forall λ.
Data λ =>
(forall b. Data b => b -> b) -> Name λ -> Name λ
forall λ u.
Data λ =>
Int -> (forall d. Data d => d -> u) -> Name λ -> u
forall λ u. Data λ => (forall d. Data d => d -> u) -> Name λ -> [u]
forall λ r r'.
Data λ =>
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Name λ -> r
forall λ r r'.
Data λ =>
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Name λ -> r
forall λ (m :: * -> *).
(Data λ, Monad m) =>
(forall d. Data d => d -> m d) -> Name λ -> m (Name λ)
forall λ (m :: * -> *).
(Data λ, MonadPlus m) =>
(forall d. Data d => d -> m d) -> Name λ -> m (Name λ)
forall λ (c :: * -> *).
Data λ =>
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Name λ)
forall λ (c :: * -> *).
Data λ =>
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Name λ -> c (Name λ)
forall λ (t :: * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d. Data d => c (t d)) -> Maybe (c (Name λ))
forall λ (t :: * -> * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Name λ))
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) -> Name λ -> u
forall u. (forall d. Data d => d -> u) -> Name λ -> [u]
forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Name λ -> r
forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Name λ -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Name λ -> m (Name λ)
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Name λ -> m (Name λ)
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Name λ)
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Name λ -> c (Name λ)
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (Name λ))
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Name λ))
$cgfoldl :: forall λ (c :: * -> *).
Data λ =>
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Name λ -> c (Name λ)
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> Name λ -> c (Name λ)
$cgunfold :: forall λ (c :: * -> *).
Data λ =>
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Name λ)
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (Name λ)
$ctoConstr :: forall λ. Data λ => Name λ -> Constr
toConstr :: Name λ -> Constr
$cdataTypeOf :: forall λ. Data λ => Name λ -> DataType
dataTypeOf :: Name λ -> DataType
$cdataCast1 :: forall λ (t :: * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d. Data d => c (t d)) -> Maybe (c (Name λ))
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (Name λ))
$cdataCast2 :: forall λ (t :: * -> * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Name λ))
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Name λ))
$cgmapT :: forall λ.
Data λ =>
(forall b. Data b => b -> b) -> Name λ -> Name λ
gmapT :: (forall b. Data b => b -> b) -> Name λ -> Name λ
$cgmapQl :: forall λ r r'.
Data λ =>
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Name λ -> r
gmapQl :: forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Name λ -> r
$cgmapQr :: forall λ r r'.
Data λ =>
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Name λ -> r
gmapQr :: forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Name λ -> r
$cgmapQ :: forall λ u. Data λ => (forall d. Data d => d -> u) -> Name λ -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> Name λ -> [u]
$cgmapQi :: forall λ u.
Data λ =>
Int -> (forall d. Data d => d -> u) -> Name λ -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> Name λ -> u
$cgmapM :: forall λ (m :: * -> *).
(Data λ, Monad m) =>
(forall d. Data d => d -> m d) -> Name λ -> m (Name λ)
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> Name λ -> m (Name λ)
$cgmapMp :: forall λ (m :: * -> *).
(Data λ, MonadPlus m) =>
(forall d. Data d => d -> m d) -> Name λ -> m (Name λ)
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Name λ -> m (Name λ)
$cgmapMo :: forall λ (m :: * -> *).
(Data λ, MonadPlus m) =>
(forall d. Data d => d -> m d) -> Name λ -> m (Name λ)
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> Name λ -> m (Name λ)
Data, Name λ -> Name λ -> Bool
(Name λ -> Name λ -> Bool)
-> (Name λ -> Name λ -> Bool) -> Eq (Name λ)
forall λ. Name λ -> Name λ -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall λ. Name λ -> Name λ -> Bool
== :: Name λ -> Name λ -> Bool
$c/= :: forall λ. Name λ -> Name λ -> Bool
/= :: Name λ -> Name λ -> Bool
Eq, Eq (Name λ)
Eq (Name λ) =>
(Name λ -> Name λ -> Ordering)
-> (Name λ -> Name λ -> Bool)
-> (Name λ -> Name λ -> Bool)
-> (Name λ -> Name λ -> Bool)
-> (Name λ -> Name λ -> Bool)
-> (Name λ -> Name λ -> Name λ)
-> (Name λ -> Name λ -> Name λ)
-> Ord (Name λ)
Name λ -> Name λ -> Bool
Name λ -> Name λ -> Ordering
Name λ -> Name λ -> Name λ
forall λ. Eq (Name λ)
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
forall λ. Name λ -> Name λ -> Bool
forall λ. Name λ -> Name λ -> Ordering
forall λ. Name λ -> Name λ -> Name λ
$ccompare :: forall λ. Name λ -> Name λ -> Ordering
compare :: Name λ -> Name λ -> Ordering
$c< :: forall λ. Name λ -> Name λ -> Bool
< :: Name λ -> Name λ -> Bool
$c<= :: forall λ. Name λ -> Name λ -> Bool
<= :: Name λ -> Name λ -> Bool
$c> :: forall λ. Name λ -> Name λ -> Bool
> :: Name λ -> Name λ -> Bool
$c>= :: forall λ. Name λ -> Name λ -> Bool
>= :: Name λ -> Name λ -> Bool
$cmax :: forall λ. Name λ -> Name λ -> Name λ
max :: Name λ -> Name λ -> Name λ
$cmin :: forall λ. Name λ -> Name λ -> Name λ
min :: Name λ -> Name λ -> Name λ
Ord, Int -> Name λ -> ShowS
[Name λ] -> ShowS
Name λ -> String
(Int -> Name λ -> ShowS)
-> (Name λ -> String) -> ([Name λ] -> ShowS) -> Show (Name λ)
forall λ. Int -> Name λ -> ShowS
forall λ. [Name λ] -> ShowS
forall λ. Name λ -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall λ. Int -> Name λ -> ShowS
showsPrec :: Int -> Name λ -> ShowS
$cshow :: forall λ. Name λ -> String
show :: Name λ -> String
$cshowList :: forall λ. [Name λ] -> ShowS
showList :: [Name λ] -> ShowS
Show)
data QualifiedName λ = QualifiedName (Maybe (ModuleName λ)) (Name λ) deriving (Typeable (QualifiedName λ)
Typeable (QualifiedName λ) =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> QualifiedName λ -> c (QualifiedName λ))
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (QualifiedName λ))
-> (QualifiedName λ -> Constr)
-> (QualifiedName λ -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (QualifiedName λ)))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (QualifiedName λ)))
-> ((forall b. Data b => b -> b)
-> QualifiedName λ -> QualifiedName λ)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> QualifiedName λ -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> QualifiedName λ -> r)
-> (forall u.
(forall d. Data d => d -> u) -> QualifiedName λ -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> QualifiedName λ -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> QualifiedName λ -> m (QualifiedName λ))
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> QualifiedName λ -> m (QualifiedName λ))
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> QualifiedName λ -> m (QualifiedName λ))
-> Data (QualifiedName λ)
QualifiedName λ -> Constr
QualifiedName λ -> DataType
(forall b. Data b => b -> b) -> QualifiedName λ -> QualifiedName λ
forall λ. Data λ => Typeable (QualifiedName λ)
forall λ. Data λ => QualifiedName λ -> Constr
forall λ. Data λ => QualifiedName λ -> DataType
forall λ.
Data λ =>
(forall b. Data b => b -> b) -> QualifiedName λ -> QualifiedName λ
forall λ u.
Data λ =>
Int -> (forall d. Data d => d -> u) -> QualifiedName λ -> u
forall λ u.
Data λ =>
(forall d. Data d => d -> u) -> QualifiedName λ -> [u]
forall λ r r'.
Data λ =>
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> QualifiedName λ -> r
forall λ r r'.
Data λ =>
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> QualifiedName λ -> r
forall λ (m :: * -> *).
(Data λ, Monad m) =>
(forall d. Data d => d -> m d)
-> QualifiedName λ -> m (QualifiedName λ)
forall λ (m :: * -> *).
(Data λ, MonadPlus m) =>
(forall d. Data d => d -> m d)
-> QualifiedName λ -> m (QualifiedName λ)
forall λ (c :: * -> *).
Data λ =>
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (QualifiedName λ)
forall λ (c :: * -> *).
Data λ =>
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> QualifiedName λ -> c (QualifiedName λ)
forall λ (t :: * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d. Data d => c (t d)) -> Maybe (c (QualifiedName λ))
forall λ (t :: * -> * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (QualifiedName λ))
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) -> QualifiedName λ -> u
forall u. (forall d. Data d => d -> u) -> QualifiedName λ -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> QualifiedName λ -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> QualifiedName λ -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> QualifiedName λ -> m (QualifiedName λ)
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> QualifiedName λ -> m (QualifiedName λ)
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (QualifiedName λ)
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> QualifiedName λ -> c (QualifiedName λ)
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (QualifiedName λ))
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (QualifiedName λ))
$cgfoldl :: forall λ (c :: * -> *).
Data λ =>
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> QualifiedName λ -> c (QualifiedName λ)
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> QualifiedName λ -> c (QualifiedName λ)
$cgunfold :: forall λ (c :: * -> *).
Data λ =>
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (QualifiedName λ)
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (QualifiedName λ)
$ctoConstr :: forall λ. Data λ => QualifiedName λ -> Constr
toConstr :: QualifiedName λ -> Constr
$cdataTypeOf :: forall λ. Data λ => QualifiedName λ -> DataType
dataTypeOf :: QualifiedName λ -> DataType
$cdataCast1 :: forall λ (t :: * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d. Data d => c (t d)) -> Maybe (c (QualifiedName λ))
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (QualifiedName λ))
$cdataCast2 :: forall λ (t :: * -> * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (QualifiedName λ))
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (QualifiedName λ))
$cgmapT :: forall λ.
Data λ =>
(forall b. Data b => b -> b) -> QualifiedName λ -> QualifiedName λ
gmapT :: (forall b. Data b => b -> b) -> QualifiedName λ -> QualifiedName λ
$cgmapQl :: forall λ r r'.
Data λ =>
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> QualifiedName λ -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> QualifiedName λ -> r
$cgmapQr :: forall λ r r'.
Data λ =>
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> QualifiedName λ -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> QualifiedName λ -> r
$cgmapQ :: forall λ u.
Data λ =>
(forall d. Data d => d -> u) -> QualifiedName λ -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> QualifiedName λ -> [u]
$cgmapQi :: forall λ u.
Data λ =>
Int -> (forall d. Data d => d -> u) -> QualifiedName λ -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> QualifiedName λ -> u
$cgmapM :: forall λ (m :: * -> *).
(Data λ, Monad m) =>
(forall d. Data d => d -> m d)
-> QualifiedName λ -> m (QualifiedName λ)
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> QualifiedName λ -> m (QualifiedName λ)
$cgmapMp :: forall λ (m :: * -> *).
(Data λ, MonadPlus m) =>
(forall d. Data d => d -> m d)
-> QualifiedName λ -> m (QualifiedName λ)
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> QualifiedName λ -> m (QualifiedName λ)
$cgmapMo :: forall λ (m :: * -> *).
(Data λ, MonadPlus m) =>
(forall d. Data d => d -> m d)
-> QualifiedName λ -> m (QualifiedName λ)
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> QualifiedName λ -> m (QualifiedName λ)
Data, QualifiedName λ -> QualifiedName λ -> Bool
(QualifiedName λ -> QualifiedName λ -> Bool)
-> (QualifiedName λ -> QualifiedName λ -> Bool)
-> Eq (QualifiedName λ)
forall λ. QualifiedName λ -> QualifiedName λ -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall λ. QualifiedName λ -> QualifiedName λ -> Bool
== :: QualifiedName λ -> QualifiedName λ -> Bool
$c/= :: forall λ. QualifiedName λ -> QualifiedName λ -> Bool
/= :: QualifiedName λ -> QualifiedName λ -> Bool
Eq, Eq (QualifiedName λ)
Eq (QualifiedName λ) =>
(QualifiedName λ -> QualifiedName λ -> Ordering)
-> (QualifiedName λ -> QualifiedName λ -> Bool)
-> (QualifiedName λ -> QualifiedName λ -> Bool)
-> (QualifiedName λ -> QualifiedName λ -> Bool)
-> (QualifiedName λ -> QualifiedName λ -> Bool)
-> (QualifiedName λ -> QualifiedName λ -> QualifiedName λ)
-> (QualifiedName λ -> QualifiedName λ -> QualifiedName λ)
-> Ord (QualifiedName λ)
QualifiedName λ -> QualifiedName λ -> Bool
QualifiedName λ -> QualifiedName λ -> Ordering
QualifiedName λ -> QualifiedName λ -> QualifiedName λ
forall λ. Eq (QualifiedName λ)
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
forall λ. QualifiedName λ -> QualifiedName λ -> Bool
forall λ. QualifiedName λ -> QualifiedName λ -> Ordering
forall λ. QualifiedName λ -> QualifiedName λ -> QualifiedName λ
$ccompare :: forall λ. QualifiedName λ -> QualifiedName λ -> Ordering
compare :: QualifiedName λ -> QualifiedName λ -> Ordering
$c< :: forall λ. QualifiedName λ -> QualifiedName λ -> Bool
< :: QualifiedName λ -> QualifiedName λ -> Bool
$c<= :: forall λ. QualifiedName λ -> QualifiedName λ -> Bool
<= :: QualifiedName λ -> QualifiedName λ -> Bool
$c> :: forall λ. QualifiedName λ -> QualifiedName λ -> Bool
> :: QualifiedName λ -> QualifiedName λ -> Bool
$c>= :: forall λ. QualifiedName λ -> QualifiedName λ -> Bool
>= :: QualifiedName λ -> QualifiedName λ -> Bool
$cmax :: forall λ. QualifiedName λ -> QualifiedName λ -> QualifiedName λ
max :: QualifiedName λ -> QualifiedName λ -> QualifiedName λ
$cmin :: forall λ. QualifiedName λ -> QualifiedName λ -> QualifiedName λ
min :: QualifiedName λ -> QualifiedName λ -> QualifiedName λ
Ord, Int -> QualifiedName λ -> ShowS
[QualifiedName λ] -> ShowS
QualifiedName λ -> String
(Int -> QualifiedName λ -> ShowS)
-> (QualifiedName λ -> String)
-> ([QualifiedName λ] -> ShowS)
-> Show (QualifiedName λ)
forall λ. Int -> QualifiedName λ -> ShowS
forall λ. [QualifiedName λ] -> ShowS
forall λ. QualifiedName λ -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall λ. Int -> QualifiedName λ -> ShowS
showsPrec :: Int -> QualifiedName λ -> ShowS
$cshow :: forall λ. QualifiedName λ -> String
show :: QualifiedName λ -> String
$cshowList :: forall λ. [QualifiedName λ] -> ShowS
showList :: [QualifiedName λ] -> ShowS
Show)
newtype ModuleName λ = ModuleName (NonEmpty (Name λ)) deriving (Typeable (ModuleName λ)
Typeable (ModuleName λ) =>
(forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ModuleName λ -> c (ModuleName λ))
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (ModuleName λ))
-> (ModuleName λ -> Constr)
-> (ModuleName λ -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (ModuleName λ)))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (ModuleName λ)))
-> ((forall b. Data b => b -> b) -> ModuleName λ -> ModuleName λ)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ModuleName λ -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ModuleName λ -> r)
-> (forall u. (forall d. Data d => d -> u) -> ModuleName λ -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> ModuleName λ -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> ModuleName λ -> m (ModuleName λ))
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> ModuleName λ -> m (ModuleName λ))
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> ModuleName λ -> m (ModuleName λ))
-> Data (ModuleName λ)
ModuleName λ -> Constr
ModuleName λ -> DataType
(forall b. Data b => b -> b) -> ModuleName λ -> ModuleName λ
forall λ. Data λ => Typeable (ModuleName λ)
forall λ. Data λ => ModuleName λ -> Constr
forall λ. Data λ => ModuleName λ -> DataType
forall λ.
Data λ =>
(forall b. Data b => b -> b) -> ModuleName λ -> ModuleName λ
forall λ u.
Data λ =>
Int -> (forall d. Data d => d -> u) -> ModuleName λ -> u
forall λ u.
Data λ =>
(forall d. Data d => d -> u) -> ModuleName λ -> [u]
forall λ r r'.
Data λ =>
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ModuleName λ -> r
forall λ r r'.
Data λ =>
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ModuleName λ -> r
forall λ (m :: * -> *).
(Data λ, Monad m) =>
(forall d. Data d => d -> m d) -> ModuleName λ -> m (ModuleName λ)
forall λ (m :: * -> *).
(Data λ, MonadPlus m) =>
(forall d. Data d => d -> m d) -> ModuleName λ -> m (ModuleName λ)
forall λ (c :: * -> *).
Data λ =>
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (ModuleName λ)
forall λ (c :: * -> *).
Data λ =>
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ModuleName λ -> c (ModuleName λ)
forall λ (t :: * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d. Data d => c (t d)) -> Maybe (c (ModuleName λ))
forall λ (t :: * -> * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (ModuleName λ))
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) -> ModuleName λ -> u
forall u. (forall d. Data d => d -> u) -> ModuleName λ -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ModuleName λ -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ModuleName λ -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> ModuleName λ -> m (ModuleName λ)
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> ModuleName λ -> m (ModuleName λ)
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (ModuleName λ)
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ModuleName λ -> c (ModuleName λ)
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (ModuleName λ))
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (ModuleName λ))
$cgfoldl :: forall λ (c :: * -> *).
Data λ =>
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ModuleName λ -> c (ModuleName λ)
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> ModuleName λ -> c (ModuleName λ)
$cgunfold :: forall λ (c :: * -> *).
Data λ =>
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (ModuleName λ)
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c (ModuleName λ)
$ctoConstr :: forall λ. Data λ => ModuleName λ -> Constr
toConstr :: ModuleName λ -> Constr
$cdataTypeOf :: forall λ. Data λ => ModuleName λ -> DataType
dataTypeOf :: ModuleName λ -> DataType
$cdataCast1 :: forall λ (t :: * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d. Data d => c (t d)) -> Maybe (c (ModuleName λ))
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c (ModuleName λ))
$cdataCast2 :: forall λ (t :: * -> * -> *) (c :: * -> *).
(Data λ, Typeable t) =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (ModuleName λ))
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c (ModuleName λ))
$cgmapT :: forall λ.
Data λ =>
(forall b. Data b => b -> b) -> ModuleName λ -> ModuleName λ
gmapT :: (forall b. Data b => b -> b) -> ModuleName λ -> ModuleName λ
$cgmapQl :: forall λ r r'.
Data λ =>
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ModuleName λ -> r
gmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> ModuleName λ -> r
$cgmapQr :: forall λ r r'.
Data λ =>
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ModuleName λ -> r
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> ModuleName λ -> r
$cgmapQ :: forall λ u.
Data λ =>
(forall d. Data d => d -> u) -> ModuleName λ -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> ModuleName λ -> [u]
$cgmapQi :: forall λ u.
Data λ =>
Int -> (forall d. Data d => d -> u) -> ModuleName λ -> u
gmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> ModuleName λ -> u
$cgmapM :: forall λ (m :: * -> *).
(Data λ, Monad m) =>
(forall d. Data d => d -> m d) -> ModuleName λ -> m (ModuleName λ)
gmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> ModuleName λ -> m (ModuleName λ)
$cgmapMp :: forall λ (m :: * -> *).
(Data λ, MonadPlus m) =>
(forall d. Data d => d -> m d) -> ModuleName λ -> m (ModuleName λ)
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> ModuleName λ -> m (ModuleName λ)
$cgmapMo :: forall λ (m :: * -> *).
(Data λ, MonadPlus m) =>
(forall d. Data d => d -> m d) -> ModuleName λ -> m (ModuleName λ)
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> ModuleName λ -> m (ModuleName λ)
Data, ModuleName λ -> ModuleName λ -> Bool
(ModuleName λ -> ModuleName λ -> Bool)
-> (ModuleName λ -> ModuleName λ -> Bool) -> Eq (ModuleName λ)
forall λ. ModuleName λ -> ModuleName λ -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall λ. ModuleName λ -> ModuleName λ -> Bool
== :: ModuleName λ -> ModuleName λ -> Bool
$c/= :: forall λ. ModuleName λ -> ModuleName λ -> Bool
/= :: ModuleName λ -> ModuleName λ -> Bool
Eq, Eq (ModuleName λ)
Eq (ModuleName λ) =>
(ModuleName λ -> ModuleName λ -> Ordering)
-> (ModuleName λ -> ModuleName λ -> Bool)
-> (ModuleName λ -> ModuleName λ -> Bool)
-> (ModuleName λ -> ModuleName λ -> Bool)
-> (ModuleName λ -> ModuleName λ -> Bool)
-> (ModuleName λ -> ModuleName λ -> ModuleName λ)
-> (ModuleName λ -> ModuleName λ -> ModuleName λ)
-> Ord (ModuleName λ)
ModuleName λ -> ModuleName λ -> Bool
ModuleName λ -> ModuleName λ -> Ordering
ModuleName λ -> ModuleName λ -> ModuleName λ
forall λ. Eq (ModuleName λ)
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
forall λ. ModuleName λ -> ModuleName λ -> Bool
forall λ. ModuleName λ -> ModuleName λ -> Ordering
forall λ. ModuleName λ -> ModuleName λ -> ModuleName λ
$ccompare :: forall λ. ModuleName λ -> ModuleName λ -> Ordering
compare :: ModuleName λ -> ModuleName λ -> Ordering
$c< :: forall λ. ModuleName λ -> ModuleName λ -> Bool
< :: ModuleName λ -> ModuleName λ -> Bool
$c<= :: forall λ. ModuleName λ -> ModuleName λ -> Bool
<= :: ModuleName λ -> ModuleName λ -> Bool
$c> :: forall λ. ModuleName λ -> ModuleName λ -> Bool
> :: ModuleName λ -> ModuleName λ -> Bool
$c>= :: forall λ. ModuleName λ -> ModuleName λ -> Bool
>= :: ModuleName λ -> ModuleName λ -> Bool
$cmax :: forall λ. ModuleName λ -> ModuleName λ -> ModuleName λ
max :: ModuleName λ -> ModuleName λ -> ModuleName λ
$cmin :: forall λ. ModuleName λ -> ModuleName λ -> ModuleName λ
min :: ModuleName λ -> ModuleName λ -> ModuleName λ
Ord, Int -> ModuleName λ -> ShowS
[ModuleName λ] -> ShowS
ModuleName λ -> String
(Int -> ModuleName λ -> ShowS)
-> (ModuleName λ -> String)
-> ([ModuleName λ] -> ShowS)
-> Show (ModuleName λ)
forall λ. Int -> ModuleName λ -> ShowS
forall λ. [ModuleName λ] -> ShowS
forall λ. ModuleName λ -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall λ. Int -> ModuleName λ -> ShowS
showsPrec :: Int -> ModuleName λ -> ShowS
$cshow :: forall λ. ModuleName λ -> String
show :: ModuleName λ -> String
$cshowList :: forall λ. [ModuleName λ] -> ShowS
showList :: [ModuleName λ] -> ShowS
Show)
$