1
1
mirror of https://github.com/github/semantic.git synced 2024-11-24 00:42:33 +03:00

Merge remote-tracking branch 'origin/master' into import-graph-mk2

This commit is contained in:
Patrick Thomson 2018-06-11 17:19:48 -04:00
commit 511d412e10
85 changed files with 3855 additions and 2094 deletions

View File

@ -21,7 +21,6 @@ import Data.JSON.Fields
import Data.Language import Data.Language
import Data.Source as Source import Data.Source as Source
-- | The source, path, and language of a blob. -- | The source, path, and language of a blob.
data Blob = Blob data Blob = Blob
{ blobSource :: Source -- ^ The UTF-8 encoded source text of the blob. { blobSource :: Source -- ^ The UTF-8 encoded source text of the blob.
@ -30,16 +29,36 @@ data Blob = Blob
} }
deriving (Show, Eq, Generic, Message, Named) deriving (Show, Eq, Generic, Message, Named)
instance FromJSON Blob where
parseJSON = withObject "Blob" $ \b -> inferringLanguage
<$> b .: "content"
<*> b .: "path"
<*> b .: "language"
nullBlob :: Blob -> Bool nullBlob :: Blob -> Bool
nullBlob Blob{..} = nullSource blobSource nullBlob Blob{..} = nullSource blobSource
sourceBlob :: FilePath -> Language -> Source -> Blob sourceBlob :: FilePath -> Language -> Source -> Blob
sourceBlob filepath language source = Blob source filepath language sourceBlob filepath language source = Blob source filepath language
inferringLanguage :: Source -> FilePath -> Language -> Blob
inferringLanguage src pth lang
| knownLanguage lang = Blob src pth lang
| otherwise = Blob src pth (languageForFilePath pth)
-- | Represents a blobs suitable for diffing which can be either a blob to -- | Represents a blobs suitable for diffing which can be either a blob to
-- delete, a blob to insert, or a pair of blobs to diff. -- delete, a blob to insert, or a pair of blobs to diff.
type BlobPair = Join These Blob type BlobPair = Join These Blob
instance FromJSON BlobPair where
parseJSON = withObject "BlobPair" $ \o -> do
before <- o .:? "before"
after <- o .:? "after"
case (before, after) of
(Just b, Just a) -> pure $ Join (These b a)
(Just b, Nothing) -> pure $ Join (This b)
(Nothing, Just a) -> pure $ Join (That a)
_ -> Prelude.fail "Expected object with 'before' and/or 'after' keys only"
blobPairDiffing :: Blob -> Blob -> BlobPair blobPairDiffing :: Blob -> Blob -> BlobPair
blobPairDiffing a b = Join (These a b) blobPairDiffing a b = Join (These a b)

View File

@ -1,9 +1,11 @@
{-# LANGUAGE DeriveAnyClass, DeriveGeneric, LambdaCase #-} {-# LANGUAGE DeriveAnyClass, DeriveGeneric, LambdaCase #-}
module Data.Language where module Data.Language where
import Data.Aeson import Data.Aeson
import Prologue import qualified Data.Text as T
import Proto3.Suite import Prologue
import Proto3.Suite
import System.FilePath.Posix
-- | The various languages we support. -- | The various languages we support.
-- Please do not reorder any of the field names: the current implementation of 'Primitive' -- Please do not reorder any of the field names: the current implementation of 'Primitive'
@ -23,6 +25,21 @@ data Language
| PHP | PHP
deriving (Eq, Generic, Ord, Read, Show, Bounded, Hashable, ToJSON, Named, Enum, Finite, MessageField) deriving (Eq, Generic, Ord, Read, Show, Bounded, Hashable, ToJSON, Named, Enum, Finite, MessageField)
instance FromJSON Language where
parseJSON = withText "Language" $ \l -> pure $ case T.toLower l of
"go" -> Go
"haskell" -> Haskell
"java" -> Java
"javascript" -> JavaScript
"json" -> JSON
"jsx" -> JSX
"markdown" -> Markdown
"python" -> Python
"ruby" -> Ruby
"typescript" -> TypeScript
"php" -> PHP
_ -> Unknown
-- | Predicate failing on 'Unknown' and passing in all other cases. -- | Predicate failing on 'Unknown' and passing in all other cases.
knownLanguage :: Language -> Bool knownLanguage :: Language -> Bool
knownLanguage = (/= Unknown) knownLanguage = (/= Unknown)
@ -72,3 +89,7 @@ extensionsForLanguage language = case language of
Ruby -> [".rb"] Ruby -> [".rb"]
TypeScript -> [".ts", ".tsx", ".d.tsx"] TypeScript -> [".ts", ".tsx", ".d.tsx"]
_ -> [] _ -> []
-- | Return a language based on a FilePath's extension, or Nothing if extension is not found or not supported.
languageForFilePath :: FilePath -> Language
languageForFilePath = languageForType . takeExtension

View File

@ -28,6 +28,7 @@ module Data.Source
import Prologue import Prologue
import Data.Array import Data.Array
import Data.Aeson (FromJSON (..), withText)
import qualified Data.ByteString as B import qualified Data.ByteString as B
import Data.Char (ord) import Data.Char (ord)
import Data.List (span) import Data.List (span)
@ -47,6 +48,8 @@ newtype Source = Source { sourceBytes :: B.ByteString }
fromUTF8 :: B.ByteString -> Source fromUTF8 :: B.ByteString -> Source
fromUTF8 = Source fromUTF8 = Source
instance FromJSON Source where
parseJSON = withText "Source" (pure . fromText)
-- Measurement -- Measurement

View File

@ -194,7 +194,7 @@ instance Evaluatable Data.Syntax.Declaration.Datatype
-- | A single constructor in a datatype, or equally a 'struct' in C, Rust, or Swift. -- | A single constructor in a datatype, or equally a 'struct' in C, Rust, or Swift.
data Constructor a = Constructor { constructorContext :: a, constructorName :: a, constructorFields :: a } data Constructor a = Constructor { constructorContext :: [a], constructorName :: a, constructorFields :: a }
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable) deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 Data.Syntax.Declaration.Constructor where liftEq = genericLiftEq instance Eq1 Data.Syntax.Declaration.Constructor where liftEq = genericLiftEq

View File

@ -316,7 +316,7 @@ sliceType :: Assignment
sliceType = makeTerm <$> symbol SliceType <*> children (Type.Slice <$> expression) sliceType = makeTerm <$> symbol SliceType <*> children (Type.Slice <$> expression)
structType :: Assignment structType :: Assignment
structType = makeTerm <$> symbol StructType <*> children (Declaration.Constructor <$> emptyTerm <*> emptyTerm <*> expressions) structType = makeTerm <$> symbol StructType <*> children (Declaration.Constructor <$> pure [] <*> emptyTerm <*> expressions)
typeAlias :: Assignment typeAlias :: Assignment
typeAlias = makeTerm <$> symbol TypeAlias <*> children (Declaration.TypeAlias [] <$> expression <*> expression) typeAlias = makeTerm <$> symbol TypeAlias <*> children (Declaration.TypeAlias [] <$> expression <*> expression)

View File

@ -34,15 +34,19 @@ type Syntax = '[
, Literal.Float , Literal.Float
, Literal.Integer , Literal.Integer
, Literal.TextElement , Literal.TextElement
, Literal.Tuple
, Syntax.AllConstructors , Syntax.AllConstructors
, Syntax.AnnotatedTypeVariable , Syntax.AnnotatedTypeVariable
, Syntax.Class , Syntax.Class
, Syntax.ConstructorOperator , Syntax.ConstructorSymbol
, Syntax.Context , Syntax.Context
, Syntax.Context' , Syntax.Context'
, Syntax.DefaultDeclaration
, Syntax.Deriving , Syntax.Deriving
, Syntax.Empty , Syntax.Empty
, Syntax.EntityIdentifier
, Syntax.Error , Syntax.Error
, Syntax.EqualityConstraint
, Syntax.Export , Syntax.Export
, Syntax.Field , Syntax.Field
, Syntax.FunctionConstructor , Syntax.FunctionConstructor
@ -58,6 +62,8 @@ type Syntax = '[
, Syntax.ListConstructor , Syntax.ListConstructor
, Syntax.Module , Syntax.Module
, Syntax.ModuleExport , Syntax.ModuleExport
, Syntax.NewType
, Syntax.Operator
, Syntax.Pragma , Syntax.Pragma
, Syntax.QualifiedModuleIdentifier , Syntax.QualifiedModuleIdentifier
, Syntax.QualifiedTypeConstructorIdentifier , Syntax.QualifiedTypeConstructorIdentifier
@ -74,7 +80,7 @@ type Syntax = '[
, Syntax.TypeSignature , Syntax.TypeSignature
, Syntax.TypeSynonym , Syntax.TypeSynonym
, Syntax.UnitConstructor , Syntax.UnitConstructor
, Syntax.VariableOperator , Syntax.VariableSymbol
, Type.TypeParameters , Type.TypeParameters
, [] , []
] ]
@ -112,27 +118,36 @@ comment :: Assignment
comment = makeTerm <$> symbol Comment <*> (Comment.Comment <$> source) comment = makeTerm <$> symbol Comment <*> (Comment.Comment <$> source)
constructor :: Assignment constructor :: Assignment
constructor = (makeTerm <$> symbol DataConstructor <*> children (Declaration.Constructor <$> (context' <|> emptyTerm) <*> typeConstructor <*> typeParameters)) constructor = (makeTerm <$> symbol DataConstructor <*> children (Declaration.Constructor <$> manyTerm (context' <|> scopedTypeVariables) <*> typeConstructor <*> typeParameters))
<|> (makeTerm <$> symbol RecordDataConstructor <*> children (Syntax.RecordDataConstructor <$> constructorIdentifier <*> fields)) <|> (makeTerm <$> symbol RecordDataConstructor <*> children (Syntax.RecordDataConstructor <$> constructorIdentifier <*> fields))
constructorIdentifier :: Assignment constructorIdentifier :: Assignment
constructorIdentifier = makeTerm <$> symbol ConstructorIdentifier <*> (Syntax.Identifier . Name.name <$> source) constructorIdentifier = makeTerm <$> symbol ConstructorIdentifier <*> (Syntax.ConstructorIdentifier . Name.name <$> source)
constructorOperator :: Assignment constructorOperator :: Assignment
constructorOperator = makeTerm <$> symbol ConstructorOperator <*> children (Syntax.ConstructorOperator <$> expression) constructorOperator = makeTerm <$> symbol ConstructorOperator <*> children (Syntax.ConstructorOperator <$> expression)
constructorSymbol :: Assignment constructorSymbol :: Assignment
constructorSymbol = makeTerm <$> symbol ConstructorSymbol <*> (Syntax.Identifier . Name.name <$> source) constructorSymbol = makeTerm <$> symbol ConstructorSymbol <*> (Syntax.ConstructorSymbol . Name.name <$> source)
context' :: Assignment context' :: Assignment
context' = makeTerm <$> symbol Context <*> children (Syntax.Context' <$> manyTerm (type' <|> contextPattern)) context' = makeTerm <$> symbol Context <*> children (Syntax.Context' <$> manyTerm expression)
contextPattern :: Assignment contextPattern :: Assignment
contextPattern = symbol ContextPattern *> children type' contextPattern = makeTerm <$> symbol ContextPattern <*> children (manyTerm expression)
defaultDeclaration :: Assignment
defaultDeclaration = makeTerm <$> symbol DefaultDeclaration <*> children (Syntax.DefaultDeclaration <$> manyTerm expression)
derivingClause :: Assignment derivingClause :: Assignment
derivingClause = makeTerm <$> symbol Deriving <*> children (Syntax.Deriving <$> manyTerm typeConstructor) derivingClause = makeTerm <$> symbol Deriving <*> children (Syntax.Deriving <$> manyTerm typeConstructor)
equalityConstraint :: Assignment
equalityConstraint = makeTerm <$> symbol EqualityConstraint <*> children (Syntax.EqualityConstraint <$> equalityLhs <*> equalityRhs)
where
equalityLhs = symbol EqualityLhs *> children expression
equalityRhs = symbol EqualityRhs *> children expression
export :: Assignment export :: Assignment
export = makeTerm <$> symbol Export <*> children (Syntax.Export <$> expressions) export = makeTerm <$> symbol Export <*> children (Syntax.Export <$> expressions)
@ -150,10 +165,13 @@ expressionChoices = [
, character , character
, comment , comment
, context' , context'
, contextPattern
, constructorIdentifier , constructorIdentifier
, constructorOperator , constructorOperator
, constructorSymbol , constructorSymbol
, defaultDeclaration
, derivingClause , derivingClause
, equalityConstraint
, float , float
, functionConstructor , functionConstructor
, functionDeclaration , functionDeclaration
@ -169,9 +187,11 @@ expressionChoices = [
, listType , listType
, moduleExport , moduleExport
, moduleIdentifier , moduleIdentifier
, newType
, operator , operator
, parenthesizedTypePattern , parenthesizedTypePattern
, pragma , pragma
, primitiveConstructorIdentifier
, qualifiedModuleIdentifier , qualifiedModuleIdentifier
, qualifiedTypeConstructorIdentifier , qualifiedTypeConstructorIdentifier
, quotedName , quotedName
@ -179,6 +199,7 @@ expressionChoices = [
, star , star
, strictType , strictType
, string , string
, tupleType
, type' , type'
, type'' , type''
, typePattern , typePattern
@ -295,7 +316,15 @@ moduleExport :: Assignment
moduleExport = makeTerm <$> symbol ModuleExport <*> children (Syntax.ModuleExport <$> expressions) moduleExport = makeTerm <$> symbol ModuleExport <*> children (Syntax.ModuleExport <$> expressions)
moduleIdentifier :: Assignment moduleIdentifier :: Assignment
moduleIdentifier = makeTerm <$> symbol ModuleIdentifier <*> (Syntax.Identifier . Name.name <$> source) moduleIdentifier = makeTerm <$> symbol ModuleIdentifier <*> (Syntax.ModuleIdentifier . Name.name <$> source)
newConstructor :: Assignment
newConstructor = makeTerm <$> symbol NewConstructor <*> children (Declaration.Constructor <$> manyTerm (context' <|> scopedTypeVariables) <*> typeConstructor <*> typeParameters)
newType :: Assignment
newType = makeTerm <$> symbol NewtypeDeclaration <*> children (Syntax.NewType <$> manyTerm (context' <|> scopedTypeVariables) <*> typeLeft <*> newConstructor <*> (derivingClause <|> emptyTerm))
where
typeLeft = makeTerm <$> location <*> manyTermsTill expression (symbol NewConstructor)
operator :: Assignment operator :: Assignment
operator = typeOperator <|> constructorOperator <|> variableOperator operator = typeOperator <|> constructorOperator <|> variableOperator
@ -306,6 +335,9 @@ parenthesizedTypePattern = symbol ParenthesizedTypePattern *> children expressio
pragma :: Assignment pragma :: Assignment
pragma = makeTerm <$> symbol Pragma <*> (Syntax.Pragma <$> source) pragma = makeTerm <$> symbol Pragma <*> (Syntax.Pragma <$> source)
primitiveConstructorIdentifier :: Assignment
primitiveConstructorIdentifier = makeTerm <$> symbol PrimitiveConstructorIdentifier <*> (Syntax.PrimitiveConstructorIdentifier . Name.name <$> source)
qualifiedModuleIdentifier :: Assignment qualifiedModuleIdentifier :: Assignment
qualifiedModuleIdentifier = makeTerm <$> symbol QualifiedModuleIdentifier <*> children (Syntax.QualifiedModuleIdentifier <$> someTerm' expression) qualifiedModuleIdentifier = makeTerm <$> symbol QualifiedModuleIdentifier <*> children (Syntax.QualifiedModuleIdentifier <$> someTerm' expression)
@ -325,28 +357,31 @@ strictType :: Assignment
strictType = makeTerm' strictType = makeTerm'
<$> symbol StrictType <$> symbol StrictType
<*> children ( (inject <$> (Syntax.StrictType <$> typeConstructor <*> typeParameters)) <*> children ( (inject <$> (Syntax.StrictType <$> typeConstructor <*> typeParameters))
<|> (inject <$> (Syntax.StrictTypeVariable <$> typeVariableIdentifier))) <|> (inject <$> (Syntax.StrictTypeVariable <$> expression)))
string :: Assignment string :: Assignment
string = makeTerm <$> symbol String <*> (Literal.TextElement <$> source) string = makeTerm <$> symbol String <*> (Literal.TextElement <$> source)
tupleType :: Assignment
tupleType = makeTerm <$> symbol TupleType <*> children (Literal.Tuple <$> manyTerm type')
typeClassIdentifier :: Assignment typeClassIdentifier :: Assignment
typeClassIdentifier = makeTerm <$> symbol TypeClassIdentifier <*> (Syntax.Identifier . Name.name <$> source) typeClassIdentifier = makeTerm <$> symbol TypeClassIdentifier <*> (Syntax.TypeClassIdentifier . Name.name <$> source)
typeConstructorExport :: Assignment typeConstructorExport :: Assignment
typeConstructorExport = makeTerm <$> symbol TypeConstructorExport <*> children (Syntax.TypeConstructorExport <$> expression) typeConstructorExport = makeTerm <$> symbol TypeConstructorExport <*> children (Syntax.TypeConstructorExport <$> expression)
typeConstructorIdentifier :: Assignment typeConstructorIdentifier :: Assignment
typeConstructorIdentifier = makeTerm <$> symbol TypeConstructorIdentifier <*> (Syntax.Identifier . Name.name <$> source) typeConstructorIdentifier = makeTerm <$> symbol TypeConstructorIdentifier <*> (Syntax.TypeConstructorIdentifier . Name.name <$> source)
typeOperator :: Assignment typeOperator :: Assignment
typeOperator = makeTerm <$> symbol TypeOperator <*> (Syntax.Identifier . Name.name <$> source) typeOperator = makeTerm <$> symbol TypeOperator <*> (Syntax.TypeOperator . Name.name <$> source)
typeSignature :: Assignment typeSignature :: Assignment
typeSignature = makeTerm <$> symbol TypeSignature <*> children (Syntax.TypeSignature <$> variableIdentifier <* token Annotation <*> (manyTerm context' <|> pure []) <*> type') typeSignature = makeTerm <$> symbol TypeSignature <*> children (Syntax.TypeSignature <$> variableIdentifier <* token Annotation <*> manyTerm (context' <|> scopedTypeVariables) <*> expression)
typeVariableIdentifier :: Assignment typeVariableIdentifier :: Assignment
typeVariableIdentifier = makeTerm <$> symbol TypeVariableIdentifier <*> (Syntax.Identifier . Name.name <$> source) typeVariableIdentifier = makeTerm <$> symbol TypeVariableIdentifier <*> (Syntax.TypeVariableIdentifier . Name.name <$> source)
tuplingConstructor :: Assignment tuplingConstructor :: Assignment
tuplingConstructor = makeTerm <$> symbol TuplingConstructor <*> (tupleWithArity <$> rawSource) tuplingConstructor = makeTerm <$> symbol TuplingConstructor <*> (tupleWithArity <$> rawSource)
@ -369,7 +404,7 @@ type'' = makeTerm
<*> children (Syntax.Type <$> expression <*> typeParameters <*> (kindSignature <|> emptyTerm)) <*> children (Syntax.Type <$> expression <*> typeParameters <*> (kindSignature <|> emptyTerm))
typeParameters :: Assignment typeParameters :: Assignment
typeParameters = makeTerm <$> location <*> (Type.TypeParameters <$> (manyTermsTill expression (symbol Annotation) <|> many expression)) typeParameters = makeTerm <$> location <*> (Type.TypeParameters <$> (manyTermsTill expression (symbol Annotation) <|> manyTerm expression))
typePattern :: Assignment typePattern :: Assignment
typePattern = makeTerm <$> symbol TypePattern <*> children (Syntax.TypePattern <$> expressions) typePattern = makeTerm <$> symbol TypePattern <*> children (Syntax.TypePattern <$> expressions)
@ -382,9 +417,10 @@ typeConstructor = constructorIdentifier
<|> qualifiedModuleIdentifier <|> qualifiedModuleIdentifier
<|> qualifiedTypeConstructorIdentifier <|> qualifiedTypeConstructorIdentifier
<|> quotedName <|> quotedName
<|> tupleType
<|> tuplingConstructor
<|> typeClassIdentifier <|> typeClassIdentifier
<|> typeConstructorIdentifier <|> typeConstructorIdentifier
<|> tuplingConstructor
<|> unitConstructor <|> unitConstructor
typeSynonymDeclaration :: Assignment typeSynonymDeclaration :: Assignment
@ -400,13 +436,13 @@ unitConstructor :: Assignment
unitConstructor = makeTerm <$> token UnitConstructor <*> pure Syntax.UnitConstructor unitConstructor = makeTerm <$> token UnitConstructor <*> pure Syntax.UnitConstructor
variableIdentifier :: Assignment variableIdentifier :: Assignment
variableIdentifier = makeTerm <$> symbol VariableIdentifier <*> (Syntax.Identifier . Name.name <$> source) variableIdentifier = makeTerm <$> symbol VariableIdentifier <*> (Syntax.VariableIdentifier . Name.name <$> source)
variableOperator :: Assignment variableOperator :: Assignment
variableOperator = makeTerm <$> symbol VariableOperator <*> children (Syntax.VariableOperator <$> expression) variableOperator = makeTerm <$> symbol VariableOperator <*> children (Syntax.VariableOperator <$> expression)
variableSymbol :: Assignment variableSymbol :: Assignment
variableSymbol = makeTerm <$> (symbol VariableSymbol <|> symbol VariableSymbol') <*> (Syntax.Identifier . Name.name <$> source) variableSymbol = makeTerm <$> (symbol VariableSymbol <|> symbol VariableSymbol') <*> (Syntax.VariableSymbol . Name.name <$> source)
variableIdentifiers :: Assignment variableIdentifiers :: Assignment
variableIdentifiers = makeTerm <$> location <*> many variableIdentifier variableIdentifiers = makeTerm <$> location <*> many variableIdentifier

View File

@ -281,15 +281,6 @@ instance Show1 TypeConstructorExport where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable TypeConstructorExport instance Evaluatable TypeConstructorExport
newtype VariableOperator a = VariableOperator { variableOperatorContent :: a }
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 VariableOperator where liftEq = genericLiftEq
instance Ord1 VariableOperator where liftCompare = genericLiftCompare
instance Show1 VariableOperator where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable VariableOperator
data AllConstructors a = AllConstructors data AllConstructors a = AllConstructors
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable) deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
@ -299,15 +290,6 @@ instance Show1 AllConstructors where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable AllConstructors instance Evaluatable AllConstructors
newtype ConstructorOperator a = ConstructorOperator { constructorOperatorContent :: a }
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 ConstructorOperator where liftEq = genericLiftEq
instance Ord1 ConstructorOperator where liftCompare = genericLiftCompare
instance Show1 ConstructorOperator where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable ConstructorOperator
data InfixOperatorPattern a = InfixOperatorPattern { infixOperatorPatternLeft :: a, infixOperatorPatternOperator :: a, infixOperatorPatternRight :: a } data InfixOperatorPattern a = InfixOperatorPattern { infixOperatorPatternLeft :: a, infixOperatorPatternOperator :: a, infixOperatorPatternRight :: a }
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable) deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
@ -343,3 +325,74 @@ instance Ord1 ScopedTypeVariables where liftCompare = genericLiftCompare
instance Show1 ScopedTypeVariables where liftShowsPrec = genericLiftShowsPrec instance Show1 ScopedTypeVariables where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable ScopedTypeVariables instance Evaluatable ScopedTypeVariables
data NewType a = NewType { newTypeContext :: [a], newTypeLeft :: a, newTypeRight :: a, newTypeDeriving :: a }
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 NewType where liftEq = genericLiftEq
instance Ord1 NewType where liftCompare = genericLiftCompare
instance Show1 NewType where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable NewType
newtype DefaultDeclaration a = DefaultDeclaration { defaultDeclarationContent :: [a] }
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 DefaultDeclaration where liftEq = genericLiftEq
instance Ord1 DefaultDeclaration where liftCompare = genericLiftCompare
instance Show1 DefaultDeclaration where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable DefaultDeclaration
data EqualityConstraint a = EqualityConstraint { equalityConstraintLeft :: a, equalityConstraintRight :: a }
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 EqualityConstraint where liftEq = genericLiftEq
instance Ord1 EqualityConstraint where liftCompare = genericLiftCompare
instance Show1 EqualityConstraint where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable EqualityConstraint
data EntityIdentifier a = TypeVariableIdentifier Name
| TypeConstructorIdentifier Name
| ModuleIdentifier Name
| ConstructorIdentifier Name
| TypeClassIdentifier Name
| VariableIdentifier Name
| PrimitiveConstructorIdentifier Name
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 EntityIdentifier where liftEq = genericLiftEq
instance Ord1 EntityIdentifier where liftCompare = genericLiftCompare
instance Show1 EntityIdentifier where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable EntityIdentifier
data Operator a = VariableOperator a
| ConstructorOperator a
| TypeOperator Name
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 Operator where liftEq = genericLiftEq
instance Ord1 Operator where liftCompare = genericLiftCompare
instance Show1 Operator where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable Operator
newtype ConstructorSymbol a = ConstructorSymbol { constructorSymbolName :: Name }
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 ConstructorSymbol where liftEq = genericLiftEq
instance Ord1 ConstructorSymbol where liftCompare = genericLiftCompare
instance Show1 ConstructorSymbol where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable ConstructorSymbol
newtype VariableSymbol a = VariableSymbol { variableSymbolName :: Name }
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 VariableSymbol where liftEq = genericLiftEq
instance Ord1 VariableSymbol where liftCompare = genericLiftCompare
instance Show1 VariableSymbol where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable VariableSymbol

View File

@ -42,7 +42,7 @@ import Control.Monad.Effect.State
import Control.Monad.Effect.Exception import Control.Monad.Effect.Exception
import Control.Monad.IO.Class import Control.Monad.IO.Class
import Data.Aeson import Data.Aeson
import qualified Data.Blob as Blob import Data.Blob
import Data.Bool import Data.Bool
import qualified Data.Project as Project import qualified Data.Project as Project
import Data.Project (File (..), ProjectException (..)) import Data.Project (File (..), ProjectException (..))
@ -50,7 +50,7 @@ import qualified Data.ByteString as B
import qualified Data.ByteString.Builder as B import qualified Data.ByteString.Builder as B
import qualified Data.ByteString.Lazy as BL import qualified Data.ByteString.Lazy as BL
import Data.Language import Data.Language
import Data.Source (fromUTF8, fromText) import Data.Source (fromUTF8)
import Prelude hiding (readFile) import Prelude hiding (readFile)
import Prologue hiding (MonadError (..), fail) import Prologue hiding (MonadError (..), fail)
import System.Directory (doesDirectoryExist) import System.Directory (doesDirectoryExist)
@ -60,16 +60,15 @@ import System.Exit
import System.FilePath import System.FilePath
import System.FilePath.Glob import System.FilePath.Glob
import qualified System.IO as IO import qualified System.IO as IO
import Text.Read hiding (get)
-- | Read a utf8-encoded file to a 'Blob'. -- | Read a utf8-encoded file to a 'Blob'.
readFile :: forall m. MonadIO m => File -> m (Maybe Blob.Blob) readFile :: forall m. MonadIO m => File -> m (Maybe Blob)
readFile (File "/dev/null" _) = pure Nothing readFile (File "/dev/null" _) = pure Nothing
readFile (File path language) = do readFile (File path language) = do
raw <- liftIO (Just <$> B.readFile path) raw <- liftIO $ B.readFile path
pure $ Blob.sourceBlob path language . fromUTF8 <$> raw pure . Just . sourceBlob path language . fromUTF8 $ raw
readFilePair :: forall m. MonadIO m => File -> File -> m Blob.BlobPair readFilePair :: forall m. MonadIO m => File -> File -> m BlobPair
readFilePair a b = Join <$> join (maybeThese <$> readFile a <*> readFile b) readFilePair a b = Join <$> join (maybeThese <$> readFile a <*> readFile b)
maybeThese :: Monad m => Maybe a -> Maybe b -> m (These a b) maybeThese :: Monad m => Maybe a -> Maybe b -> m (These a b)
@ -79,35 +78,27 @@ maybeThese a b = case (a, b) of
(Just a, Just b) -> pure (These a b) (Just a, Just b) -> pure (These a b)
_ -> fail "expected file pair with content on at least one side" _ -> fail "expected file pair with content on at least one side"
newtype Blobs a = Blobs { blobs :: [a] }
deriving (Generic, FromJSON)
isDirectory :: MonadIO m => FilePath -> m Bool isDirectory :: MonadIO m => FilePath -> m Bool
isDirectory path = liftIO (doesDirectoryExist path) isDirectory path = liftIO (doesDirectoryExist path)
-- | Return a language based on a FilePath's extension, or Nothing if extension is not found or not supported. decodeBlobPairs :: BL.ByteString -> Either String [BlobPair]
languageForFilePath :: FilePath -> Language decodeBlobPairs = fmap blobs <$> eitherDecode
languageForFilePath = languageForType . takeExtension
decodeBlobPairs :: BL.ByteString -> Either String [Blob.BlobPair]
decodeBlobPairs = fmap toBlobPairs . eitherDecode
-- | Read JSON encoded blob pairs from a handle. -- | Read JSON encoded blob pairs from a handle.
readBlobPairsFromHandle :: MonadIO m => Handle 'IO.ReadMode -> m [Blob.BlobPair] readBlobPairsFromHandle :: MonadIO m => Handle 'IO.ReadMode -> m [BlobPair]
readBlobPairsFromHandle = fmap toBlobPairs . readFromHandle readBlobPairsFromHandle = fmap blobs <$> readFromHandle
toBlobPairs :: BlobDiff -> [Blob.BlobPair] decodeBlobs :: BL.ByteString -> Either String [Blob]
toBlobPairs BlobDiff{..} = toBlobPair <$> blobs decodeBlobs = fmap blobs <$> eitherDecode
where toBlobPair blobs = toBlob <$> blobs
decodeBlobs :: BL.ByteString -> Either String [Blob.Blob]
decodeBlobs = fmap toBlobs . eitherDecode
-- | Read JSON encoded blobs from a handle. -- | Read JSON encoded blobs from a handle.
readBlobsFromHandle :: MonadIO m => Handle 'IO.ReadMode -> m [Blob.Blob] readBlobsFromHandle :: MonadIO m => Handle 'IO.ReadMode -> m [Blob]
readBlobsFromHandle = fmap toBlobs . readFromHandle readBlobsFromHandle = fmap blobs <$> readFromHandle
toBlobs :: BlobParse -> [Blob.Blob] readBlobFromPath :: MonadIO m => File -> m Blob
toBlobs BlobParse{..} = fmap toBlob blobs
readBlobFromPath :: MonadIO m => File -> m Blob.Blob
readBlobFromPath file = do readBlobFromPath file = do
maybeFile <- readFile file maybeFile <- readFile file
maybeM (fail ("cannot read '" <> show file <> "', file not found or language not supported.")) maybeFile maybeM (fail ("cannot read '" <> show file <> "', file not found or language not supported.")) maybeFile
@ -154,7 +145,7 @@ findFilesInDir path exts excludeDirs = do
| otherwise = True | otherwise = True
notIn _ _ = True notIn _ _ = True
readBlobsFromDir :: MonadIO m => FilePath -> m [Blob.Blob] readBlobsFromDir :: MonadIO m => FilePath -> m [Blob]
readBlobsFromDir path = do readBlobsFromDir path = do
paths <- liftIO (globDir1 (compile "[^vendor]**/*[.rb|.js|.tsx|.go|.py]") path) paths <- liftIO (globDir1 (compile "[^vendor]**/*[.rb|.js|.tsx|.go|.py]") path)
let paths' = fmap (\p -> File p (languageForFilePath p)) paths let paths' = fmap (\p -> File p (languageForFilePath p)) paths
@ -168,38 +159,6 @@ readFromHandle (ReadHandle h) = do
Left e -> liftIO (die (e <> ". Invalid input on " <> show h <> ", expecting JSON")) Left e -> liftIO (die (e <> ". Invalid input on " <> show h <> ", expecting JSON"))
Right d -> pure d Right d -> pure d
toBlob :: Blob -> Blob.Blob
toBlob Blob{..} = Blob.sourceBlob path language' (fromText content)
where language' = case language of
"" -> languageForFilePath path
_ -> fromMaybe Unknown (readMaybe language)
newtype BlobDiff = BlobDiff { blobs :: [BlobPair] }
deriving (Show, Generic, FromJSON)
newtype BlobParse = BlobParse { blobs :: [Blob] }
deriving (Show, Generic, FromJSON)
type BlobPair = Join These Blob
data Blob = Blob
{ path :: FilePath
, content :: Text
, language :: String
}
deriving (Show, Generic, FromJSON)
instance FromJSON BlobPair where
parseJSON = withObject "BlobPair" $ \o -> do
before <- o .:? "before"
after <- o .:? "after"
case (before, after) of
(Just b, Just a) -> pure $ Join (These b a)
(Just b, Nothing) -> pure $ Join (This b)
(Nothing, Just a) -> pure $ Join (That a)
_ -> fail "Expected object with 'before' and/or 'after' keys only"
-- | An exception indicating that weve tried to diff or parse a blob of unknown language. -- | An exception indicating that weve tried to diff or parse a blob of unknown language.
newtype NoLanguageForBlob = NoLanguageForBlob FilePath newtype NoLanguageForBlob = NoLanguageForBlob FilePath
@ -209,16 +168,16 @@ noLanguageForBlob :: Member (Exc SomeException) effs => FilePath -> Eff effs a
noLanguageForBlob blobPath = throwError (SomeException (NoLanguageForBlob blobPath)) noLanguageForBlob blobPath = throwError (SomeException (NoLanguageForBlob blobPath))
readBlob :: Member Files effs => File -> Eff effs Blob.Blob readBlob :: Member Files effs => File -> Eff effs Blob
readBlob = send . Read . FromPath readBlob = send . Read . FromPath
-- | A task which reads a list of 'Blob's from a 'Handle' or a list of 'FilePath's optionally paired with 'Language's. -- | A task which reads a list of 'Blob's from a 'Handle' or a list of 'FilePath's optionally paired with 'Language's.
readBlobs :: Member Files effs => Either (Handle 'IO.ReadMode) [File] -> Eff effs [Blob.Blob] readBlobs :: Member Files effs => Either (Handle 'IO.ReadMode) [File] -> Eff effs [Blob]
readBlobs (Left handle) = send (Read (FromHandle handle)) readBlobs (Left handle) = send (Read (FromHandle handle))
readBlobs (Right paths) = traverse (send . Read . FromPath) paths readBlobs (Right paths) = traverse (send . Read . FromPath) paths
-- | A task which reads a list of pairs of 'Blob's from a 'Handle' or a list of pairs of 'FilePath's optionally paired with 'Language's. -- | A task which reads a list of pairs of 'Blob's from a 'Handle' or a list of pairs of 'FilePath's optionally paired with 'Language's.
readBlobPairs :: Member Files effs => Either (Handle 'IO.ReadMode) [Both File] -> Eff effs [Blob.BlobPair] readBlobPairs :: Member Files effs => Either (Handle 'IO.ReadMode) [Both File] -> Eff effs [BlobPair]
readBlobPairs (Left handle) = send (Read (FromPairHandle handle)) readBlobPairs (Left handle) = send (Read (FromPairHandle handle))
readBlobPairs (Right paths) = traverse (send . Read . FromPathPair) paths readBlobPairs (Right paths) = traverse (send . Read . FromPathPair) paths
@ -256,14 +215,14 @@ openFileForReading :: FilePath -> IO (Handle 'IO.ReadMode)
openFileForReading path = ReadHandle <$> IO.openFile path IO.ReadMode openFileForReading path = ReadHandle <$> IO.openFile path IO.ReadMode
data Source blob where data Source blob where
FromPath :: File -> Source Blob.Blob FromPath :: File -> Source Blob
FromHandle :: Handle 'IO.ReadMode -> Source [Blob.Blob] FromHandle :: Handle 'IO.ReadMode -> Source [Blob]
FromPathPair :: Both File -> Source Blob.BlobPair FromPathPair :: Both File -> Source BlobPair
FromPairHandle :: Handle 'IO.ReadMode -> Source [Blob.BlobPair] FromPairHandle :: Handle 'IO.ReadMode -> Source [BlobPair]
data Destination = ToPath FilePath | ToHandle (Handle 'IO.WriteMode) data Destination = ToPath FilePath | ToHandle (Handle 'IO.WriteMode)
-- | An effect to read/write 'Blob.Blob's from 'Handle's or 'FilePath's. -- | An effect to read/write 'Blob's from 'Handle's or 'FilePath's.
data Files out where data Files out where
Read :: Source out -> Files out Read :: Source out -> Files out
ReadProject :: Maybe FilePath -> FilePath -> Language -> [FilePath] -> Files Project.Concrete ReadProject :: Maybe FilePath -> FilePath -> Language -> [FilePath] -> Files Project.Concrete

View File

@ -16,7 +16,6 @@
{+(SendChannel {+(SendChannel
{+(SendChannel {+(SendChannel
{+(Constructor {+(Constructor
{+(Empty)+}
{+(Empty)+} {+(Empty)+}
{+(Statements)+})+})+})+})+} {+(Statements)+})+})+})+})+}
{+(Type {+(Type
@ -45,7 +44,6 @@
{-(SendChannel {-(SendChannel
{-(SendChannel {-(SendChannel
{-(Constructor {-(Constructor
{-(Empty)-}
{-(Empty)-} {-(Empty)-}
{-(Statements)-})-})-})-})-} {-(Statements)-})-})-})-})-}
{-(Type {-(Type

View File

@ -16,7 +16,6 @@
{+(SendChannel {+(SendChannel
{+(SendChannel {+(SendChannel
{+(Constructor {+(Constructor
{+(Empty)+}
{+(Empty)+} {+(Empty)+}
{+(Statements)+})+})+})+})+} {+(Statements)+})+})+})+})+}
{+(Type {+(Type
@ -45,7 +44,6 @@
{-(SendChannel {-(SendChannel
{-(SendChannel {-(SendChannel
{-(Constructor {-(Constructor
{-(Empty)-}
{-(Empty)-} {-(Empty)-}
{-(Statements)-})-})-})-})-} {-(Statements)-})-})-})-})-}
{-(Type {-(Type

View File

@ -16,7 +16,6 @@
(SendChannel (SendChannel
(SendChannel (SendChannel
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Statements))))) (Statements)))))
(Type (Type

View File

@ -16,7 +16,6 @@
(SendChannel (SendChannel
(SendChannel (SendChannel
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Statements))))) (Statements)))))
(Type (Type

View File

@ -9,7 +9,6 @@
(Type (Type
(Identifier) (Identifier)
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Field (Field
(Identifier) (Identifier)

View File

@ -9,7 +9,6 @@
(Type (Type
(Identifier) (Identifier)
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Field (Field
(Identifier) (Identifier)

View File

@ -9,7 +9,6 @@
(Type (Type
(Identifier) (Identifier)
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Field (Field
(Identifier) (Identifier)

View File

@ -9,7 +9,6 @@
(Type (Type
(Identifier) (Identifier)
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Field (Field
(Identifier) (Identifier)

View File

@ -22,7 +22,6 @@
(Identifier) (Identifier)
(Composite (Composite
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Field (Field
{ (Identifier) { (Identifier)

View File

@ -22,7 +22,6 @@
(Identifier) (Identifier)
(Composite (Composite
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Field (Field
{ (Identifier) { (Identifier)

View File

@ -21,7 +21,6 @@
(Identifier) (Identifier)
(Composite (Composite
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Field (Field
(Identifier) (Identifier)

View File

@ -21,7 +21,6 @@
(Identifier) (Identifier)
(Composite (Composite
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Field (Field
(Identifier) (Identifier)

View File

@ -11,7 +11,6 @@
{ (Identifier) { (Identifier)
->(Identifier) } ->(Identifier) }
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Statements)))) (Statements))))
(Statements (Statements
@ -19,7 +18,6 @@
{ (Identifier) { (Identifier)
->(Identifier) } ->(Identifier) }
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Field (Field
(Identifier) (Identifier)
@ -29,7 +27,6 @@
{ (Identifier) { (Identifier)
->(Identifier) } ->(Identifier) }
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Field (Field
(Identifier) (Identifier)
@ -41,7 +38,6 @@
{ (Identifier) { (Identifier)
->(Identifier) } ->(Identifier) }
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Statements (Statements
(Field (Field

View File

@ -11,7 +11,6 @@
{ (Identifier) { (Identifier)
->(Identifier) } ->(Identifier) }
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Statements)))) (Statements))))
(Statements (Statements
@ -19,7 +18,6 @@
{ (Identifier) { (Identifier)
->(Identifier) } ->(Identifier) }
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Field (Field
(Identifier) (Identifier)
@ -29,7 +27,6 @@
{ (Identifier) { (Identifier)
->(Identifier) } ->(Identifier) }
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Field (Field
(Identifier) (Identifier)
@ -41,7 +38,6 @@
{ (Identifier) { (Identifier)
->(Identifier) } ->(Identifier) }
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Statements (Statements
(Field (Field

View File

@ -10,14 +10,12 @@
(Type (Type
(Identifier) (Identifier)
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Statements)))) (Statements))))
(Statements (Statements
(Type (Type
(Identifier) (Identifier)
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Field (Field
(Identifier) (Identifier)
@ -26,7 +24,6 @@
(Type (Type
(Identifier) (Identifier)
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Field (Field
(Identifier) (Identifier)
@ -37,7 +34,6 @@
(Type (Type
(Identifier) (Identifier)
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Statements (Statements
(Field (Field

View File

@ -10,14 +10,12 @@
(Type (Type
(Identifier) (Identifier)
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Statements)))) (Statements))))
(Statements (Statements
(Type (Type
(Identifier) (Identifier)
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Field (Field
(Identifier) (Identifier)
@ -26,7 +24,6 @@
(Type (Type
(Identifier) (Identifier)
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Field (Field
(Identifier) (Identifier)
@ -37,7 +34,6 @@
(Type (Type
(Identifier) (Identifier)
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Statements (Statements
(Field (Field

View File

@ -30,7 +30,6 @@
{ (Identifier) { (Identifier)
->(Identifier) } ->(Identifier) }
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Statements (Statements
(Field (Field

View File

@ -30,7 +30,6 @@
{ (Identifier) { (Identifier)
->(Identifier) } ->(Identifier) }
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Statements (Statements
(Field (Field

View File

@ -23,7 +23,6 @@
(Type (Type
(Identifier) (Identifier)
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Statements (Statements
(Field (Field

View File

@ -23,7 +23,6 @@
(Type (Type
(Identifier) (Identifier)
(Constructor (Constructor
(Empty)
(Empty) (Empty)
(Statements (Statements
(Field (Field

View File

@ -26,3 +26,7 @@ data (Eq (f a), Functor f) => N f a = N f a
data Foo bar = HasCallStack => Foo bar data Foo bar = HasCallStack => Foo bar
data Baz foo = Show foo => Baz foo data Baz foo = Show foo => Baz foo
data Foo = Foo !Double#
data SomeNumber = forall a . Show a => SomeNumber (Number a)

View File

@ -26,3 +26,8 @@ data (Eq (f a), Applicative f) => N f a = N f a
data Foo bar = HasCallStack => Wiz bar data Foo bar = HasCallStack => Wiz bar
data Baz a = Show a => Baz a data Baz a = Show a => Baz a
data Bar = Bar !Double#
data SomeNumber = forall b . Show b => SomeNumber (Number b)

View File

@ -4,420 +4,453 @@
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters (TypeParameters
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Constructor (Constructor
(Empty) { (ConstructorIdentifier)
{ (Identifier) ->(ConstructorIdentifier) }
->(Identifier) }
(TypeParameters (TypeParameters
(Identifier))) (TypeVariableIdentifier)))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters (TypeParameters
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Constructor (Constructor
(Empty) { (ConstructorIdentifier)
{ (Identifier) ->(ConstructorIdentifier) }
->(Identifier) }
(TypeParameters (TypeParameters
(StrictTypeVariable (StrictTypeVariable
(Identifier)))) (TypeVariableIdentifier))))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters (TypeParameters
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Constructor (Constructor
(Empty) { (ConstructorIdentifier)
{ (Identifier) ->(ConstructorIdentifier) }
->(Identifier) }
(TypeParameters (TypeParameters
(StrictTypeVariable (StrictTypeVariable
(Identifier)) (TypeVariableIdentifier))
(Identifier))) (TypeVariableIdentifier)))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Constructor (Constructor
(Empty) { (ConstructorIdentifier)
{ (Identifier) ->(ConstructorIdentifier) }
->(Identifier) }
(TypeParameters))
(Constructor
(Empty)
{ (Identifier)
->(Identifier) }
(TypeParameters))
(Constructor
(Empty)
{ (Identifier)
->(Identifier) }
(TypeParameters)) (TypeParameters))
{+(Constructor {+(Constructor
{+(Empty)+} {+(ConstructorIdentifier)+}
{+(Identifier)+}
{+(TypeParameters)+})+} {+(TypeParameters)+})+}
{+(Constructor {+(Constructor
{+(Empty)+} {+(ConstructorIdentifier)+}
{+(Identifier)+}
{+(TypeParameters)+})+} {+(TypeParameters)+})+}
{+(Constructor {+(Constructor
{+(Empty)+} {+(ConstructorIdentifier)+}
{+(Identifier)+} {+(TypeParameters)+})+}
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+} {+(TypeParameters)+})+}
{-(Constructor {-(Constructor
{-(Empty)-} {-(ConstructorIdentifier)-}
{-(Identifier)-}
{-(TypeParameters)-})-} {-(TypeParameters)-})-}
{-(Constructor {-(Constructor
{-(Empty)-} {-(ConstructorIdentifier)-}
{-(Identifier)-}
{-(TypeParameters)-})-} {-(TypeParameters)-})-}
{-(Constructor {-(Constructor
{-(Empty)-} {-(ConstructorIdentifier)-}
{-(Identifier)-} {-(TypeParameters)-})-}
{-(Constructor
{-(ConstructorIdentifier)-}
{-(TypeParameters)-})-}
{-(Constructor
{-(ConstructorIdentifier)-}
{-(TypeParameters)-})-} {-(TypeParameters)-})-}
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(RecordDataConstructor (RecordDataConstructor
{ (Identifier) { (ConstructorIdentifier)
->(Identifier) } ->(ConstructorIdentifier) }
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(RecordDataConstructor (RecordDataConstructor
{ (Identifier) { (ConstructorIdentifier)
->(Identifier) } ->(ConstructorIdentifier) }
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier) (VariableIdentifier)
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(RecordDataConstructor (RecordDataConstructor
{ (Identifier) { (ConstructorIdentifier)
->(Identifier) } ->(ConstructorIdentifier) }
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(StrictType (StrictType
(Identifier) (TypeConstructorIdentifier)
(TypeParameters)) (TypeParameters))
(TypeParameters) (TypeParameters)
(Empty))) (Empty)))
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(RecordDataConstructor (RecordDataConstructor
{ (Identifier) { (ConstructorIdentifier)
->(Identifier) } ->(ConstructorIdentifier) }
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier) (VariableIdentifier)
(Identifier)) (VariableIdentifier))
(Type (Type
(Context (Context
(Pragma) (Pragma)
(StrictType (StrictType
(Identifier) (TypeConstructorIdentifier)
(TypeParameters))) (TypeParameters)))
(TypeParameters) (TypeParameters)
(Empty))) (Empty)))
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(Empty)) (Empty))
{-(Datatype {-(Datatype
{-(Empty)-} {-(Empty)-}
{-(Type {-(Type
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(TypeParameters)-} {-(TypeParameters)-}
{-(Empty)-})-} {-(Empty)-})-}
{-(RecordDataConstructor {-(RecordDataConstructor
{-(Identifier)-} {-(ConstructorIdentifier)-}
{-(Statements {-(Statements
{-(Field {-(Field
{-(Statements {-(Statements
{-(Identifier)-})-} {-(VariableIdentifier)-})-}
{-(Type {-(Type
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(TypeParameters)-} {-(TypeParameters)-}
{-(Empty)-})-})-})-})-} {-(Empty)-})-})-})-})-}
{-(RecordDataConstructor {-(RecordDataConstructor
{-(Identifier)-} {-(ConstructorIdentifier)-}
{-(Statements {-(Statements
{-(Field {-(Field
{-(Statements {-(Statements
{-(Identifier)-})-} {-(VariableIdentifier)-})-}
{-(Type {-(Type
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(TypeParameters)-} {-(TypeParameters)-}
{-(Empty)-})-})-})-})-} {-(Empty)-})-})-})-})-}
{-(Empty)-})-} {-(Empty)-})-}
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(RecordDataConstructor (RecordDataConstructor
(Identifier) (ConstructorIdentifier)
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(RecordDataConstructor (RecordDataConstructor
(Identifier) (ConstructorIdentifier)
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(Empty)) (Empty))
{+(Datatype {+(Datatype
{+(Empty)+} {+(Empty)+}
{+(Type {+(Type
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(TypeParameters)+} {+(TypeParameters)+}
{+(Empty)+})+} {+(Empty)+})+}
{+(RecordDataConstructor {+(RecordDataConstructor
{+(Identifier)+} {+(ConstructorIdentifier)+}
{+(Statements {+(Statements
{+(Field {+(Field
{+(Statements {+(Statements
{+(Identifier)+})+} {+(VariableIdentifier)+})+}
{+(Type {+(Type
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(TypeParameters)+} {+(TypeParameters)+}
{+(Empty)+})+})+})+})+} {+(Empty)+})+})+})+})+}
{+(RecordDataConstructor {+(RecordDataConstructor
{+(Identifier)+} {+(ConstructorIdentifier)+}
{+(Statements {+(Statements
{+(Field {+(Field
{+(Statements {+(Statements
{+(Identifier)+})+} {+(VariableIdentifier)+})+}
{+(Type {+(Type
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(TypeParameters)+} {+(TypeParameters)+}
{+(Empty)+})+})+})+})+} {+(Empty)+})+})+})+})+}
{+(Empty)+})+} {+(Empty)+})+}
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters)) (TypeParameters))
(Deriving (Deriving
(Identifier))) (TypeClassIdentifier)))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters)) (TypeParameters))
(Deriving (Deriving
{ (Identifier) { (TypeClassIdentifier)
->(Identifier) } ->(TypeClassIdentifier) }
(Identifier) (TypeClassIdentifier)
(Identifier) (TypeClassIdentifier)
(Identifier) (TypeClassIdentifier)
(Identifier) (TypeClassIdentifier)
(Identifier))) (TypeClassIdentifier)))
(Datatype (Datatype
(Context' (Context'
(Class (Statements
{ (Identifier)
->(Identifier) }
(TypeParameters
(Identifier))))
(Type
(Identifier)
(TypeParameters
(Identifier))
(Empty))
(Constructor
(Empty)
(Identifier)
(TypeParameters
(Identifier)))
(Empty))
(Datatype
(Context'
(Class
{ (Identifier)
->(Identifier) }
(TypeParameters
(Identifier)))
(Class
(Identifier)
(TypeParameters
(Identifier)))
(Class
(Identifier)
(TypeParameters
(Identifier))))
(Type
(Identifier)
(TypeParameters
(Identifier)
(Identifier))
(Empty))
(Constructor
(Empty)
(Identifier)
(TypeParameters
(Identifier)
(Identifier)))
(Empty))
(Datatype
(Context'
(Class
(Identifier)
(TypeParameters
(Statements
(Identifier)
(Identifier))))
(Class
{ (Identifier)
->(Identifier) }
(TypeParameters
(Identifier))))
(Type
(Identifier)
(TypeParameters
(Identifier)
(Identifier))
(Empty))
(Constructor
(Empty)
(Identifier)
(TypeParameters
(Identifier)
(Identifier)))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeParameters
(Identifier))
(Empty))
(Constructor
(Context'
(Identifier))
{ (Identifier)
->(Identifier) }
(TypeParameters
(Identifier)))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeParameters
{ (Identifier)
->(Identifier) })
(Empty))
(Constructor
(Context'
(Class (Class
(Identifier) { (TypeClassIdentifier)
->(TypeClassIdentifier) }
(TypeParameters (TypeParameters
{ (Identifier) (TypeVariableIdentifier)))))
->(Identifier) }))) (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
{ (Identifier) (TypeVariableIdentifier))
->(Identifier) })) (Empty))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)))
(Empty))
(Datatype
(Context'
(Statements
(Class
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(TypeParameters
(TypeVariableIdentifier))))
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(TypeVariableIdentifier))))
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(TypeVariableIdentifier)))))
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)
(TypeVariableIdentifier))
(Empty))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)
(TypeVariableIdentifier)))
(Empty))
(Datatype
(Context'
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(Statements
(TypeVariableIdentifier)
(TypeVariableIdentifier)))))
(Statements
(Class
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(TypeParameters
(TypeVariableIdentifier)))))
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)
(TypeVariableIdentifier))
(Empty))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)
(TypeVariableIdentifier)))
(Empty))
(Datatype
(Empty)
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier))
(Empty))
(Constructor
(Context'
(Statements
(TypeConstructorIdentifier)))
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters
(TypeVariableIdentifier)))
(Empty))
(Datatype
(Empty)
(Type
(TypeConstructorIdentifier)
(TypeParameters
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) })
(Empty))
(Constructor
(Context'
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }))))
(ConstructorIdentifier)
(TypeParameters
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }))
(Empty))
(Datatype
(Empty)
(Type
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
(TypeParameters)
(Empty))
(Constructor
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters
(StrictTypeVariable
(PrimitiveConstructorIdentifier))))
(Empty))
(Datatype
(Empty)
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Constructor
(ScopedTypeVariables
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) })
(Context'
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }))))
(ConstructorIdentifier)
(TypeParameters
(Statements
(TypeConstructorIdentifier)
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) })))
(Empty)))) (Empty))))

View File

@ -4,417 +4,449 @@
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters (TypeParameters
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Constructor (Constructor
(Empty) { (ConstructorIdentifier)
{ (Identifier) ->(ConstructorIdentifier) }
->(Identifier) }
(TypeParameters (TypeParameters
(Identifier))) (TypeVariableIdentifier)))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters (TypeParameters
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Constructor (Constructor
(Empty) { (ConstructorIdentifier)
{ (Identifier) ->(ConstructorIdentifier) }
->(Identifier) }
(TypeParameters (TypeParameters
(StrictTypeVariable (StrictTypeVariable
(Identifier)))) (TypeVariableIdentifier))))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters (TypeParameters
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Constructor (Constructor
(Empty) { (ConstructorIdentifier)
{ (Identifier) ->(ConstructorIdentifier) }
->(Identifier) }
(TypeParameters (TypeParameters
(StrictTypeVariable (StrictTypeVariable
(Identifier)) (TypeVariableIdentifier))
(Identifier))) (TypeVariableIdentifier)))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Constructor (Constructor
(Empty) { (ConstructorIdentifier)
{ (Identifier) ->(ConstructorIdentifier) }
->(Identifier) }
(TypeParameters))
(Constructor
(Empty)
{ (Identifier)
->(Identifier) }
(TypeParameters))
(Constructor
(Empty)
{ (Identifier)
->(Identifier) }
(TypeParameters)) (TypeParameters))
{+(Constructor {+(Constructor
{+(Empty)+} {+(ConstructorIdentifier)+}
{+(Identifier)+}
{+(TypeParameters)+})+} {+(TypeParameters)+})+}
{+(Constructor {+(Constructor
{+(Empty)+} {+(ConstructorIdentifier)+}
{+(Identifier)+}
{+(TypeParameters)+})+} {+(TypeParameters)+})+}
(Constructor (Constructor
(Empty) { (ConstructorIdentifier)
{ (Identifier) ->(ConstructorIdentifier) }
->(Identifier) } (TypeParameters))
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
(Constructor
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters)) (TypeParameters))
{-(Constructor {-(Constructor
{-(Empty)-} {-(ConstructorIdentifier)-}
{-(Identifier)-}
{-(TypeParameters)-})-} {-(TypeParameters)-})-}
{-(Constructor {-(Constructor
{-(Empty)-} {-(ConstructorIdentifier)-}
{-(Identifier)-} {-(TypeParameters)-})-}
{-(Constructor
{-(ConstructorIdentifier)-}
{-(TypeParameters)-})-} {-(TypeParameters)-})-}
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(RecordDataConstructor (RecordDataConstructor
{ (Identifier) { (ConstructorIdentifier)
->(Identifier) } ->(ConstructorIdentifier) }
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(RecordDataConstructor (RecordDataConstructor
{ (Identifier) { (ConstructorIdentifier)
->(Identifier) } ->(ConstructorIdentifier) }
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier) (VariableIdentifier)
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(RecordDataConstructor (RecordDataConstructor
{ (Identifier) { (ConstructorIdentifier)
->(Identifier) } ->(ConstructorIdentifier) }
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(StrictType (StrictType
(Identifier) (TypeConstructorIdentifier)
(TypeParameters)) (TypeParameters))
(TypeParameters) (TypeParameters)
(Empty))) (Empty)))
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(RecordDataConstructor (RecordDataConstructor
{ (Identifier) { (ConstructorIdentifier)
->(Identifier) } ->(ConstructorIdentifier) }
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier) (VariableIdentifier)
(Identifier)) (VariableIdentifier))
(Type (Type
(Context (Context
(Pragma) (Pragma)
(StrictType (StrictType
(Identifier) (TypeConstructorIdentifier)
(TypeParameters))) (TypeParameters)))
(TypeParameters) (TypeParameters)
(Empty))) (Empty)))
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(Empty)) (Empty))
{+(Datatype {+(Datatype
{+(Empty)+} {+(Empty)+}
{+(Type {+(Type
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(TypeParameters)+} {+(TypeParameters)+}
{+(Empty)+})+} {+(Empty)+})+}
{+(RecordDataConstructor {+(RecordDataConstructor
{+(Identifier)+} {+(ConstructorIdentifier)+}
{+(Statements {+(Statements
{+(Field {+(Field
{+(Statements {+(Statements
{+(Identifier)+})+} {+(VariableIdentifier)+})+}
{+(Type {+(Type
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(TypeParameters)+} {+(TypeParameters)+}
{+(Empty)+})+})+})+})+} {+(Empty)+})+})+})+})+}
{+(RecordDataConstructor {+(RecordDataConstructor
{+(Identifier)+} {+(ConstructorIdentifier)+}
{+(Statements {+(Statements
{+(Field {+(Field
{+(Statements {+(Statements
{+(Identifier)+})+} {+(VariableIdentifier)+})+}
{+(Type {+(Type
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(TypeParameters)+} {+(TypeParameters)+}
{+(Empty)+})+})+})+})+} {+(Empty)+})+})+})+})+}
{+(Empty)+})+} {+(Empty)+})+}
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(RecordDataConstructor (RecordDataConstructor
(Identifier) (ConstructorIdentifier)
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(RecordDataConstructor (RecordDataConstructor
(Identifier) (ConstructorIdentifier)
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(Empty)) (Empty))
{-(Datatype {-(Datatype
{-(Empty)-} {-(Empty)-}
{-(Type {-(Type
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(TypeParameters)-} {-(TypeParameters)-}
{-(Empty)-})-} {-(Empty)-})-}
{-(RecordDataConstructor {-(RecordDataConstructor
{-(Identifier)-} {-(ConstructorIdentifier)-}
{-(Statements {-(Statements
{-(Field {-(Field
{-(Statements {-(Statements
{-(Identifier)-})-} {-(VariableIdentifier)-})-}
{-(Type {-(Type
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(TypeParameters)-} {-(TypeParameters)-}
{-(Empty)-})-})-})-})-} {-(Empty)-})-})-})-})-}
{-(RecordDataConstructor {-(RecordDataConstructor
{-(Identifier)-} {-(ConstructorIdentifier)-}
{-(Statements {-(Statements
{-(Field {-(Field
{-(Statements {-(Statements
{-(Identifier)-})-} {-(VariableIdentifier)-})-}
{-(Type {-(Type
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(TypeParameters)-} {-(TypeParameters)-}
{-(Empty)-})-})-})-})-} {-(Empty)-})-})-})-})-}
{-(Empty)-})-} {-(Empty)-})-}
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters)) (TypeParameters))
(Deriving (Deriving
(Identifier))) (TypeClassIdentifier)))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters)) (TypeParameters))
(Deriving (Deriving
{ (Identifier) { (TypeClassIdentifier)
->(Identifier) } ->(TypeClassIdentifier) }
(Identifier) (TypeClassIdentifier)
(Identifier) (TypeClassIdentifier)
(Identifier) (TypeClassIdentifier)
(Identifier) (TypeClassIdentifier)
(Identifier))) (TypeClassIdentifier)))
(Datatype (Datatype
(Context' (Context'
(Class (Statements
{ (Identifier)
->(Identifier) }
(TypeParameters
(Identifier))))
(Type
(Identifier)
(TypeParameters
(Identifier))
(Empty))
(Constructor
(Empty)
(Identifier)
(TypeParameters
(Identifier)))
(Empty))
(Datatype
(Context'
(Class
{ (Identifier)
->(Identifier) }
(TypeParameters
(Identifier)))
(Class
(Identifier)
(TypeParameters
(Identifier)))
(Class
(Identifier)
(TypeParameters
(Identifier))))
(Type
(Identifier)
(TypeParameters
(Identifier)
(Identifier))
(Empty))
(Constructor
(Empty)
(Identifier)
(TypeParameters
(Identifier)
(Identifier)))
(Empty))
(Datatype
(Context'
(Class
(Identifier)
(TypeParameters
(Statements
(Identifier)
(Identifier))))
(Class
{ (Identifier)
->(Identifier) }
(TypeParameters
(Identifier))))
(Type
(Identifier)
(TypeParameters
(Identifier)
(Identifier))
(Empty))
(Constructor
(Empty)
(Identifier)
(TypeParameters
(Identifier)
(Identifier)))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeParameters
(Identifier))
(Empty))
(Constructor
(Context'
(Identifier))
{ (Identifier)
->(Identifier) }
(TypeParameters
(Identifier)))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeParameters
{ (Identifier)
->(Identifier) })
(Empty))
(Constructor
(Context'
(Class (Class
(Identifier) { (TypeClassIdentifier)
->(TypeClassIdentifier) }
(TypeParameters (TypeParameters
{ (Identifier) (TypeVariableIdentifier)))))
->(Identifier) }))) (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
{ (Identifier) (TypeVariableIdentifier))
->(Identifier) })) (Empty))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)))
(Empty))
(Datatype
(Context'
(Statements
(Class
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(TypeParameters
(TypeVariableIdentifier))))
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(TypeVariableIdentifier))))
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(TypeVariableIdentifier)))))
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)
(TypeVariableIdentifier))
(Empty))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)
(TypeVariableIdentifier)))
(Empty))
(Datatype
(Context'
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(Statements
(TypeVariableIdentifier)
(TypeVariableIdentifier)))))
(Statements
(Class
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(TypeParameters
(TypeVariableIdentifier)))))
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)
(TypeVariableIdentifier))
(Empty))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)
(TypeVariableIdentifier)))
(Empty))
(Datatype
(Empty)
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier))
(Empty))
(Constructor
(Context'
(Statements
(TypeConstructorIdentifier)))
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters
(TypeVariableIdentifier)))
(Empty))
(Datatype
(Empty)
(Type
(TypeConstructorIdentifier)
(TypeParameters
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) })
(Empty))
(Constructor
(Context'
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }))))
(ConstructorIdentifier)
(TypeParameters
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }))
(Empty))
(Datatype
(Empty)
(Type
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
(TypeParameters)
(Empty))
(Constructor
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters
(StrictTypeVariable
(PrimitiveConstructorIdentifier))))
(Empty))
(Datatype
(Empty)
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Constructor
(ScopedTypeVariables
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) })
(Context'
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }))))
(ConstructorIdentifier)
(TypeParameters
(Statements
(TypeConstructorIdentifier)
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) })))
(Empty)))) (Empty))))

View File

@ -4,354 +4,381 @@
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters (TypeParameters
(Identifier))) (TypeVariableIdentifier)))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters (TypeParameters
(StrictTypeVariable (StrictTypeVariable
(Identifier)))) (TypeVariableIdentifier))))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters (TypeParameters
(StrictTypeVariable (StrictTypeVariable
(Identifier)) (TypeVariableIdentifier))
(Identifier))) (TypeVariableIdentifier)))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters)) (TypeParameters))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters)) (TypeParameters))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters)) (TypeParameters))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters)) (TypeParameters))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters)) (TypeParameters))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters)) (TypeParameters))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(RecordDataConstructor (RecordDataConstructor
(Identifier) (ConstructorIdentifier)
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(RecordDataConstructor (RecordDataConstructor
(Identifier) (ConstructorIdentifier)
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier) (VariableIdentifier)
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(RecordDataConstructor (RecordDataConstructor
(Identifier) (ConstructorIdentifier)
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(StrictType (StrictType
(Identifier) (TypeConstructorIdentifier)
(TypeParameters)) (TypeParameters))
(TypeParameters) (TypeParameters)
(Empty))) (Empty)))
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(RecordDataConstructor (RecordDataConstructor
(Identifier) (ConstructorIdentifier)
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier) (VariableIdentifier)
(Identifier)) (VariableIdentifier))
(Type (Type
(Context (Context
(Pragma) (Pragma)
(StrictType (StrictType
(Identifier) (TypeConstructorIdentifier)
(TypeParameters))) (TypeParameters)))
(TypeParameters) (TypeParameters)
(Empty))) (Empty)))
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(RecordDataConstructor (RecordDataConstructor
(Identifier) (ConstructorIdentifier)
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(RecordDataConstructor (RecordDataConstructor
(Identifier) (ConstructorIdentifier)
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(RecordDataConstructor (RecordDataConstructor
(Identifier) (ConstructorIdentifier)
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(RecordDataConstructor (RecordDataConstructor
(Identifier) (ConstructorIdentifier)
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters)) (TypeParameters))
(Deriving (Deriving
(Identifier))) (TypeClassIdentifier)))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters)) (TypeParameters))
(Deriving (Deriving
(Identifier) (TypeClassIdentifier)
(Identifier) (TypeClassIdentifier)
(Identifier) (TypeClassIdentifier)
(Identifier) (TypeClassIdentifier)
(Identifier) (TypeClassIdentifier)
(Identifier))) (TypeClassIdentifier)))
(Datatype (Datatype
(Context' (Context'
(Class (Statements
(Identifier)
(TypeParameters
(Identifier))))
(Type
(Identifier)
(TypeParameters
(Identifier))
(Empty))
(Constructor
(Empty)
(Identifier)
(TypeParameters
(Identifier)))
(Empty))
(Datatype
(Context'
(Class
(Identifier)
(TypeParameters
(Identifier)))
(Class
(Identifier)
(TypeParameters
(Identifier)))
(Class
(Identifier)
(TypeParameters
(Identifier))))
(Type
(Identifier)
(TypeParameters
(Identifier)
(Identifier))
(Empty))
(Constructor
(Empty)
(Identifier)
(TypeParameters
(Identifier)
(Identifier)))
(Empty))
(Datatype
(Context'
(Class
(Identifier)
(TypeParameters
(Statements
(Identifier)
(Identifier))))
(Class
(Identifier)
(TypeParameters
(Identifier))))
(Type
(Identifier)
(TypeParameters
(Identifier)
(Identifier))
(Empty))
(Constructor
(Empty)
(Identifier)
(TypeParameters
(Identifier)
(Identifier)))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeParameters
(Identifier))
(Empty))
(Constructor
(Context'
(Identifier))
(Identifier)
(TypeParameters
(Identifier)))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeParameters
(Identifier))
(Empty))
(Constructor
(Context'
(Class (Class
(Identifier) (TypeClassIdentifier)
(TypeParameters (TypeParameters
(Identifier)))) (TypeVariableIdentifier)))))
(Identifier) (Type
(TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier))) (TypeVariableIdentifier))
(Empty))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)))
(Empty))
(Datatype
(Context'
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(TypeVariableIdentifier))))
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(TypeVariableIdentifier))))
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(TypeVariableIdentifier)))))
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)
(TypeVariableIdentifier))
(Empty))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)
(TypeVariableIdentifier)))
(Empty))
(Datatype
(Context'
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(Statements
(TypeVariableIdentifier)
(TypeVariableIdentifier)))))
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(TypeVariableIdentifier)))))
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)
(TypeVariableIdentifier))
(Empty))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)
(TypeVariableIdentifier)))
(Empty))
(Datatype
(Empty)
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier))
(Empty))
(Constructor
(Context'
(Statements
(TypeConstructorIdentifier)))
(ConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)))
(Empty))
(Datatype
(Empty)
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier))
(Empty))
(Constructor
(Context'
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(TypeVariableIdentifier)))))
(ConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)))
(Empty))
(Datatype
(Empty)
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(StrictTypeVariable
(PrimitiveConstructorIdentifier))))
(Empty))
(Datatype
(Empty)
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Constructor
(ScopedTypeVariables
(TypeVariableIdentifier))
(Context'
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(TypeVariableIdentifier)))))
(ConstructorIdentifier)
(TypeParameters
(Statements
(TypeConstructorIdentifier)
(TypeVariableIdentifier))))
(Empty)))) (Empty))))

View File

@ -4,354 +4,381 @@
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters (TypeParameters
(Identifier))) (TypeVariableIdentifier)))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters (TypeParameters
(StrictTypeVariable (StrictTypeVariable
(Identifier)))) (TypeVariableIdentifier))))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters (TypeParameters
(StrictTypeVariable (StrictTypeVariable
(Identifier)) (TypeVariableIdentifier))
(Identifier))) (TypeVariableIdentifier)))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters)) (TypeParameters))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters)) (TypeParameters))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters)) (TypeParameters))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters)) (TypeParameters))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters)) (TypeParameters))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters)) (TypeParameters))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(RecordDataConstructor (RecordDataConstructor
(Identifier) (ConstructorIdentifier)
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(RecordDataConstructor (RecordDataConstructor
(Identifier) (ConstructorIdentifier)
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier) (VariableIdentifier)
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(RecordDataConstructor (RecordDataConstructor
(Identifier) (ConstructorIdentifier)
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(StrictType (StrictType
(Identifier) (TypeConstructorIdentifier)
(TypeParameters)) (TypeParameters))
(TypeParameters) (TypeParameters)
(Empty))) (Empty)))
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(RecordDataConstructor (RecordDataConstructor
(Identifier) (ConstructorIdentifier)
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier) (VariableIdentifier)
(Identifier)) (VariableIdentifier))
(Type (Type
(Context (Context
(Pragma) (Pragma)
(StrictType (StrictType
(Identifier) (TypeConstructorIdentifier)
(TypeParameters))) (TypeParameters)))
(TypeParameters) (TypeParameters)
(Empty))) (Empty)))
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(RecordDataConstructor (RecordDataConstructor
(Identifier) (ConstructorIdentifier)
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(RecordDataConstructor (RecordDataConstructor
(Identifier) (ConstructorIdentifier)
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(RecordDataConstructor (RecordDataConstructor
(Identifier) (ConstructorIdentifier)
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(RecordDataConstructor (RecordDataConstructor
(Identifier) (ConstructorIdentifier)
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))))) (Empty)))))
(Empty)) (Empty))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters)) (TypeParameters))
(Deriving (Deriving
(Identifier))) (TypeClassIdentifier)))
(Datatype (Datatype
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Constructor (Constructor
(Empty) (ConstructorIdentifier)
(Identifier)
(TypeParameters)) (TypeParameters))
(Deriving (Deriving
(Identifier) (TypeClassIdentifier)
(Identifier) (TypeClassIdentifier)
(Identifier) (TypeClassIdentifier)
(Identifier) (TypeClassIdentifier)
(Identifier) (TypeClassIdentifier)
(Identifier))) (TypeClassIdentifier)))
(Datatype (Datatype
(Context' (Context'
(Class (Statements
(Identifier)
(TypeParameters
(Identifier))))
(Type
(Identifier)
(TypeParameters
(Identifier))
(Empty))
(Constructor
(Empty)
(Identifier)
(TypeParameters
(Identifier)))
(Empty))
(Datatype
(Context'
(Class
(Identifier)
(TypeParameters
(Identifier)))
(Class
(Identifier)
(TypeParameters
(Identifier)))
(Class
(Identifier)
(TypeParameters
(Identifier))))
(Type
(Identifier)
(TypeParameters
(Identifier)
(Identifier))
(Empty))
(Constructor
(Empty)
(Identifier)
(TypeParameters
(Identifier)
(Identifier)))
(Empty))
(Datatype
(Context'
(Class
(Identifier)
(TypeParameters
(Statements
(Identifier)
(Identifier))))
(Class
(Identifier)
(TypeParameters
(Identifier))))
(Type
(Identifier)
(TypeParameters
(Identifier)
(Identifier))
(Empty))
(Constructor
(Empty)
(Identifier)
(TypeParameters
(Identifier)
(Identifier)))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeParameters
(Identifier))
(Empty))
(Constructor
(Context'
(Identifier))
(Identifier)
(TypeParameters
(Identifier)))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeParameters
(Identifier))
(Empty))
(Constructor
(Context'
(Class (Class
(Identifier) (TypeClassIdentifier)
(TypeParameters (TypeParameters
(Identifier)))) (TypeVariableIdentifier)))))
(Identifier) (Type
(TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier))) (TypeVariableIdentifier))
(Empty))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)))
(Empty))
(Datatype
(Context'
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(TypeVariableIdentifier))))
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(TypeVariableIdentifier))))
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(TypeVariableIdentifier)))))
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)
(TypeVariableIdentifier))
(Empty))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)
(TypeVariableIdentifier)))
(Empty))
(Datatype
(Context'
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(Statements
(TypeVariableIdentifier)
(TypeVariableIdentifier)))))
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(TypeVariableIdentifier)))))
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)
(TypeVariableIdentifier))
(Empty))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)
(TypeVariableIdentifier)))
(Empty))
(Datatype
(Empty)
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier))
(Empty))
(Constructor
(Context'
(Statements
(TypeConstructorIdentifier)))
(ConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)))
(Empty))
(Datatype
(Empty)
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier))
(Empty))
(Constructor
(Context'
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(TypeVariableIdentifier)))))
(ConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)))
(Empty))
(Datatype
(Empty)
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(StrictTypeVariable
(PrimitiveConstructorIdentifier))))
(Empty))
(Datatype
(Empty)
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Constructor
(ScopedTypeVariables
(TypeVariableIdentifier))
(Context'
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(TypeVariableIdentifier)))))
(ConstructorIdentifier)
(TypeParameters
(Statements
(TypeConstructorIdentifier)
(TypeVariableIdentifier))))
(Empty)))) (Empty))))

View File

@ -0,0 +1,4 @@
module A where
default ()
default (Integer, Double)

View File

@ -0,0 +1,3 @@
module A where
default (Double, Integer)

View File

@ -0,0 +1,9 @@
(Module
(ModuleIdentifier)
(Statements
(DefaultDeclaration
{+(TypeConstructorIdentifier)+}
{+(TypeConstructorIdentifier)+})
{-(DefaultDeclaration
{-(TypeConstructorIdentifier)-}
{-(TypeConstructorIdentifier)-})-}))

View File

@ -0,0 +1,9 @@
(Module
(ModuleIdentifier)
(Statements
(DefaultDeclaration
{-(TypeConstructorIdentifier)-}
{-(TypeConstructorIdentifier)-})
{+(DefaultDeclaration
{+(TypeConstructorIdentifier)+}
{+(TypeConstructorIdentifier)+})+}))

View File

@ -0,0 +1,7 @@
(Module
(ModuleIdentifier)
(Statements
(DefaultDeclaration)
(DefaultDeclaration
(TypeConstructorIdentifier)
(TypeConstructorIdentifier))))

View File

@ -0,0 +1,6 @@
(Module
(ModuleIdentifier)
(Statements
(DefaultDeclaration
(TypeConstructorIdentifier)
(TypeConstructorIdentifier))))

View File

@ -4,89 +4,89 @@
(GADT (GADT
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(Statements (Statements
(Identifier) (TypeVariableIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Statements (Statements
(GADTConstructor (GADTConstructor
(Empty) (Empty)
(Identifier) (TypeConstructorIdentifier)
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters (TypeParameters
(Identifier) (TypeVariableIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(Empty)))))))) (Empty))))))))
(GADT (GADT
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(Statements (Statements
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Statements (Statements
(GADTConstructor (GADTConstructor
(Empty) (Empty)
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(FunctionType (FunctionType
(Type (Type
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeConstructorIdentifier))
(Empty))) (Empty)))
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeVariableIdentifier))
(Empty)))) (Empty))))
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters (TypeParameters
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(Empty)))))) (Empty))))))
(GADT (GADT
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(Statements (Statements
(Identifier)) (TypeVariableIdentifier))
(KindSignature (KindSignature
(KindFunctionType (KindFunctionType
(Kind (Kind
@ -100,75 +100,75 @@
(GADT (GADT
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(Statements (Statements
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Statements (Statements
(GADTConstructor (GADTConstructor
(Empty) (Empty)
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(FunctionType (FunctionType
(Type (Type
(StrictType (StrictType
(QualifiedTypeConstructorIdentifier (QualifiedTypeConstructorIdentifier
(Identifier) (ModuleIdentifier)
(Identifier)) (TypeConstructorIdentifier))
(TypeParameters)) (TypeParameters))
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(QualifiedTypeConstructorIdentifier (QualifiedTypeConstructorIdentifier
(Identifier) (ModuleIdentifier)
(Identifier))) (TypeConstructorIdentifier)))
(Empty)))) (Empty))))
(GADTConstructor (GADTConstructor
(Empty) (Empty)
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(FunctionType (FunctionType
(Type (Type
(StrictType (StrictType
(QualifiedTypeConstructorIdentifier (QualifiedTypeConstructorIdentifier
(Identifier) (ModuleIdentifier)
(Identifier)) (TypeConstructorIdentifier))
(TypeParameters)) (TypeParameters))
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(QualifiedTypeConstructorIdentifier (QualifiedTypeConstructorIdentifier
(Identifier) (ModuleIdentifier)
(Identifier))) (TypeConstructorIdentifier)))
(Empty)))) (Empty))))
(GADTConstructor (GADTConstructor
(Empty) (Empty)
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(FunctionType (FunctionType
(Type (Type
(StrictType (StrictType
(Identifier) (TypeConstructorIdentifier)
(TypeParameters)) (TypeParameters))
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeConstructorIdentifier))
(Empty)))))) (Empty))))))
(GADT (GADT
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(Statements (Statements
(AnnotatedTypeVariable (AnnotatedTypeVariable
(Identifier) (TypeVariableIdentifier)
(KindListType (KindListType
(KindFunctionType (KindFunctionType
(Kind (Kind
@ -176,32 +176,32 @@
(Kind (Kind
(Star))))) (Star)))))
(AnnotatedTypeVariable (AnnotatedTypeVariable
(Identifier) (TypeVariableIdentifier)
(Star))) (Star)))
(Empty)) (Empty))
(Statements (Statements
(GADTConstructor (GADTConstructor
(Empty) (Empty)
(Identifier) (TypeConstructorIdentifier)
(Context (Context
(Pragma) (Pragma)
(FunctionType (FunctionType
(Type (Type
(StrictType (StrictType
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters)) (TypeParameters))
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(Empty)))))))))) (Empty))))))))))

View File

@ -4,89 +4,89 @@
(GADT (GADT
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(Statements (Statements
(Identifier) (TypeVariableIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Statements (Statements
(GADTConstructor (GADTConstructor
(Empty) (Empty)
(Identifier) (TypeConstructorIdentifier)
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters (TypeParameters
(Identifier) (TypeVariableIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(Empty)))))))) (Empty))))))))
(GADT (GADT
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(Statements (Statements
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Statements (Statements
(GADTConstructor (GADTConstructor
(Empty) (Empty)
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(FunctionType (FunctionType
(Type (Type
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeConstructorIdentifier))
(Empty))) (Empty)))
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeVariableIdentifier))
(Empty)))) (Empty))))
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters (TypeParameters
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(Empty)))))) (Empty))))))
(GADT (GADT
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(Statements (Statements
(Identifier)) (TypeVariableIdentifier))
(KindSignature (KindSignature
(KindFunctionType (KindFunctionType
(Kind (Kind
@ -100,75 +100,75 @@
(GADT (GADT
(Empty) (Empty)
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(Statements (Statements
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Statements (Statements
(GADTConstructor (GADTConstructor
(Empty) (Empty)
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(FunctionType (FunctionType
(Type (Type
(StrictType (StrictType
(QualifiedTypeConstructorIdentifier (QualifiedTypeConstructorIdentifier
(Identifier) (ModuleIdentifier)
(Identifier)) (TypeConstructorIdentifier))
(TypeParameters)) (TypeParameters))
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(QualifiedTypeConstructorIdentifier (QualifiedTypeConstructorIdentifier
(Identifier) (ModuleIdentifier)
(Identifier))) (TypeConstructorIdentifier)))
(Empty)))) (Empty))))
(GADTConstructor (GADTConstructor
(Empty) (Empty)
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(FunctionType (FunctionType
(Type (Type
(StrictType (StrictType
(QualifiedTypeConstructorIdentifier (QualifiedTypeConstructorIdentifier
(Identifier) (ModuleIdentifier)
(Identifier)) (TypeConstructorIdentifier))
(TypeParameters)) (TypeParameters))
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(QualifiedTypeConstructorIdentifier (QualifiedTypeConstructorIdentifier
(Identifier) (ModuleIdentifier)
(Identifier))) (TypeConstructorIdentifier)))
(Empty)))) (Empty))))
(GADTConstructor (GADTConstructor
(Empty) (Empty)
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(FunctionType (FunctionType
(Type (Type
(StrictType (StrictType
(Identifier) (TypeConstructorIdentifier)
(TypeParameters)) (TypeParameters))
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeConstructorIdentifier))
(Empty)))))) (Empty))))))
(GADT (GADT
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(Statements (Statements
(AnnotatedTypeVariable (AnnotatedTypeVariable
(Identifier) (TypeVariableIdentifier)
(KindListType (KindListType
(KindFunctionType (KindFunctionType
(Kind (Kind
@ -176,32 +176,32 @@
(Kind (Kind
(Star))))) (Star)))))
(AnnotatedTypeVariable (AnnotatedTypeVariable
(Identifier) (TypeVariableIdentifier)
(Star))) (Star)))
(Empty)) (Empty))
(Statements (Statements
(GADTConstructor (GADTConstructor
(Empty) (Empty)
(Identifier) (TypeConstructorIdentifier)
(Context (Context
(Pragma) (Pragma)
(FunctionType (FunctionType
(Type (Type
(StrictType (StrictType
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters)) (TypeParameters))
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(Empty)))))))))) (Empty))))))))))

View File

@ -4,83 +4,83 @@
(GADT (GADT
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(Statements (Statements
(Identifier) (TypeVariableIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Statements (Statements
(GADTConstructor (GADTConstructor
(Empty) (Empty)
(Identifier) (TypeConstructorIdentifier)
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier) (TypeVariableIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(Empty)))))))) (Empty))))))))
(GADT (GADT
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(Statements (Statements
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Statements (Statements
(GADTConstructor (GADTConstructor
(Empty) (Empty)
(Identifier) (TypeConstructorIdentifier)
(FunctionType (FunctionType
(Type (Type
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeConstructorIdentifier))
(Empty))) (Empty)))
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeVariableIdentifier))
(Empty)))) (Empty))))
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(Empty)))))) (Empty))))))
(GADT (GADT
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(Statements (Statements
(Identifier)) (TypeVariableIdentifier))
(KindSignature (KindSignature
(KindFunctionType (KindFunctionType
(Kind (Kind
@ -92,71 +92,71 @@
(GADT (GADT
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(Statements (Statements
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Statements (Statements
(GADTConstructor (GADTConstructor
(Empty) (Empty)
(Identifier) (TypeConstructorIdentifier)
(FunctionType (FunctionType
(Type (Type
(StrictType (StrictType
(QualifiedTypeConstructorIdentifier (QualifiedTypeConstructorIdentifier
(Identifier) (ModuleIdentifier)
(Identifier)) (TypeConstructorIdentifier))
(TypeParameters)) (TypeParameters))
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(QualifiedTypeConstructorIdentifier (QualifiedTypeConstructorIdentifier
(Identifier) (ModuleIdentifier)
(Identifier))) (TypeConstructorIdentifier)))
(Empty)))) (Empty))))
(GADTConstructor (GADTConstructor
(Empty) (Empty)
(Identifier) (TypeConstructorIdentifier)
(FunctionType (FunctionType
(Type (Type
(StrictType (StrictType
(QualifiedTypeConstructorIdentifier (QualifiedTypeConstructorIdentifier
(Identifier) (ModuleIdentifier)
(Identifier)) (TypeConstructorIdentifier))
(TypeParameters)) (TypeParameters))
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(QualifiedTypeConstructorIdentifier (QualifiedTypeConstructorIdentifier
(Identifier) (ModuleIdentifier)
(Identifier))) (TypeConstructorIdentifier)))
(Empty)))) (Empty))))
(GADTConstructor (GADTConstructor
(Empty) (Empty)
(Identifier) (TypeConstructorIdentifier)
(FunctionType (FunctionType
(Type (Type
(StrictType (StrictType
(Identifier) (TypeConstructorIdentifier)
(TypeParameters)) (TypeParameters))
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeConstructorIdentifier))
(Empty)))))) (Empty))))))
(GADT (GADT
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(Statements (Statements
(AnnotatedTypeVariable (AnnotatedTypeVariable
(Identifier) (TypeVariableIdentifier)
(KindListType (KindListType
(KindFunctionType (KindFunctionType
(Kind (Kind
@ -164,31 +164,31 @@
(Kind (Kind
(Star))))) (Star)))))
(AnnotatedTypeVariable (AnnotatedTypeVariable
(Identifier) (TypeVariableIdentifier)
(Star))) (Star)))
(Empty)) (Empty))
(Statements (Statements
(GADTConstructor (GADTConstructor
(Empty) (Empty)
(Identifier) (TypeConstructorIdentifier)
(Context (Context
(Pragma) (Pragma)
(FunctionType (FunctionType
(Type (Type
(StrictType (StrictType
(Identifier) (TypeConstructorIdentifier)
(TypeParameters)) (TypeParameters))
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(Empty)))))))))) (Empty))))))))))

View File

@ -4,83 +4,83 @@
(GADT (GADT
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(Statements (Statements
(Identifier) (TypeVariableIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Statements (Statements
(GADTConstructor (GADTConstructor
(Empty) (Empty)
(Identifier) (TypeConstructorIdentifier)
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier) (TypeVariableIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(Empty)))))))) (Empty))))))))
(GADT (GADT
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(Statements (Statements
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Statements (Statements
(GADTConstructor (GADTConstructor
(Empty) (Empty)
(Identifier) (TypeConstructorIdentifier)
(FunctionType (FunctionType
(Type (Type
(Statements (Statements
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeConstructorIdentifier))
(Empty))) (Empty)))
(Field (Field
(Statements (Statements
(Identifier)) (VariableIdentifier))
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeVariableIdentifier))
(Empty)))) (Empty))))
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(Empty)))))) (Empty))))))
(GADT (GADT
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(Statements (Statements
(Identifier)) (TypeVariableIdentifier))
(KindSignature (KindSignature
(KindFunctionType (KindFunctionType
(Kind (Kind
@ -93,71 +93,71 @@
(GADT (GADT
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(Statements (Statements
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Statements (Statements
(GADTConstructor (GADTConstructor
(Empty) (Empty)
(Identifier) (TypeConstructorIdentifier)
(FunctionType (FunctionType
(Type (Type
(StrictType (StrictType
(QualifiedTypeConstructorIdentifier (QualifiedTypeConstructorIdentifier
(Identifier) (ModuleIdentifier)
(Identifier)) (TypeConstructorIdentifier))
(TypeParameters)) (TypeParameters))
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(QualifiedTypeConstructorIdentifier (QualifiedTypeConstructorIdentifier
(Identifier) (ModuleIdentifier)
(Identifier))) (TypeConstructorIdentifier)))
(Empty)))) (Empty))))
(GADTConstructor (GADTConstructor
(Empty) (Empty)
(Identifier) (TypeConstructorIdentifier)
(FunctionType (FunctionType
(Type (Type
(StrictType (StrictType
(QualifiedTypeConstructorIdentifier (QualifiedTypeConstructorIdentifier
(Identifier) (ModuleIdentifier)
(Identifier)) (TypeConstructorIdentifier))
(TypeParameters)) (TypeParameters))
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(QualifiedTypeConstructorIdentifier (QualifiedTypeConstructorIdentifier
(Identifier) (ModuleIdentifier)
(Identifier))) (TypeConstructorIdentifier)))
(Empty)))) (Empty))))
(GADTConstructor (GADTConstructor
(Empty) (Empty)
(Identifier) (TypeConstructorIdentifier)
(FunctionType (FunctionType
(Type (Type
(StrictType (StrictType
(Identifier) (TypeConstructorIdentifier)
(TypeParameters)) (TypeParameters))
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeConstructorIdentifier))
(Empty)))))) (Empty))))))
(GADT (GADT
(Empty) (Empty)
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(Statements (Statements
(AnnotatedTypeVariable (AnnotatedTypeVariable
(Identifier) (TypeVariableIdentifier)
(KindListType (KindListType
(KindFunctionType (KindFunctionType
(Kind (Kind
@ -165,31 +165,31 @@
(Kind (Kind
(Star))))) (Star)))))
(AnnotatedTypeVariable (AnnotatedTypeVariable
(Identifier) (TypeVariableIdentifier)
(Star))) (Star)))
(Empty)) (Empty))
(Statements (Statements
(GADTConstructor (GADTConstructor
(Empty) (Empty)
(Identifier) (TypeConstructorIdentifier)
(Context (Context
(Pragma) (Pragma)
(FunctionType (FunctionType
(Type (Type
(StrictType (StrictType
(Identifier) (TypeConstructorIdentifier)
(TypeParameters)) (TypeParameters))
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeVariableIdentifier))
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(Empty)))))))))) (Empty))))))))))

View File

@ -1,232 +1,232 @@
(Module (Module
(Identifier) (ModuleIdentifier)
(Statements (Statements
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Integer)+})+})+} {+(Integer)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Integer)+})+})+} {+(Integer)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Integer)+})+})+} {+(Integer)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Integer)+})+})+} {+(Integer)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Integer)+})+})+} {+(Integer)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Integer)+})+})+} {+(Integer)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Identifier)+})+})+} {+(VariableIdentifier)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Identifier)+})+})+} {+(VariableIdentifier)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Identifier)+})+})+} {+(VariableIdentifier)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Identifier)+})+})+} {+(VariableIdentifier)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Identifier)+})+})+} {+(VariableIdentifier)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Identifier)+})+})+} {+(VariableIdentifier)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Identifier)+})+})+} {+(VariableIdentifier)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Identifier)+})+})+} {+(ConstructorIdentifier)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Identifier)+})+})+} {+(ConstructorIdentifier)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Array {+(Array
{+(TextElement)+} {+(TextElement)+}
@ -264,231 +264,231 @@
{+(TextElement)+} {+(TextElement)+}
{+(TextElement)+})+})+})+} {+(TextElement)+})+})+})+}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Integer)-})-})-} {-(Integer)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Integer)-})-})-} {-(Integer)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Integer)-})-})-} {-(Integer)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Integer)-})-})-} {-(Integer)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Integer)-})-})-} {-(Integer)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Integer)-})-})-} {-(Integer)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Identifier)-})-})-} {-(VariableIdentifier)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Identifier)-})-})-} {-(VariableIdentifier)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Identifier)-})-})-} {-(VariableIdentifier)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Identifier)-})-})-} {-(VariableIdentifier)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Identifier)-})-})-} {-(VariableIdentifier)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Identifier)-})-})-} {-(VariableIdentifier)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Identifier)-})-})-} {-(VariableIdentifier)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Identifier)-})-})-} {-(ConstructorIdentifier)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Identifier)-})-})-} {-(ConstructorIdentifier)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Array {-(Array
{-(TextElement)-} {-(TextElement)-}

View File

@ -1,232 +1,234 @@
(Module (Module
(Identifier) (ModuleIdentifier)
(Statements (Statements
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Integer)+})+})+} {+(Integer)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Integer)+})+})+} {+(Integer)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Integer)+})+})+} {+(Integer)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Integer)+})+})+} {+(Integer)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Integer)+})+})+} {+(Integer)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Integer)+})+})+} {+(Integer)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Float)+})+})+} {+(Float)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Identifier)+})+})+} {+(VariableIdentifier)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Identifier)+})+})+} {+(VariableIdentifier)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Identifier)+})+})+} {+(VariableIdentifier)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Identifier)+})+})+} {+(VariableIdentifier)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Identifier)+})+})+} {+(VariableIdentifier)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Identifier)+})+})+} {+(VariableIdentifier)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Identifier)+})+})+} {+(VariableIdentifier)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Identifier)+})+})+} {+(ConstructorIdentifier)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Identifier)+})+})+} {+(ConstructorIdentifier)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements
{+(Character)+})+})+}
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
{+(Character)+}
{-(Integer)-}))
{+(Function
{+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements {+(Statements
{+(Character)+})+})+} {+(Character)+})+})+}
{+(Function {+(Function
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Statements
{+(Character)+})+})+}
{+(Function
{+(Identifier)+}
{+(Statements
{+(Character)+})+})+}
{+(Function
{+(Identifier)+}
{+(Statements {+(Statements
{+(Array {+(Array
{+(TextElement)+} {+(TextElement)+}
@ -264,231 +266,227 @@
{+(TextElement)+} {+(TextElement)+}
{+(TextElement)+})+})+})+} {+(TextElement)+})+})+})+}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Integer)-})-})-} {-(Integer)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Integer)-})-})-} {-(Integer)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Integer)-})-})-} {-(Integer)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Integer)-})-})-} {-(Integer)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Integer)-})-})-} {-(Integer)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements
{-(Integer)-})-})-}
{-(Function
{-(Identifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Float)-})-})-} {-(Float)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Identifier)-})-})-} {-(VariableIdentifier)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Identifier)-})-})-} {-(VariableIdentifier)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Identifier)-})-})-} {-(VariableIdentifier)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Identifier)-})-})-} {-(VariableIdentifier)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Identifier)-})-})-} {-(VariableIdentifier)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Identifier)-})-})-} {-(VariableIdentifier)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Identifier)-})-})-} {-(VariableIdentifier)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Identifier)-})-})-} {-(ConstructorIdentifier)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Identifier)-})-})-} {-(ConstructorIdentifier)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Character)-})-})-} {-(Character)-})-})-}
{-(Function {-(Function
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Statements {-(Statements
{-(Array {-(Array
{-(TextElement)-} {-(TextElement)-}

View File

@ -1,232 +1,232 @@
(Module (Module
(Identifier) (ModuleIdentifier)
(Statements (Statements
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Integer))) (Integer)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Integer))) (Integer)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Integer))) (Integer)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Integer))) (Integer)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Integer))) (Integer)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Integer))) (Integer)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Identifier))) (VariableIdentifier)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Identifier))) (VariableIdentifier)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Identifier))) (VariableIdentifier)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Identifier))) (VariableIdentifier)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Identifier))) (VariableIdentifier)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Identifier))) (VariableIdentifier)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Identifier))) (VariableIdentifier)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Identifier))) (ConstructorIdentifier)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Identifier))) (ConstructorIdentifier)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Array (Array
(TextElement) (TextElement)

View File

@ -1,232 +1,232 @@
(Module (Module
(Identifier) (ModuleIdentifier)
(Statements (Statements
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Integer))) (Integer)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Integer))) (Integer)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Integer))) (Integer)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Integer))) (Integer)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Integer))) (Integer)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Integer))) (Integer)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Float))) (Float)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Identifier))) (VariableIdentifier)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Identifier))) (VariableIdentifier)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Identifier))) (VariableIdentifier)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Identifier))) (VariableIdentifier)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Identifier))) (VariableIdentifier)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Identifier))) (VariableIdentifier)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Identifier))) (VariableIdentifier)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Identifier))) (ConstructorIdentifier)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Identifier))) (ConstructorIdentifier)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Character))) (Character)))
(Function (Function
(Identifier) (VariableIdentifier)
(Statements (Statements
(Array (Array
(TextElement) (TextElement)

View File

@ -1,4 +1,4 @@
(Module (Module
{ (Identifier) { (ModuleIdentifier)
->(Identifier) } ->(ModuleIdentifier) }
(Statements)) (Statements))

View File

@ -1,4 +1,4 @@
(Module (Module
{ (Identifier) { (ModuleIdentifier)
->(Identifier) } ->(ModuleIdentifier) }
(Statements)) (Statements))

View File

@ -1,3 +1,3 @@
(Module (Module
(Identifier) (ModuleIdentifier)
(Statements)) (Statements))

View File

@ -1,3 +1,3 @@
(Module (Module
(Identifier) (ModuleIdentifier)
(Statements)) (Statements))

View File

@ -1,4 +1,4 @@
(Module (Module
{ (Identifier) { (ModuleIdentifier)
->(Identifier) } ->(ModuleIdentifier) }
(Statements)) (Statements))

View File

@ -1,4 +1,4 @@
(Module (Module
{ (Identifier) { (ModuleIdentifier)
->(Identifier) } ->(ModuleIdentifier) }
(Statements)) (Statements))

View File

@ -1,3 +1,3 @@
(Module (Module
(Identifier) (ModuleIdentifier)
(Statements)) (Statements))

View File

@ -1,3 +1,3 @@
(Module (Module
(Identifier) (ModuleIdentifier)
(Statements)) (Statements))

View File

@ -2,8 +2,8 @@
(Empty) (Empty)
(Statements (Statements
(QualifiedModuleIdentifier (QualifiedModuleIdentifier
{ (Identifier) { (ModuleIdentifier)
->(Identifier) } ->(ModuleIdentifier) }
{ (Identifier) { (ModuleIdentifier)
->(Identifier) }) ->(ModuleIdentifier) })
(Statements))) (Statements)))

View File

@ -2,8 +2,8 @@
(Empty) (Empty)
(Statements (Statements
(QualifiedModuleIdentifier (QualifiedModuleIdentifier
{ (Identifier) { (ModuleIdentifier)
->(Identifier) } ->(ModuleIdentifier) }
{ (Identifier) { (ModuleIdentifier)
->(Identifier) }) ->(ModuleIdentifier) })
(Statements))) (Statements)))

View File

@ -2,6 +2,6 @@
(Empty) (Empty)
(Statements (Statements
(QualifiedModuleIdentifier (QualifiedModuleIdentifier
(Identifier) (ModuleIdentifier)
(Identifier)) (ModuleIdentifier))
(Statements))) (Statements)))

View File

@ -2,6 +2,6 @@
(Empty) (Empty)
(Statements (Statements
(QualifiedModuleIdentifier (QualifiedModuleIdentifier
(Identifier) (ModuleIdentifier)
(Identifier)) (ModuleIdentifier))
(Statements))) (Statements)))

View File

@ -1,12 +1,12 @@
(Module (Module
(Identifier) (ModuleIdentifier)
(Export (Export
(TypeConstructorExport (TypeConstructorExport
(VariableOperator (VariableOperator
{ (Identifier) { (VariableSymbol)
->(Identifier) }))) ->(VariableSymbol) })))
(Export (Export
(VariableOperator (VariableOperator
{ (Identifier) { (VariableSymbol)
->(Identifier) })) ->(VariableSymbol) }))
(Statements)) (Statements))

View File

@ -1,12 +1,12 @@
(Module (Module
(Identifier) (ModuleIdentifier)
(Export (Export
(TypeConstructorExport (TypeConstructorExport
(VariableOperator (VariableOperator
{ (Identifier) { (VariableSymbol)
->(Identifier) }))) ->(VariableSymbol) })))
(Export (Export
(VariableOperator (VariableOperator
{ (Identifier) { (VariableSymbol)
->(Identifier) })) ->(VariableSymbol) }))
(Statements)) (Statements))

View File

@ -1,10 +1,10 @@
(Module (Module
(Identifier) (ModuleIdentifier)
(Export (Export
(TypeConstructorExport (TypeConstructorExport
(VariableOperator (VariableOperator
(Identifier)))) (VariableSymbol))))
(Export (Export
(VariableOperator (VariableOperator
(Identifier))) (VariableSymbol)))
(Statements)) (Statements))

View File

@ -1,10 +1,10 @@
(Module (Module
(Identifier) (ModuleIdentifier)
(Export (Export
(TypeConstructorExport (TypeConstructorExport
(VariableOperator (VariableOperator
(Identifier)))) (VariableSymbol))))
(Export (Export
(VariableOperator (VariableOperator
(Identifier))) (VariableSymbol)))
(Statements)) (Statements))

View File

@ -1,28 +1,28 @@
(Module (Module
{ (Identifier) { (ModuleIdentifier)
->(Identifier) } ->(ModuleIdentifier) }
(Export (Export
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(AllConstructors))) (AllConstructors)))
(Export (Export
(TypeConstructorExport (TypeConstructorExport
(ConstructorOperator (ConstructorOperator
{ (Identifier) { (ConstructorSymbol)
->(Identifier) }))) ->(ConstructorSymbol) })))
(Export (Export
(TypeConstructorExport (TypeConstructorExport
(VariableOperator (VariableOperator
{ (Identifier) { (VariableSymbol)
->(Identifier) }))) ->(VariableSymbol) })))
(Export (Export
(Identifier)) (VariableIdentifier))
(Export (Export
(ModuleExport (ModuleExport
{ (Identifier) { (ModuleIdentifier)
->(Identifier) })) ->(ModuleIdentifier) }))
(Export (Export
(TypeConstructorExport (TypeConstructorExport
{ (Identifier) { (ConstructorIdentifier)
->(Identifier) })) ->(ConstructorIdentifier) }))
(Statements)) (Statements))

View File

@ -1,28 +1,28 @@
(Module (Module
{ (Identifier) { (ModuleIdentifier)
->(Identifier) } ->(ModuleIdentifier) }
(Export (Export
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(AllConstructors))) (AllConstructors)))
(Export (Export
(TypeConstructorExport (TypeConstructorExport
(ConstructorOperator (ConstructorOperator
{ (Identifier) { (ConstructorSymbol)
->(Identifier) }))) ->(ConstructorSymbol) })))
(Export (Export
(TypeConstructorExport (TypeConstructorExport
(VariableOperator (VariableOperator
{ (Identifier) { (VariableSymbol)
->(Identifier) }))) ->(VariableSymbol) })))
(Export (Export
(Identifier)) (VariableIdentifier))
(Export (Export
(ModuleExport (ModuleExport
{ (Identifier) { (ModuleIdentifier)
->(Identifier) })) ->(ModuleIdentifier) }))
(Export (Export
(TypeConstructorExport (TypeConstructorExport
{ (Identifier) { (ConstructorIdentifier)
->(Identifier) })) ->(ConstructorIdentifier) }))
(Statements)) (Statements))

View File

@ -1,23 +1,23 @@
(Module (Module
(Identifier) (ModuleIdentifier)
(Export (Export
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(AllConstructors))) (AllConstructors)))
(Export (Export
(TypeConstructorExport (TypeConstructorExport
(ConstructorOperator (ConstructorOperator
(Identifier)))) (ConstructorSymbol))))
(Export (Export
(TypeConstructorExport (TypeConstructorExport
(VariableOperator (VariableOperator
(Identifier)))) (VariableSymbol))))
(Export (Export
(Identifier)) (VariableIdentifier))
(Export (Export
(ModuleExport (ModuleExport
(Identifier))) (ModuleIdentifier)))
(Export (Export
(TypeConstructorExport (TypeConstructorExport
(Identifier))) (ConstructorIdentifier)))
(Statements)) (Statements))

View File

@ -1,23 +1,23 @@
(Module (Module
(Identifier) (ModuleIdentifier)
(Export (Export
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(AllConstructors))) (AllConstructors)))
(Export (Export
(TypeConstructorExport (TypeConstructorExport
(ConstructorOperator (ConstructorOperator
(Identifier)))) (ConstructorSymbol))))
(Export (Export
(TypeConstructorExport (TypeConstructorExport
(VariableOperator (VariableOperator
(Identifier)))) (VariableSymbol))))
(Export (Export
(Identifier)) (VariableIdentifier))
(Export (Export
(ModuleExport (ModuleExport
(Identifier))) (ModuleIdentifier)))
(Export (Export
(TypeConstructorExport (TypeConstructorExport
(Identifier))) (ConstructorIdentifier)))
(Statements)) (Statements))

View File

@ -0,0 +1,6 @@
newtype N = N Int
newtype Show a => N = N a
newtype Age = Age { unAge :: Maybe Int }
newtype Bar a (b :: [* -> *]) c = Foo (a b c)
newtype N = N Int deriving Show
newtype N = N a deriving (Eq, Ord, Enum, Bounded, Show, Read)

View File

@ -0,0 +1,6 @@
newtype O = O Int
newtype Show a => O = O a
newtype Karage = Karage { unKarage :: Maybe Int }
newtype Foo a (b :: [* -> *]) c = Bar (a b c)
newtype O = O Int deriving Show
newtype O = O a deriving (Eq, Ord, Enum, Bounded, Show, Read)

View File

@ -0,0 +1,98 @@
(Module
(Empty)
(Statements
(NewType
(Statements
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) })
(Constructor
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters
(TypeConstructorIdentifier)))
(Empty))
(NewType
(Context'
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(TypeVariableIdentifier)))))
(Statements
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) })
(Constructor
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters
(TypeVariableIdentifier)))
(Empty))
(NewType
(Statements
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) })
(Constructor
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters
(Statements
(Field
(Statements
{ (VariableIdentifier)
->(VariableIdentifier) })
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeConstructorIdentifier))
(Empty))))))
(Empty))
(NewType
(Statements
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
(TypeVariableIdentifier)
(AnnotatedTypeVariable
(TypeVariableIdentifier)
(KindListType
(KindFunctionType
(Kind
(Star))
(Kind
(Star)))))
(TypeVariableIdentifier))
(Constructor
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters
(Statements
(TypeVariableIdentifier)
(TypeVariableIdentifier)
(TypeVariableIdentifier))))
(Empty))
(NewType
(Statements
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) })
(Constructor
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters
(TypeConstructorIdentifier)))
(Deriving
(TypeClassIdentifier)))
(NewType
(Statements
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) })
(Constructor
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters
(TypeVariableIdentifier)))
(Deriving
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)))))

View File

@ -0,0 +1,98 @@
(Module
(Empty)
(Statements
(NewType
(Statements
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) })
(Constructor
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters
(TypeConstructorIdentifier)))
(Empty))
(NewType
(Context'
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(TypeVariableIdentifier)))))
(Statements
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) })
(Constructor
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters
(TypeVariableIdentifier)))
(Empty))
(NewType
(Statements
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) })
(Constructor
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters
(Statements
(Field
(Statements
{ (VariableIdentifier)
->(VariableIdentifier) })
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeConstructorIdentifier))
(Empty))))))
(Empty))
(NewType
(Statements
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
(TypeVariableIdentifier)
(AnnotatedTypeVariable
(TypeVariableIdentifier)
(KindListType
(KindFunctionType
(Kind
(Star))
(Kind
(Star)))))
(TypeVariableIdentifier))
(Constructor
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters
(Statements
(TypeVariableIdentifier)
(TypeVariableIdentifier)
(TypeVariableIdentifier))))
(Empty))
(NewType
(Statements
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) })
(Constructor
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters
(TypeConstructorIdentifier)))
(Deriving
(TypeClassIdentifier)))
(NewType
(Statements
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) })
(Constructor
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters
(TypeVariableIdentifier)))
(Deriving
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)))))

View File

@ -0,0 +1,85 @@
(Module
(Empty)
(Statements
(NewType
(Statements
(TypeConstructorIdentifier))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(TypeConstructorIdentifier)))
(Empty))
(NewType
(Context'
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(TypeVariableIdentifier)))))
(Statements
(TypeConstructorIdentifier))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)))
(Empty))
(NewType
(Statements
(TypeConstructorIdentifier))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(Statements
(Field
(Statements
(VariableIdentifier))
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeConstructorIdentifier))
(Empty))))))
(Empty))
(NewType
(Statements
(TypeConstructorIdentifier)
(TypeVariableIdentifier)
(AnnotatedTypeVariable
(TypeVariableIdentifier)
(KindListType
(KindFunctionType
(Kind
(Star))
(Kind
(Star)))))
(TypeVariableIdentifier))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(Statements
(TypeVariableIdentifier)
(TypeVariableIdentifier)
(TypeVariableIdentifier))))
(Empty))
(NewType
(Statements
(TypeConstructorIdentifier))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(TypeConstructorIdentifier)))
(Deriving
(TypeClassIdentifier)))
(NewType
(Statements
(TypeConstructorIdentifier))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)))
(Deriving
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)))))

View File

@ -0,0 +1,85 @@
(Module
(Empty)
(Statements
(NewType
(Statements
(TypeConstructorIdentifier))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(TypeConstructorIdentifier)))
(Empty))
(NewType
(Context'
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(TypeVariableIdentifier)))))
(Statements
(TypeConstructorIdentifier))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)))
(Empty))
(NewType
(Statements
(TypeConstructorIdentifier))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(Statements
(Field
(Statements
(VariableIdentifier))
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeConstructorIdentifier))
(Empty))))))
(Empty))
(NewType
(Statements
(TypeConstructorIdentifier)
(TypeVariableIdentifier)
(AnnotatedTypeVariable
(TypeVariableIdentifier)
(KindListType
(KindFunctionType
(Kind
(Star))
(Kind
(Star)))))
(TypeVariableIdentifier))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(Statements
(TypeVariableIdentifier)
(TypeVariableIdentifier)
(TypeVariableIdentifier))))
(Empty))
(NewType
(Statements
(TypeConstructorIdentifier))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(TypeConstructorIdentifier)))
(Deriving
(TypeClassIdentifier)))
(NewType
(Statements
(TypeConstructorIdentifier))
(Constructor
(ConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)))
(Deriving
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)))))

View File

@ -1,3 +1,12 @@
bar :: a -> b -> c -> Int -> Maybe Int bar :: a -> b -> c -> Int -> Maybe Int
bar :: a -> b -> c -> [Int] -> Maybe Int bar :: a -> b -> c -> [Int] -> Maybe Int
factorial :: Num a => Show a => a -> a factorial :: Num a => Show a => a -> a
f :: Ex -> Ex
f :: [Int] -> Int
f :: (Int, Int) -> Maybe Int
f :: a -> B c (D (E g ': h)) -> I [J k] (L m (N (O p ': q)))
f :: forall a. [a] -> [a]
f :: forall a b. (a, b) -> [a]
apply :: proxy c -> (forall g . c g => g a -> b) -> Union fs a -> b

View File

@ -1,2 +1,11 @@
foo :: a -> b -> c -> Int -> Maybe Int foo :: a -> b -> c -> Int -> Maybe Int
factorial :: Num a => a -> a factorial :: Num a => a -> a
g :: Ex -> Foo
g :: [Double] -> Int
g :: (Double, Int) -> Maybe Double
g :: b -> B a (D (E g ': h)) -> I [J k] (L m (O (N p ': q)))
g :: forall a. [a] -> [a]
g :: forall a b. (a, b) -> [a]
apply :: proxy d -> (forall g . d g => g a -> b) -> Union fs a -> b

View File

@ -2,98 +2,473 @@
(Empty) (Empty)
(Statements (Statements
(TypeSignature (TypeSignature
{ (Identifier) { (VariableIdentifier)
->(Identifier) } ->(VariableIdentifier) }
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeConstructorIdentifier))
(Empty))))))) (Empty)))))))
{+(TypeSignature {+(TypeSignature
{+(Identifier)+} {+(VariableIdentifier)+}
{+(Context' {+(Context'
{+(Class {+(Statements
{+(Identifier)+} {+(Class
{+(TypeParameters {+(TypeClassIdentifier)+}
{+(Identifier)+})+})+})+} {+(TypeParameters
{+(TypeVariableIdentifier)+})+})+})+})+}
{+(FunctionType {+(FunctionType
{+(Type {+(Type
{+(Identifier)+} {+(TypeVariableIdentifier)+}
{+(TypeParameters)+} {+(TypeParameters)+}
{+(Empty)+})+} {+(Empty)+})+}
{+(Type {+(Type
{+(Identifier)+} {+(TypeVariableIdentifier)+}
{+(TypeParameters)+} {+(TypeParameters)+}
{+(Empty)+})+})+})+} {+(Empty)+})+})+})+}
{+(TypeSignature
{+(VariableIdentifier)+}
{+(FunctionType
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+}
{+(TypeSignature
{+(VariableIdentifier)+}
{+(FunctionType
{+(Type
{+(Array
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+}
{+(TypeSignature
{+(VariableIdentifier)+}
{+(FunctionType
{+(Type
{+(Tuple
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters
{+(TypeConstructorIdentifier)+})+}
{+(Empty)+})+})+})+}
{+(TypeSignature
{+(VariableIdentifier)+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(FunctionType
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters
{+(TypeVariableIdentifier)+}
{+(Statements
{+(TypeConstructorIdentifier)+}
{+(InfixOperatorPattern
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters
{+(TypeVariableIdentifier)+})+}
{+(Empty)+})+}
{+(TypeOperator)+}
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+})+}
{+(Empty)+})+}
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters
{+(Array
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters
{+(TypeVariableIdentifier)+})+}
{+(Empty)+})+})+}
{+(Statements
{+(TypeConstructorIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(Statements
{+(TypeConstructorIdentifier)+}
{+(InfixOperatorPattern
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters
{+(TypeVariableIdentifier)+})+}
{+(Empty)+})+}
{+(TypeOperator)+}
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+})+})+}
{+(Empty)+})+})+})+})+}
{+(TypeSignature
{+(VariableIdentifier)+}
{+(ScopedTypeVariables
{+(TypeVariableIdentifier)+})+}
{+(FunctionType
{+(Type
{+(Array
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(Array
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+}
{+(TypeSignature
{+(VariableIdentifier)+}
{+(ScopedTypeVariables
{+(Statements
{+(TypeVariableIdentifier)+}
{+(TypeVariableIdentifier)+})+})+}
{+(FunctionType
{+(Type
{+(Tuple
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(Array
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+}
{+(TypeSignature
{+(VariableIdentifier)+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters
{+(TypeVariableIdentifier)+})+}
{+(Empty)+})+}
{+(FunctionType
{+(Type
{+(Statements
{+(ScopedTypeVariables
{+(TypeVariableIdentifier)+})+}
{+(Context'
{+(Statements
{+(TypeVariableIdentifier)+}
{+(TypeVariableIdentifier)+})+})+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters
{+(TypeVariableIdentifier)+})+}
{+(Empty)+})+}
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(FunctionType
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters
{+(TypeVariableIdentifier)+}
{+(TypeVariableIdentifier)+})+}
{+(Empty)+})+}
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+})+})+}
{-(TypeSignature {-(TypeSignature
{-(Identifier)-} {-(VariableIdentifier)-}
{-(FunctionType {-(FunctionType
{-(Type {-(Type
{-(Identifier)-} {-(TypeVariableIdentifier)-}
{-(TypeParameters)-} {-(TypeParameters)-}
{-(Empty)-})-} {-(Empty)-})-}
{-(FunctionType {-(FunctionType
{-(Type {-(Type
{-(Identifier)-} {-(TypeVariableIdentifier)-}
{-(TypeParameters)-} {-(TypeParameters)-}
{-(Empty)-})-} {-(Empty)-})-}
{-(FunctionType {-(FunctionType
{-(Type {-(Type
{-(Identifier)-} {-(TypeVariableIdentifier)-}
{-(TypeParameters)-} {-(TypeParameters)-}
{-(Empty)-})-} {-(Empty)-})-}
{-(FunctionType {-(FunctionType
{-(Type {-(Type
{-(Array {-(Array
{-(Type {-(Type
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(TypeParameters)-} {-(TypeParameters)-}
{-(Empty)-})-})-} {-(Empty)-})-})-}
{-(TypeParameters)-} {-(TypeParameters)-}
{-(Empty)-})-} {-(Empty)-})-}
{-(Type {-(Type
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(TypeParameters {-(TypeParameters
{-(Identifier)-})-} {-(TypeConstructorIdentifier)-})-}
{-(Empty)-})-})-})-})-})-})-} {-(Empty)-})-})-})-})-})-})-}
{-(TypeSignature {-(TypeSignature
{-(Identifier)-} {-(VariableIdentifier)-}
{-(Context' {-(Context'
{-(Class {-(Statements
{-(Identifier)-} {-(Class
{-(TypeParameters {-(TypeClassIdentifier)-}
{-(Identifier)-})-})-})-} {-(TypeParameters
{-(TypeVariableIdentifier)-})-})-})-})-}
{-(Context' {-(Context'
{-(Class {-(Statements
{-(Identifier)-} {-(Class
{-(TypeParameters {-(TypeClassIdentifier)-}
{-(Identifier)-})-})-})-} {-(TypeParameters
{-(TypeVariableIdentifier)-})-})-})-})-}
{-(FunctionType {-(FunctionType
{-(Type {-(Type
{-(Identifier)-} {-(TypeVariableIdentifier)-}
{-(TypeParameters)-} {-(TypeParameters)-}
{-(Empty)-})-} {-(Empty)-})-}
{-(Type {-(Type
{-(Identifier)-} {-(TypeVariableIdentifier)-}
{-(TypeParameters)-} {-(TypeParameters)-}
{-(Empty)-})-})-})-})) {-(Empty)-})-})-})-}
{-(TypeSignature
{-(VariableIdentifier)-}
{-(FunctionType
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-}
{-(TypeSignature
{-(VariableIdentifier)-}
{-(FunctionType
{-(Type
{-(Array
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-}
{-(TypeSignature
{-(VariableIdentifier)-}
{-(FunctionType
{-(Type
{-(Tuple
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters
{-(TypeConstructorIdentifier)-})-}
{-(Empty)-})-})-})-}
{-(TypeSignature
{-(VariableIdentifier)-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(FunctionType
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters
{-(TypeVariableIdentifier)-}
{-(Statements
{-(TypeConstructorIdentifier)-}
{-(InfixOperatorPattern
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters
{-(TypeVariableIdentifier)-})-}
{-(Empty)-})-}
{-(TypeOperator)-}
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-})-}
{-(Empty)-})-}
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters
{-(Array
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters
{-(TypeVariableIdentifier)-})-}
{-(Empty)-})-})-}
{-(Statements
{-(TypeConstructorIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(Statements
{-(TypeConstructorIdentifier)-}
{-(InfixOperatorPattern
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters
{-(TypeVariableIdentifier)-})-}
{-(Empty)-})-}
{-(TypeOperator)-}
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-})-})-}
{-(Empty)-})-})-})-})-}
{-(TypeSignature
{-(VariableIdentifier)-}
{-(ScopedTypeVariables
{-(TypeVariableIdentifier)-})-}
{-(FunctionType
{-(Type
{-(Array
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(Array
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-}
{-(TypeSignature
{-(VariableIdentifier)-}
{-(ScopedTypeVariables
{-(Statements
{-(TypeVariableIdentifier)-}
{-(TypeVariableIdentifier)-})-})-}
{-(FunctionType
{-(Type
{-(Tuple
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(Array
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-}
{-(TypeSignature
{-(VariableIdentifier)-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters
{-(TypeVariableIdentifier)-})-}
{-(Empty)-})-}
{-(FunctionType
{-(Type
{-(Statements
{-(ScopedTypeVariables
{-(TypeVariableIdentifier)-})-}
{-(Context'
{-(Statements
{-(TypeVariableIdentifier)-}
{-(TypeVariableIdentifier)-})-})-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters
{-(TypeVariableIdentifier)-})-}
{-(Empty)-})-}
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(FunctionType
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters
{-(TypeVariableIdentifier)-}
{-(TypeVariableIdentifier)-})-}
{-(Empty)-})-}
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-})-})-}))

View File

@ -2,82 +2,465 @@
(Empty) (Empty)
(Statements (Statements
(TypeSignature (TypeSignature
{ (Identifier) { (VariableIdentifier)
->(Identifier) } ->(VariableIdentifier) }
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeConstructorIdentifier))
(Empty))))))) (Empty)))))))
{+(TypeSignature {+(TypeSignature
{+(Identifier)+} {+(VariableIdentifier)+}
{+(FunctionType {+(FunctionType
{+(Type {+(Type
{+(Identifier)+} {+(TypeVariableIdentifier)+}
{+(TypeParameters)+} {+(TypeParameters)+}
{+(Empty)+})+} {+(Empty)+})+}
{+(FunctionType {+(FunctionType
{+(Type {+(Type
{+(Identifier)+} {+(TypeVariableIdentifier)+}
{+(TypeParameters)+} {+(TypeParameters)+}
{+(Empty)+})+} {+(Empty)+})+}
{+(FunctionType {+(FunctionType
{+(Type {+(Type
{+(Identifier)+} {+(TypeVariableIdentifier)+}
{+(TypeParameters)+} {+(TypeParameters)+}
{+(Empty)+})+} {+(Empty)+})+}
{+(FunctionType {+(FunctionType
{+(Type {+(Type
{+(Array {+(Array
{+(Type {+(Type
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(TypeParameters)+} {+(TypeParameters)+}
{+(Empty)+})+})+} {+(Empty)+})+})+}
{+(TypeParameters)+} {+(TypeParameters)+}
{+(Empty)+})+} {+(Empty)+})+}
{+(Type {+(Type
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(TypeParameters {+(TypeParameters
{+(Identifier)+})+} {+(TypeConstructorIdentifier)+})+}
{+(Empty)+})+})+})+})+})+})+} {+(Empty)+})+})+})+})+})+})+}
(TypeSignature {+(TypeSignature
(Identifier) {+(VariableIdentifier)+}
(Context'
(Class
(Identifier)
(TypeParameters
(Identifier))))
{+(Context' {+(Context'
{+(Class {+(Statements
{+(Identifier)+} {+(Class
{+(TypeParameters {+(TypeClassIdentifier)+}
{+(Identifier)+})+})+})+} {+(TypeParameters
{+(TypeVariableIdentifier)+})+})+})+})+}
{+(Context'
{+(Statements
{+(Class
{+(TypeClassIdentifier)+}
{+(TypeParameters
{+(TypeVariableIdentifier)+})+})+})+})+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+}
{+(TypeSignature
{+(VariableIdentifier)+}
{+(FunctionType
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+}
(TypeSignature
{ (VariableIdentifier)
->(VariableIdentifier) }
{-(Context'
{-(Statements
{-(Class
{-(TypeClassIdentifier)-}
{-(TypeParameters
{-(TypeVariableIdentifier)-})-})-})-})-}
(FunctionType (FunctionType
(Type (Type
(Identifier) { (TypeVariableIdentifier)
->(Array
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}) }
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) { (TypeVariableIdentifier)
->(TypeConstructorIdentifier) }
(TypeParameters) (TypeParameters)
(Empty)))))) (Empty))))
{+(TypeSignature
{+(VariableIdentifier)+}
{+(FunctionType
{+(Type
{+(Tuple
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters
{+(TypeConstructorIdentifier)+})+}
{+(Empty)+})+})+})+}
{+(TypeSignature
{+(VariableIdentifier)+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(FunctionType
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters
{+(TypeVariableIdentifier)+}
{+(Statements
{+(TypeConstructorIdentifier)+}
{+(InfixOperatorPattern
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters
{+(TypeVariableIdentifier)+})+}
{+(Empty)+})+}
{+(TypeOperator)+}
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+})+}
{+(Empty)+})+}
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters
{+(Array
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters
{+(TypeVariableIdentifier)+})+}
{+(Empty)+})+})+}
{+(Statements
{+(TypeConstructorIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(Statements
{+(TypeConstructorIdentifier)+}
{+(InfixOperatorPattern
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters
{+(TypeVariableIdentifier)+})+}
{+(Empty)+})+}
{+(TypeOperator)+}
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+})+})+}
{+(Empty)+})+})+})+})+}
{+(TypeSignature
{+(VariableIdentifier)+}
{+(ScopedTypeVariables
{+(TypeVariableIdentifier)+})+}
{+(FunctionType
{+(Type
{+(Array
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(Array
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+}
{+(TypeSignature
{+(VariableIdentifier)+}
{+(ScopedTypeVariables
{+(Statements
{+(TypeVariableIdentifier)+}
{+(TypeVariableIdentifier)+})+})+}
{+(FunctionType
{+(Type
{+(Tuple
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(Array
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+}
{+(TypeSignature
{+(VariableIdentifier)+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters
{+(TypeVariableIdentifier)+})+}
{+(Empty)+})+}
{+(FunctionType
{+(Type
{+(Statements
{+(ScopedTypeVariables
{+(TypeVariableIdentifier)+})+}
{+(Context'
{+(Statements
{+(TypeVariableIdentifier)+}
{+(TypeVariableIdentifier)+})+})+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters
{+(TypeVariableIdentifier)+})+}
{+(Empty)+})+}
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(FunctionType
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters
{+(TypeVariableIdentifier)+}
{+(TypeVariableIdentifier)+})+}
{+(Empty)+})+}
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+})+})+}
{-(TypeSignature
{-(VariableIdentifier)-}
{-(FunctionType
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-}
{-(TypeSignature
{-(VariableIdentifier)-}
{-(FunctionType
{-(Type
{-(Array
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-}
{-(TypeSignature
{-(VariableIdentifier)-}
{-(FunctionType
{-(Type
{-(Tuple
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters
{-(TypeConstructorIdentifier)-})-}
{-(Empty)-})-})-})-}
{-(TypeSignature
{-(VariableIdentifier)-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(FunctionType
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters
{-(TypeVariableIdentifier)-}
{-(Statements
{-(TypeConstructorIdentifier)-}
{-(InfixOperatorPattern
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters
{-(TypeVariableIdentifier)-})-}
{-(Empty)-})-}
{-(TypeOperator)-}
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-})-}
{-(Empty)-})-}
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters
{-(Array
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters
{-(TypeVariableIdentifier)-})-}
{-(Empty)-})-})-}
{-(Statements
{-(TypeConstructorIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(Statements
{-(TypeConstructorIdentifier)-}
{-(InfixOperatorPattern
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters
{-(TypeVariableIdentifier)-})-}
{-(Empty)-})-}
{-(TypeOperator)-}
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-})-})-}
{-(Empty)-})-})-})-})-}
{-(TypeSignature
{-(VariableIdentifier)-}
{-(ScopedTypeVariables
{-(TypeVariableIdentifier)-})-}
{-(FunctionType
{-(Type
{-(Array
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(Array
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-}
{-(TypeSignature
{-(VariableIdentifier)-}
{-(ScopedTypeVariables
{-(Statements
{-(TypeVariableIdentifier)-}
{-(TypeVariableIdentifier)-})-})-}
{-(FunctionType
{-(Type
{-(Tuple
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(Array
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-}
{-(TypeSignature
{-(VariableIdentifier)-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters
{-(TypeVariableIdentifier)-})-}
{-(Empty)-})-}
{-(FunctionType
{-(Type
{-(Statements
{-(ScopedTypeVariables
{-(TypeVariableIdentifier)-})-}
{-(Context'
{-(Statements
{-(TypeVariableIdentifier)-}
{-(TypeVariableIdentifier)-})-})-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters
{-(TypeVariableIdentifier)-})-}
{-(Empty)-})-}
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(FunctionType
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters
{-(TypeVariableIdentifier)-}
{-(TypeVariableIdentifier)-})-}
{-(Empty)-})-}
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-})-})-}))

View File

@ -2,81 +2,269 @@
(Empty) (Empty)
(Statements (Statements
(TypeSignature (TypeSignature
(Identifier) (VariableIdentifier)
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeConstructorIdentifier))
(Empty))))))) (Empty)))))))
(TypeSignature (TypeSignature
(Identifier) (VariableIdentifier)
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Array (Array
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty))) (Empty)))
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeConstructorIdentifier))
(Empty))))))) (Empty)))))))
(TypeSignature (TypeSignature
(Identifier) (VariableIdentifier)
(Context' (Context'
(Class (Statements
(Identifier) (Class
(TypeParameters (TypeClassIdentifier)
(Identifier)))) (TypeParameters
(TypeVariableIdentifier)))))
(Context' (Context'
(Class (Statements
(Identifier) (Class
(TypeParameters (TypeClassIdentifier)
(Identifier)))) (TypeParameters
(TypeVariableIdentifier)))))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)))))) (Empty))))
(TypeSignature
(VariableIdentifier)
(FunctionType
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))))
(TypeSignature
(VariableIdentifier)
(FunctionType
(Type
(Array
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))
(TypeParameters)
(Empty))
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))))
(TypeSignature
(VariableIdentifier)
(FunctionType
(Type
(Tuple
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))
(TypeParameters)
(Empty))
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeConstructorIdentifier))
(Empty))))
(TypeSignature
(VariableIdentifier)
(FunctionType
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(FunctionType
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)
(Statements
(TypeConstructorIdentifier)
(InfixOperatorPattern
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier))
(Empty))
(TypeOperator)
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty)))))
(Empty))
(Type
(TypeConstructorIdentifier)
(TypeParameters
(Array
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier))
(Empty)))
(Statements
(TypeConstructorIdentifier)
(TypeVariableIdentifier)
(Statements
(TypeConstructorIdentifier)
(InfixOperatorPattern
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier))
(Empty))
(TypeOperator)
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty))))))
(Empty)))))
(TypeSignature
(VariableIdentifier)
(ScopedTypeVariables
(TypeVariableIdentifier))
(FunctionType
(Type
(Array
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty)))
(TypeParameters)
(Empty))
(Type
(Array
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty)))
(TypeParameters)
(Empty))))
(TypeSignature
(VariableIdentifier)
(ScopedTypeVariables
(Statements
(TypeVariableIdentifier)
(TypeVariableIdentifier)))
(FunctionType
(Type
(Tuple
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty)))
(TypeParameters)
(Empty))
(Type
(Array
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty)))
(TypeParameters)
(Empty))))
(TypeSignature
(VariableIdentifier)
(FunctionType
(Type
(TypeVariableIdentifier)
(TypeParameters
(TypeVariableIdentifier))
(Empty))
(FunctionType
(Type
(Statements
(ScopedTypeVariables
(TypeVariableIdentifier))
(Context'
(Statements
(TypeVariableIdentifier)
(TypeVariableIdentifier)))
(FunctionType
(Type
(TypeVariableIdentifier)
(TypeParameters
(TypeVariableIdentifier))
(Empty))
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty))))
(TypeParameters)
(Empty))
(FunctionType
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)
(TypeVariableIdentifier))
(Empty))
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty))))))))

View File

@ -2,45 +2,232 @@
(Empty) (Empty)
(Statements (Statements
(TypeSignature (TypeSignature
(Identifier) (VariableIdentifier)
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeConstructorIdentifier))
(Empty))))))) (Empty)))))))
(TypeSignature (TypeSignature
(Identifier) (VariableIdentifier)
(Context' (Context'
(Class (Statements
(Identifier) (Class
(TypeParameters (TypeClassIdentifier)
(Identifier)))) (TypeParameters
(TypeVariableIdentifier)))))
(FunctionType (FunctionType
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeVariableIdentifier)
(TypeParameters) (TypeParameters)
(Empty)))))) (Empty))))
(TypeSignature
(VariableIdentifier)
(FunctionType
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))))
(TypeSignature
(VariableIdentifier)
(FunctionType
(Type
(Array
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))
(TypeParameters)
(Empty))
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))))
(TypeSignature
(VariableIdentifier)
(FunctionType
(Type
(Tuple
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))
(TypeParameters)
(Empty))
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeConstructorIdentifier))
(Empty))))
(TypeSignature
(VariableIdentifier)
(FunctionType
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(FunctionType
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)
(Statements
(TypeConstructorIdentifier)
(InfixOperatorPattern
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier))
(Empty))
(TypeOperator)
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty)))))
(Empty))
(Type
(TypeConstructorIdentifier)
(TypeParameters
(Array
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier))
(Empty)))
(Statements
(TypeConstructorIdentifier)
(TypeVariableIdentifier)
(Statements
(TypeConstructorIdentifier)
(InfixOperatorPattern
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier))
(Empty))
(TypeOperator)
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty))))))
(Empty)))))
(TypeSignature
(VariableIdentifier)
(ScopedTypeVariables
(TypeVariableIdentifier))
(FunctionType
(Type
(Array
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty)))
(TypeParameters)
(Empty))
(Type
(Array
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty)))
(TypeParameters)
(Empty))))
(TypeSignature
(VariableIdentifier)
(ScopedTypeVariables
(Statements
(TypeVariableIdentifier)
(TypeVariableIdentifier)))
(FunctionType
(Type
(Tuple
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty)))
(TypeParameters)
(Empty))
(Type
(Array
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty)))
(TypeParameters)
(Empty))))
(TypeSignature
(VariableIdentifier)
(FunctionType
(Type
(TypeVariableIdentifier)
(TypeParameters
(TypeVariableIdentifier))
(Empty))
(FunctionType
(Type
(Statements
(ScopedTypeVariables
(TypeVariableIdentifier))
(Context'
(Statements
(TypeVariableIdentifier)
(TypeVariableIdentifier)))
(FunctionType
(Type
(TypeVariableIdentifier)
(TypeParameters
(TypeVariableIdentifier))
(Empty))
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty))))
(TypeParameters)
(Empty))
(FunctionType
(Type
(TypeConstructorIdentifier)
(TypeParameters
(TypeVariableIdentifier)
(TypeVariableIdentifier))
(Empty))
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty))))))))

View File

@ -3,99 +3,99 @@
(Statements (Statements
(TypeSynonym (TypeSynonym
(Statements (Statements
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) }) ->(TypeConstructorIdentifier) })
(TypePattern (TypePattern
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) })) ->(TypeConstructorIdentifier) }))
(TypeSynonym (TypeSynonym
(Statements (Statements
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) }) ->(TypeConstructorIdentifier) })
(TypePattern (TypePattern
(ListConstructor))) (ListConstructor)))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier) (TypeVariableIdentifier)
{+(Identifier)+}) {+(TypeVariableIdentifier)+})
(TypePattern (TypePattern
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier) (TypeVariableIdentifier)
{+(Identifier)+}))) {+(TypeVariableIdentifier)+})))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier)) (TypeVariableIdentifier))
(TypePattern (TypePattern
(Array (Array
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters (TypeParameters
(Identifier)) (TypeVariableIdentifier))
(Empty))))) (Empty)))))
(TypeSynonym (TypeSynonym
(Statements (Statements
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) }) ->(TypeConstructorIdentifier) })
(TypePattern (TypePattern
(UnitConstructor))) (UnitConstructor)))
{-(TypeSynonym {-(TypeSynonym
{-(Statements {-(Statements
{-(Identifier)-})-} {-(TypeConstructorIdentifier)-})-}
{-(TypePattern {-(TypePattern
{-(TupleConstructor)-})-})-} {-(TupleConstructor)-})-})-}
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier)) (TypeConstructorIdentifier))
(TypePattern (TypePattern
(TupleConstructor))) (TupleConstructor)))
(TypeSynonym
(Statements
(Identifier))
(TypePattern
{ (FunctionConstructor)
->(TupleConstructor) }))
{+(TypeSynonym {+(TypeSynonym
{+(Statements {+(Statements
{+(Identifier)+})+} {+(TypeConstructorIdentifier)+})+}
{+(TypePattern {+(TypePattern
{+(FunctionConstructor)+})+})+} {+(TupleConstructor)+})+})+}
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier)) { (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) })
(TypePattern
(FunctionConstructor)))
(TypeSynonym
(Statements
(TypeConstructorIdentifier))
(TypePattern (TypePattern
(InfixOperatorPattern (InfixOperatorPattern
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters (TypeParameters
{+(Statements {+(Statements
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(Identifier)+})+}) {+(TypeConstructorIdentifier)+})+})
(Empty)) (Empty))
(Identifier) (TypeOperator)
(Type (Type
(InfixOperatorPattern (InfixOperatorPattern
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeConstructorIdentifier))
(Empty)) (Empty))
(Identifier) (TypeOperator)
(Type (Type
(InfixOperatorPattern (InfixOperatorPattern
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters (TypeParameters
{-(Statements {-(Statements
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(Identifier)-})-}) {-(TypeConstructorIdentifier)-})-})
(Empty)) (Empty))
(Identifier) (TypeOperator)
(Type (Type
(QuotedName (QuotedName
(ListConstructor)) (ListConstructor))
@ -107,84 +107,85 @@
(Empty))))) (Empty)))))
(TypeSynonym (TypeSynonym
(Statements (Statements
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(Identifier) (TypeVariableIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(TypePattern (TypePattern
(QuotedName (QuotedName
(Array (Array
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier))) (TypeVariableIdentifier)))
(Empty)))))) (Empty))))))
(TypeSynonym (TypeSynonym
(Statements (Statements
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
(Identifier) (TypeConstructorIdentifier)
{+(Identifier)+}) {+(TypeConstructorIdentifier)+})
(TextElement)) (TextElement))
(TypeSynonym (TypeSynonym
(Statements (Statements
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(Statements (Statements
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(Identifier) (TypeVariableIdentifier)
(Identifier))) (TypeVariableIdentifier)))
(TypePattern (TypePattern
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier)))) (TypeVariableIdentifier))))
(TypeSynonym (TypeSynonym
(Statements (Statements
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) }) ->(TypeConstructorIdentifier) })
(Context' (Context'
(Identifier)) (Statements
(TypeConstructorIdentifier)))
(TypePattern (TypePattern
(Statements (Statements
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(ListConstructor)))) (ListConstructor))))
(TypeSynonym (TypeSynonym
(Statements (Statements
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(ScopedTypeVariables (ScopedTypeVariables
(Statements (Statements
(Identifier) (TypeVariableIdentifier)
(Identifier))) (TypeVariableIdentifier)))
(TypePattern (TypePattern
(Statements (Statements
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(Identifier) (TypeVariableIdentifier)
(Identifier)))) (TypeVariableIdentifier))))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Statements (Statements
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(Identifier) (TypeVariableIdentifier)
(Identifier))) (TypeVariableIdentifier)))
(TypePattern (TypePattern
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Statements (Statements
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(Identifier) (TypeVariableIdentifier)
(Identifier))))))) (TypeVariableIdentifier)))))))

View File

@ -3,89 +3,88 @@
(Statements (Statements
(TypeSynonym (TypeSynonym
(Statements (Statements
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) }) ->(TypeConstructorIdentifier) })
(TypePattern (TypePattern
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) })) ->(TypeConstructorIdentifier) }))
(TypeSynonym (TypeSynonym
(Statements (Statements
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) }) ->(TypeConstructorIdentifier) })
(TypePattern (TypePattern
(ListConstructor))) (ListConstructor)))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier) (TypeVariableIdentifier)
{-(Identifier)-}) {-(TypeVariableIdentifier)-})
(TypePattern (TypePattern
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier) (TypeVariableIdentifier)
{-(Identifier)-}))) {-(TypeVariableIdentifier)-})))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier)) (TypeVariableIdentifier))
(TypePattern (TypePattern
(Array (Array
(Type (Type
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) } ->(TypeConstructorIdentifier) }
(TypeParameters (TypeParameters
(Identifier)) (TypeVariableIdentifier))
(Empty))))) (Empty)))))
(TypeSynonym (TypeSynonym
(Statements (Statements
{ (Identifier) { (TypeConstructorIdentifier)
->(Identifier) }) ->(TypeConstructorIdentifier) })
(TypePattern (TypePattern
(UnitConstructor))) (UnitConstructor)))
{+(TypeSynonym {+(TypeSynonym
{+(Statements {+(Statements
{+(Identifier)+})+} {+(TypeConstructorIdentifier)+})+}
{+(TypePattern {+(TypePattern
{+(TupleConstructor)+})+})+} {+(TupleConstructor)+})+})+}
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier)) (TypeConstructorIdentifier))
(TypePattern (TypePattern
(TupleConstructor))) (TupleConstructor)))
(TypeSynonym
(Statements
(Identifier))
(TypePattern
{ (TupleConstructor)
->(FunctionConstructor) }))
{+(TypeSynonym {+(TypeSynonym
{+(Statements {+(Statements
{+(Identifier)+})+} {+(TypeConstructorIdentifier)+})+}
{+(TypePattern
{+(FunctionConstructor)+})+})+}
{+(TypeSynonym
{+(Statements
{+(TypeConstructorIdentifier)+})+}
{+(TypePattern {+(TypePattern
{+(InfixOperatorPattern {+(InfixOperatorPattern
{+(Type {+(Type
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(TypeParameters)+} {+(TypeParameters)+}
{+(Empty)+})+} {+(Empty)+})+}
{+(Identifier)+} {+(TypeOperator)+}
{+(Type {+(Type
{+(InfixOperatorPattern {+(InfixOperatorPattern
{+(Type {+(Type
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(TypeParameters {+(TypeParameters
{+(Identifier)+})+} {+(TypeConstructorIdentifier)+})+}
{+(Empty)+})+} {+(Empty)+})+}
{+(Identifier)+} {+(TypeOperator)+}
{+(Type {+(Type
{+(InfixOperatorPattern {+(InfixOperatorPattern
{+(Type {+(Type
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(TypeParameters {+(TypeParameters
{+(Statements {+(Statements
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(Identifier)+})+})+} {+(TypeConstructorIdentifier)+})+})+}
{+(Empty)+})+} {+(Empty)+})+}
{+(Identifier)+} {+(TypeOperator)+}
{+(Type {+(Type
{+(QuotedName {+(QuotedName
{+(ListConstructor)+})+} {+(ListConstructor)+})+}
@ -97,108 +96,116 @@
{+(Empty)+})+})+})+})+} {+(Empty)+})+})+})+})+}
{+(TypeSynonym {+(TypeSynonym
{+(Statements {+(Statements
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(Identifier)+} {+(TypeVariableIdentifier)+}
{+(Identifier)+} {+(TypeVariableIdentifier)+}
{+(Identifier)+})+} {+(TypeVariableIdentifier)+})+}
{+(TypePattern {+(TypePattern
{+(QuotedName {+(QuotedName
{+(Array {+(Array
{+(Type {+(Type
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(TypeParameters)+} {+(TypeParameters)+}
{+(Empty)+})+} {+(Empty)+})+}
{+(Type {+(Type
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(TypeParameters {+(TypeParameters
{+(Statements {+(Statements
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(Identifier)+})+})+} {+(TypeVariableIdentifier)+})+})+}
{+(Empty)+})+})+})+})+})+} {+(Empty)+})+})+})+})+})+}
(TypeSynonym
(Statements
{ (Identifier)
->(Identifier) }
{+(Identifier)+})
{ (TypePattern
{-(FunctionConstructor)-})
->(TextElement) })
{+(TypeSynonym {+(TypeSynonym
{+(Statements {+(Statements
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(TypeConstructorIdentifier)+})+}
{+(TextElement)+})+}
{+(TypeSynonym
{+(Statements
{+(TypeConstructorIdentifier)+}
{+(Statements {+(Statements
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(Identifier)+} {+(TypeVariableIdentifier)+}
{+(Identifier)+})+})+} {+(TypeVariableIdentifier)+})+})+}
{+(TypePattern {+(TypePattern
{+(Statements {+(Statements
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(Identifier)+} {+(TypeVariableIdentifier)+}
{+(Identifier)+})+})+})+} {+(TypeVariableIdentifier)+})+})+})+}
{+(TypeSynonym {+(TypeSynonym
{+(Statements {+(Statements
{+(Identifier)+})+} {+(TypeConstructorIdentifier)+})+}
{+(Context' {+(Context'
{+(Identifier)+})+} {+(Statements
{+(TypeConstructorIdentifier)+})+})+}
{+(TypePattern {+(TypePattern
{+(Statements {+(Statements
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(ListConstructor)+})+})+})+} {+(ListConstructor)+})+})+})+}
{+(TypeSynonym {+(TypeSynonym
{+(Statements {+(Statements
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(Identifier)+} {+(TypeVariableIdentifier)+}
{+(Identifier)+})+} {+(TypeVariableIdentifier)+})+}
{+(ScopedTypeVariables {+(ScopedTypeVariables
{+(Statements {+(Statements
{+(Identifier)+} {+(TypeVariableIdentifier)+}
{+(Identifier)+})+})+} {+(TypeVariableIdentifier)+})+})+}
{+(TypePattern {+(TypePattern
{+(Statements {+(Statements
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(Identifier)+} {+(TypeVariableIdentifier)+}
{+(Identifier)+})+})+})+} {+(TypeVariableIdentifier)+})+})+})+}
{+(TypeSynonym {+(TypeSynonym
{+(Statements {+(Statements
{+(Statements {+(Statements
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(Identifier)+} {+(TypeVariableIdentifier)+}
{+(Identifier)+})+})+} {+(TypeVariableIdentifier)+})+})+}
{+(TypePattern {+(TypePattern
{+(Statements {+(Statements
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(Statements {+(Statements
{+(Identifier)+} {+(TypeConstructorIdentifier)+}
{+(Identifier)+} {+(TypeVariableIdentifier)+}
{+(Identifier)+})+})+})+})+} {+(TypeVariableIdentifier)+})+})+})+})+}
{-(TypeSynonym {-(TypeSynonym
{-(Statements {-(Statements
{-(Identifier)-})-} {-(TypeConstructorIdentifier)-})-}
{-(TypePattern
{-(TupleConstructor)-})-})-}
{-(TypeSynonym
{-(Statements
{-(TypeConstructorIdentifier)-})-}
{-(TypePattern
{-(FunctionConstructor)-})-})-}
{-(TypeSynonym
{-(Statements
{-(TypeConstructorIdentifier)-})-}
{-(TypePattern {-(TypePattern
{-(InfixOperatorPattern {-(InfixOperatorPattern
{-(Type {-(Type
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(TypeParameters {-(TypeParameters
{-(Statements {-(Statements
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(Identifier)-})-})-} {-(TypeConstructorIdentifier)-})-})-}
{-(Empty)-})-} {-(Empty)-})-}
{-(Identifier)-} {-(TypeOperator)-}
{-(Type {-(Type
{-(InfixOperatorPattern {-(InfixOperatorPattern
{-(Type {-(Type
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(TypeParameters {-(TypeParameters
{-(Identifier)-})-} {-(TypeConstructorIdentifier)-})-}
{-(Empty)-})-} {-(Empty)-})-}
{-(Identifier)-} {-(TypeOperator)-}
{-(Type {-(Type
{-(InfixOperatorPattern {-(InfixOperatorPattern
{-(Type {-(Type
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(TypeParameters)-} {-(TypeParameters)-}
{-(Empty)-})-} {-(Empty)-})-}
{-(Identifier)-} {-(TypeOperator)-}
{-(Type {-(Type
{-(QuotedName {-(QuotedName
{-(ListConstructor)-})-} {-(ListConstructor)-})-}
@ -210,74 +217,75 @@
{-(Empty)-})-})-})-})-} {-(Empty)-})-})-})-})-}
{-(TypeSynonym {-(TypeSynonym
{-(Statements {-(Statements
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(Identifier)-} {-(TypeVariableIdentifier)-}
{-(Identifier)-} {-(TypeVariableIdentifier)-}
{-(Identifier)-})-} {-(TypeVariableIdentifier)-})-}
{-(TypePattern {-(TypePattern
{-(QuotedName {-(QuotedName
{-(Array {-(Array
{-(Type {-(Type
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(TypeParameters)-} {-(TypeParameters)-}
{-(Empty)-})-} {-(Empty)-})-}
{-(Type {-(Type
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(TypeParameters {-(TypeParameters
{-(Statements {-(Statements
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(Identifier)-})-})-} {-(TypeVariableIdentifier)-})-})-}
{-(Empty)-})-})-})-})-})-} {-(Empty)-})-})-})-})-})-}
{-(TypeSynonym {-(TypeSynonym
{-(Statements {-(Statements
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(Identifier)-})-} {-(TypeConstructorIdentifier)-})-}
{-(TextElement)-})-} {-(TextElement)-})-}
{-(TypeSynonym {-(TypeSynonym
{-(Statements {-(Statements
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(Statements {-(Statements
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(Identifier)-} {-(TypeVariableIdentifier)-}
{-(Identifier)-})-})-} {-(TypeVariableIdentifier)-})-})-}
{-(TypePattern {-(TypePattern
{-(Statements {-(Statements
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(Identifier)-} {-(TypeVariableIdentifier)-}
{-(Identifier)-})-})-})-} {-(TypeVariableIdentifier)-})-})-})-}
{-(TypeSynonym {-(TypeSynonym
{-(Statements {-(Statements
{-(Identifier)-})-} {-(TypeConstructorIdentifier)-})-}
{-(Context' {-(Context'
{-(Identifier)-})-} {-(Statements
{-(TypeConstructorIdentifier)-})-})-}
{-(TypePattern {-(TypePattern
{-(Statements {-(Statements
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(ListConstructor)-})-})-})-} {-(ListConstructor)-})-})-})-}
{-(TypeSynonym {-(TypeSynonym
{-(Statements {-(Statements
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(Identifier)-} {-(TypeVariableIdentifier)-}
{-(Identifier)-})-} {-(TypeVariableIdentifier)-})-}
{-(ScopedTypeVariables {-(ScopedTypeVariables
{-(Statements {-(Statements
{-(Identifier)-} {-(TypeVariableIdentifier)-}
{-(Identifier)-})-})-} {-(TypeVariableIdentifier)-})-})-}
{-(TypePattern {-(TypePattern
{-(Statements {-(Statements
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(Identifier)-} {-(TypeVariableIdentifier)-}
{-(Identifier)-})-})-})-} {-(TypeVariableIdentifier)-})-})-})-}
{-(TypeSynonym {-(TypeSynonym
{-(Statements {-(Statements
{-(Statements {-(Statements
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(Identifier)-} {-(TypeVariableIdentifier)-}
{-(Identifier)-})-})-} {-(TypeVariableIdentifier)-})-})-}
{-(TypePattern {-(TypePattern
{-(Statements {-(Statements
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(Statements {-(Statements
{-(Identifier)-} {-(TypeConstructorIdentifier)-}
{-(Identifier)-} {-(TypeVariableIdentifier)-}
{-(Identifier)-})-})-})-})-})) {-(TypeVariableIdentifier)-})-})-})-})-}))

View File

@ -3,81 +3,81 @@
(Statements (Statements
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier)) (TypeConstructorIdentifier))
(TypePattern (TypePattern
(Identifier))) (TypeConstructorIdentifier)))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier)) (TypeConstructorIdentifier))
(TypePattern (TypePattern
(ListConstructor))) (ListConstructor)))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier)) (TypeVariableIdentifier))
(TypePattern (TypePattern
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier)))) (TypeVariableIdentifier))))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier)) (TypeVariableIdentifier))
(TypePattern (TypePattern
(Array (Array
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeVariableIdentifier))
(Empty))))) (Empty)))))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier)) (TypeConstructorIdentifier))
(TypePattern (TypePattern
(UnitConstructor))) (UnitConstructor)))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier)) (TypeConstructorIdentifier))
(TypePattern (TypePattern
(TupleConstructor))) (TupleConstructor)))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier)) (TypeConstructorIdentifier))
(TypePattern (TypePattern
(TupleConstructor))) (TupleConstructor)))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier)) (TypeConstructorIdentifier))
(TypePattern (TypePattern
(FunctionConstructor))) (FunctionConstructor)))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier)) (TypeConstructorIdentifier))
(TypePattern (TypePattern
(InfixOperatorPattern (InfixOperatorPattern
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Identifier) (TypeOperator)
(Type (Type
(InfixOperatorPattern (InfixOperatorPattern
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeConstructorIdentifier))
(Empty)) (Empty))
(Identifier) (TypeOperator)
(Type (Type
(InfixOperatorPattern (InfixOperatorPattern
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier))) (TypeConstructorIdentifier)))
(Empty)) (Empty))
(Identifier) (TypeOperator)
(Type (Type
(QuotedName (QuotedName
(ListConstructor)) (ListConstructor))
@ -89,74 +89,75 @@
(Empty))))) (Empty)))))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(TypePattern (TypePattern
(QuotedName (QuotedName
(Array (Array
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier))) (TypeVariableIdentifier)))
(Empty)))))) (Empty))))))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier)) (TypeConstructorIdentifier))
(TextElement)) (TextElement))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier))) (TypeVariableIdentifier)))
(TypePattern (TypePattern
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier)))) (TypeVariableIdentifier))))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier)) (TypeConstructorIdentifier))
(Context' (Context'
(Identifier)) (Statements
(TypeConstructorIdentifier)))
(TypePattern (TypePattern
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(ListConstructor)))) (ListConstructor))))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(ScopedTypeVariables (ScopedTypeVariables
(Statements (Statements
(Identifier) (TypeVariableIdentifier)
(Identifier))) (TypeVariableIdentifier)))
(TypePattern (TypePattern
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier)))) (TypeVariableIdentifier))))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier))) (TypeVariableIdentifier)))
(TypePattern (TypePattern
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier))))))) (TypeVariableIdentifier)))))))

View File

@ -3,83 +3,83 @@
(Statements (Statements
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier)) (TypeConstructorIdentifier))
(TypePattern (TypePattern
(Identifier))) (TypeConstructorIdentifier)))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier)) (TypeConstructorIdentifier))
(TypePattern (TypePattern
(ListConstructor))) (ListConstructor)))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(TypePattern (TypePattern
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier)))) (TypeVariableIdentifier))))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier)) (TypeVariableIdentifier))
(TypePattern (TypePattern
(Array (Array
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeVariableIdentifier))
(Empty))))) (Empty)))))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier)) (TypeConstructorIdentifier))
(TypePattern (TypePattern
(UnitConstructor))) (UnitConstructor)))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier)) (TypeConstructorIdentifier))
(TypePattern (TypePattern
(TupleConstructor))) (TupleConstructor)))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier)) (TypeConstructorIdentifier))
(TypePattern (TypePattern
(TupleConstructor))) (TupleConstructor)))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier)) (TypeConstructorIdentifier))
(TypePattern (TypePattern
(FunctionConstructor))) (FunctionConstructor)))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier)) (TypeConstructorIdentifier))
(TypePattern (TypePattern
(InfixOperatorPattern (InfixOperatorPattern
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier))) (TypeConstructorIdentifier)))
(Empty)) (Empty))
(Identifier) (TypeOperator)
(Type (Type
(InfixOperatorPattern (InfixOperatorPattern
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Identifier)) (TypeConstructorIdentifier))
(Empty)) (Empty))
(Identifier) (TypeOperator)
(Type (Type
(InfixOperatorPattern (InfixOperatorPattern
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Identifier) (TypeOperator)
(Type (Type
(QuotedName (QuotedName
(ListConstructor)) (ListConstructor))
@ -91,74 +91,75 @@
(Empty))))) (Empty)))))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(TypePattern (TypePattern
(QuotedName (QuotedName
(Array (Array
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters) (TypeParameters)
(Empty)) (Empty))
(Type (Type
(Identifier) (TypeConstructorIdentifier)
(TypeParameters (TypeParameters
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier))) (TypeVariableIdentifier)))
(Empty)))))) (Empty))))))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier)) (TypeConstructorIdentifier))
(TextElement)) (TextElement))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier))) (TypeVariableIdentifier)))
(TypePattern (TypePattern
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier)))) (TypeVariableIdentifier))))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier)) (TypeConstructorIdentifier))
(Context' (Context'
(Identifier)) (Statements
(TypeConstructorIdentifier)))
(TypePattern (TypePattern
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(ListConstructor)))) (ListConstructor))))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier)) (TypeVariableIdentifier))
(ScopedTypeVariables (ScopedTypeVariables
(Statements (Statements
(Identifier) (TypeVariableIdentifier)
(Identifier))) (TypeVariableIdentifier)))
(TypePattern (TypePattern
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier)))) (TypeVariableIdentifier))))
(TypeSynonym (TypeSynonym
(Statements (Statements
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier))) (TypeVariableIdentifier)))
(TypePattern (TypePattern
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Statements (Statements
(Identifier) (TypeConstructorIdentifier)
(Identifier) (TypeVariableIdentifier)
(Identifier))))))) (TypeVariableIdentifier)))))))

@ -1 +1 @@
Subproject commit c6c149b369cfcda70ecec5d52014ea754ee25fce Subproject commit d21ac9e3c2730cf785ecee31b3c152cfff559dd2