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.Source as Source
-- | The source, path, and language of a blob.
data Blob = 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)
instance FromJSON Blob where
parseJSON = withObject "Blob" $ \b -> inferringLanguage
<$> b .: "content"
<*> b .: "path"
<*> b .: "language"
nullBlob :: Blob -> Bool
nullBlob Blob{..} = nullSource blobSource
sourceBlob :: FilePath -> Language -> Source -> Blob
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
-- delete, a blob to insert, or a pair of blobs to diff.
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 a b = Join (These a b)

View File

@ -1,9 +1,11 @@
{-# LANGUAGE DeriveAnyClass, DeriveGeneric, LambdaCase #-}
module Data.Language where
import Data.Aeson
import Prologue
import Proto3.Suite
import Data.Aeson
import qualified Data.Text as T
import Prologue
import Proto3.Suite
import System.FilePath.Posix
-- | The various languages we support.
-- Please do not reorder any of the field names: the current implementation of 'Primitive'
@ -23,6 +25,21 @@ data Language
| PHP
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.
knownLanguage :: Language -> Bool
knownLanguage = (/= Unknown)
@ -72,3 +89,7 @@ extensionsForLanguage language = case language of
Ruby -> [".rb"]
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 Data.Array
import Data.Aeson (FromJSON (..), withText)
import qualified Data.ByteString as B
import Data.Char (ord)
import Data.List (span)
@ -47,6 +48,8 @@ newtype Source = Source { sourceBytes :: B.ByteString }
fromUTF8 :: B.ByteString -> Source
fromUTF8 = Source
instance FromJSON Source where
parseJSON = withText "Source" (pure . fromText)
-- 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.
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)
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)
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 = makeTerm <$> symbol TypeAlias <*> children (Declaration.TypeAlias [] <$> expression <*> expression)

View File

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

View File

@ -281,15 +281,6 @@ instance Show1 TypeConstructorExport where liftShowsPrec = genericLiftShowsPrec
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
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
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 }
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 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.IO.Class
import Data.Aeson
import qualified Data.Blob as Blob
import Data.Blob
import Data.Bool
import qualified Data.Project as Project
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.Lazy as BL
import Data.Language
import Data.Source (fromUTF8, fromText)
import Data.Source (fromUTF8)
import Prelude hiding (readFile)
import Prologue hiding (MonadError (..), fail)
import System.Directory (doesDirectoryExist)
@ -60,16 +60,15 @@ import System.Exit
import System.FilePath
import System.FilePath.Glob
import qualified System.IO as IO
import Text.Read hiding (get)
-- | 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 path language) = do
raw <- liftIO (Just <$> B.readFile path)
pure $ Blob.sourceBlob path language . fromUTF8 <$> raw
raw <- liftIO $ B.readFile path
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)
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)
_ -> 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 path = liftIO (doesDirectoryExist path)
-- | 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
decodeBlobPairs :: BL.ByteString -> Either String [Blob.BlobPair]
decodeBlobPairs = fmap toBlobPairs . eitherDecode
decodeBlobPairs :: BL.ByteString -> Either String [BlobPair]
decodeBlobPairs = fmap blobs <$> eitherDecode
-- | Read JSON encoded blob pairs from a handle.
readBlobPairsFromHandle :: MonadIO m => Handle 'IO.ReadMode -> m [Blob.BlobPair]
readBlobPairsFromHandle = fmap toBlobPairs . readFromHandle
readBlobPairsFromHandle :: MonadIO m => Handle 'IO.ReadMode -> m [BlobPair]
readBlobPairsFromHandle = fmap blobs <$> readFromHandle
toBlobPairs :: BlobDiff -> [Blob.BlobPair]
toBlobPairs BlobDiff{..} = toBlobPair <$> blobs
where toBlobPair blobs = toBlob <$> blobs
decodeBlobs :: BL.ByteString -> Either String [Blob.Blob]
decodeBlobs = fmap toBlobs . eitherDecode
decodeBlobs :: BL.ByteString -> Either String [Blob]
decodeBlobs = fmap blobs <$> eitherDecode
-- | Read JSON encoded blobs from a handle.
readBlobsFromHandle :: MonadIO m => Handle 'IO.ReadMode -> m [Blob.Blob]
readBlobsFromHandle = fmap toBlobs . readFromHandle
readBlobsFromHandle :: MonadIO m => Handle 'IO.ReadMode -> m [Blob]
readBlobsFromHandle = fmap blobs <$> readFromHandle
toBlobs :: BlobParse -> [Blob.Blob]
toBlobs BlobParse{..} = fmap toBlob blobs
readBlobFromPath :: MonadIO m => File -> m Blob.Blob
readBlobFromPath :: MonadIO m => File -> m Blob
readBlobFromPath file = do
maybeFile <- readFile file
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
notIn _ _ = True
readBlobsFromDir :: MonadIO m => FilePath -> m [Blob.Blob]
readBlobsFromDir :: MonadIO m => FilePath -> m [Blob]
readBlobsFromDir path = do
paths <- liftIO (globDir1 (compile "[^vendor]**/*[.rb|.js|.tsx|.go|.py]") path)
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"))
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.
newtype NoLanguageForBlob = NoLanguageForBlob FilePath
@ -209,16 +168,16 @@ noLanguageForBlob :: Member (Exc SomeException) effs => FilePath -> Eff effs a
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
-- | 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 (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.
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 (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
data Source blob where
FromPath :: File -> Source Blob.Blob
FromHandle :: Handle 'IO.ReadMode -> Source [Blob.Blob]
FromPathPair :: Both File -> Source Blob.BlobPair
FromPairHandle :: Handle 'IO.ReadMode -> Source [Blob.BlobPair]
FromPath :: File -> Source Blob
FromHandle :: Handle 'IO.ReadMode -> Source [Blob]
FromPathPair :: Both File -> Source BlobPair
FromPairHandle :: Handle 'IO.ReadMode -> Source [BlobPair]
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
Read :: Source out -> Files out
ReadProject :: Maybe FilePath -> FilePath -> Language -> [FilePath] -> Files Project.Concrete

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -23,7 +23,6 @@
(Type
(Identifier)
(Constructor
(Empty)
(Empty)
(Statements
(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 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 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
(Empty)
(Type
{ (Identifier)
->(Identifier) }
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
(TypeParameters)
(Empty))
(Empty))
(Datatype
(Empty)
(Type
{ (Identifier)
->(Identifier) }
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
(TypeParameters
(Identifier))
(TypeVariableIdentifier))
(Empty))
(Constructor
(Empty)
{ (Identifier)
->(Identifier) }
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters
(Identifier)))
(TypeVariableIdentifier)))
(Empty))
(Datatype
(Empty)
(Type
{ (Identifier)
->(Identifier) }
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
(TypeParameters
(Identifier))
(TypeVariableIdentifier))
(Empty))
(Constructor
(Empty)
{ (Identifier)
->(Identifier) }
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters
(StrictTypeVariable
(Identifier))))
(TypeVariableIdentifier))))
(Empty))
(Datatype
(Empty)
(Type
{ (Identifier)
->(Identifier) }
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
(TypeParameters
(Identifier)
(Identifier))
(TypeVariableIdentifier)
(TypeVariableIdentifier))
(Empty))
(Constructor
(Empty)
{ (Identifier)
->(Identifier) }
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters
(StrictTypeVariable
(Identifier))
(Identifier)))
(TypeVariableIdentifier))
(TypeVariableIdentifier)))
(Empty))
(Datatype
(Empty)
(Type
{ (Identifier)
->(Identifier) }
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
(TypeParameters)
(Empty))
(Constructor
(Empty)
{ (Identifier)
->(Identifier) }
(TypeParameters))
(Constructor
(Empty)
{ (Identifier)
->(Identifier) }
(TypeParameters))
(Constructor
(Empty)
{ (Identifier)
->(Identifier) }
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters))
{+(Constructor
{+(Empty)+}
{+(Identifier)+}
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
{+(Constructor
{+(Empty)+}
{+(Identifier)+}
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
{+(Constructor
{+(Empty)+}
{+(Identifier)+}
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
{-(Constructor
{-(Empty)-}
{-(Identifier)-}
{-(ConstructorIdentifier)-}
{-(TypeParameters)-})-}
{-(Constructor
{-(Empty)-}
{-(Identifier)-}
{-(ConstructorIdentifier)-}
{-(TypeParameters)-})-}
{-(Constructor
{-(Empty)-}
{-(Identifier)-}
{-(ConstructorIdentifier)-}
{-(TypeParameters)-})-}
{-(Constructor
{-(ConstructorIdentifier)-}
{-(TypeParameters)-})-}
{-(Constructor
{-(ConstructorIdentifier)-}
{-(TypeParameters)-})-}
(Empty))
(Datatype
(Empty)
(Type
{ (Identifier)
->(Identifier) }
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
(TypeParameters)
(Empty))
(RecordDataConstructor
{ (Identifier)
->(Identifier) }
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(Statements
(Field
(Statements
(Identifier))
(VariableIdentifier))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(Empty))
(Datatype
(Empty)
(Type
{ (Identifier)
->(Identifier) }
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
(TypeParameters)
(Empty))
(RecordDataConstructor
{ (Identifier)
->(Identifier) }
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(Statements
(Field
(Statements
(Identifier)
(Identifier))
(VariableIdentifier)
(VariableIdentifier))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(Empty))
(Datatype
(Empty)
(Type
{ (Identifier)
->(Identifier) }
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
(TypeParameters)
(Empty))
(RecordDataConstructor
{ (Identifier)
->(Identifier) }
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(Statements
(Field
(Statements
(Identifier))
(VariableIdentifier))
(Type
(StrictType
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters))
(TypeParameters)
(Empty)))
(Field
(Statements
(Identifier))
(VariableIdentifier))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(Empty))
(Datatype
(Empty)
(Type
{ (Identifier)
->(Identifier) }
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
(TypeParameters)
(Empty))
(RecordDataConstructor
{ (Identifier)
->(Identifier) }
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(Statements
(Field
(Statements
(Identifier)
(Identifier))
(VariableIdentifier)
(VariableIdentifier))
(Type
(Context
(Pragma)
(StrictType
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)))
(TypeParameters)
(Empty)))
(Field
(Statements
(Identifier))
(VariableIdentifier))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(Empty))
{-(Datatype
{-(Empty)-}
{-(Type
{-(Identifier)-}
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(RecordDataConstructor
{-(Identifier)-}
{-(ConstructorIdentifier)-}
{-(Statements
{-(Field
{-(Statements
{-(Identifier)-})-}
{-(VariableIdentifier)-})-}
{-(Type
{-(Identifier)-}
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-})-}
{-(RecordDataConstructor
{-(Identifier)-}
{-(ConstructorIdentifier)-}
{-(Statements
{-(Field
{-(Statements
{-(Identifier)-})-}
{-(VariableIdentifier)-})-}
{-(Type
{-(Identifier)-}
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-})-}
{-(Empty)-})-}
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(RecordDataConstructor
(Identifier)
(ConstructorIdentifier)
(Statements
(Field
(Statements
(Identifier))
(VariableIdentifier))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(RecordDataConstructor
(Identifier)
(ConstructorIdentifier)
(Statements
(Field
(Statements
(Identifier))
(VariableIdentifier))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(Empty))
{+(Datatype
{+(Empty)+}
{+(Type
{+(Identifier)+}
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(RecordDataConstructor
{+(Identifier)+}
{+(ConstructorIdentifier)+}
{+(Statements
{+(Field
{+(Statements
{+(Identifier)+})+}
{+(VariableIdentifier)+})+}
{+(Type
{+(Identifier)+}
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+})+}
{+(RecordDataConstructor
{+(Identifier)+}
{+(ConstructorIdentifier)+}
{+(Statements
{+(Field
{+(Statements
{+(Identifier)+})+}
{+(VariableIdentifier)+})+}
{+(Type
{+(Identifier)+}
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+})+}
{+(Empty)+})+}
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Constructor
(Empty)
(Identifier)
(ConstructorIdentifier)
(TypeParameters))
(Deriving
(Identifier)))
(TypeClassIdentifier)))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Constructor
(Empty)
(Identifier)
(ConstructorIdentifier)
(TypeParameters))
(Deriving
{ (Identifier)
->(Identifier) }
(Identifier)
(Identifier)
(Identifier)
(Identifier)
(Identifier)))
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)))
(Datatype
(Context'
(Class
{ (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'
(Statements
(Class
(Identifier)
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(TypeParameters
{ (Identifier)
->(Identifier) })))
(Identifier)
(TypeVariableIdentifier)))))
(Type
(TypeConstructorIdentifier)
(TypeParameters
{ (Identifier)
->(Identifier) }))
(TypeVariableIdentifier))
(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))))

View File

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

View File

@ -4,354 +4,381 @@
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters
(Identifier))
(TypeVariableIdentifier))
(Empty))
(Constructor
(Empty)
(Identifier)
(ConstructorIdentifier)
(TypeParameters
(Identifier)))
(TypeVariableIdentifier)))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters
(Identifier))
(TypeVariableIdentifier))
(Empty))
(Constructor
(Empty)
(Identifier)
(ConstructorIdentifier)
(TypeParameters
(StrictTypeVariable
(Identifier))))
(TypeVariableIdentifier))))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters
(Identifier)
(Identifier))
(TypeVariableIdentifier)
(TypeVariableIdentifier))
(Empty))
(Constructor
(Empty)
(Identifier)
(ConstructorIdentifier)
(TypeParameters
(StrictTypeVariable
(Identifier))
(Identifier)))
(TypeVariableIdentifier))
(TypeVariableIdentifier)))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Constructor
(Empty)
(Identifier)
(ConstructorIdentifier)
(TypeParameters))
(Constructor
(Empty)
(Identifier)
(ConstructorIdentifier)
(TypeParameters))
(Constructor
(Empty)
(Identifier)
(ConstructorIdentifier)
(TypeParameters))
(Constructor
(Empty)
(Identifier)
(ConstructorIdentifier)
(TypeParameters))
(Constructor
(Empty)
(Identifier)
(ConstructorIdentifier)
(TypeParameters))
(Constructor
(Empty)
(Identifier)
(ConstructorIdentifier)
(TypeParameters))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(RecordDataConstructor
(Identifier)
(ConstructorIdentifier)
(Statements
(Field
(Statements
(Identifier))
(VariableIdentifier))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(RecordDataConstructor
(Identifier)
(ConstructorIdentifier)
(Statements
(Field
(Statements
(Identifier)
(Identifier))
(VariableIdentifier)
(VariableIdentifier))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(RecordDataConstructor
(Identifier)
(ConstructorIdentifier)
(Statements
(Field
(Statements
(Identifier))
(VariableIdentifier))
(Type
(StrictType
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters))
(TypeParameters)
(Empty)))
(Field
(Statements
(Identifier))
(VariableIdentifier))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(RecordDataConstructor
(Identifier)
(ConstructorIdentifier)
(Statements
(Field
(Statements
(Identifier)
(Identifier))
(VariableIdentifier)
(VariableIdentifier))
(Type
(Context
(Pragma)
(StrictType
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)))
(TypeParameters)
(Empty)))
(Field
(Statements
(Identifier))
(VariableIdentifier))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(RecordDataConstructor
(Identifier)
(ConstructorIdentifier)
(Statements
(Field
(Statements
(Identifier))
(VariableIdentifier))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(RecordDataConstructor
(Identifier)
(ConstructorIdentifier)
(Statements
(Field
(Statements
(Identifier))
(VariableIdentifier))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(RecordDataConstructor
(Identifier)
(ConstructorIdentifier)
(Statements
(Field
(Statements
(Identifier))
(VariableIdentifier))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(RecordDataConstructor
(Identifier)
(ConstructorIdentifier)
(Statements
(Field
(Statements
(Identifier))
(VariableIdentifier))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Constructor
(Empty)
(Identifier)
(ConstructorIdentifier)
(TypeParameters))
(Deriving
(Identifier)))
(TypeClassIdentifier)))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Constructor
(Empty)
(Identifier)
(ConstructorIdentifier)
(TypeParameters))
(Deriving
(Identifier)
(Identifier)
(Identifier)
(Identifier)
(Identifier)
(Identifier)))
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)))
(Datatype
(Context'
(Class
(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'
(Statements
(Class
(Identifier)
(TypeClassIdentifier)
(TypeParameters
(Identifier))))
(Identifier)
(TypeVariableIdentifier)))))
(Type
(TypeConstructorIdentifier)
(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))))

View File

@ -4,354 +4,381 @@
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters
(Identifier))
(TypeVariableIdentifier))
(Empty))
(Constructor
(Empty)
(Identifier)
(ConstructorIdentifier)
(TypeParameters
(Identifier)))
(TypeVariableIdentifier)))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters
(Identifier))
(TypeVariableIdentifier))
(Empty))
(Constructor
(Empty)
(Identifier)
(ConstructorIdentifier)
(TypeParameters
(StrictTypeVariable
(Identifier))))
(TypeVariableIdentifier))))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters
(Identifier)
(Identifier))
(TypeVariableIdentifier)
(TypeVariableIdentifier))
(Empty))
(Constructor
(Empty)
(Identifier)
(ConstructorIdentifier)
(TypeParameters
(StrictTypeVariable
(Identifier))
(Identifier)))
(TypeVariableIdentifier))
(TypeVariableIdentifier)))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Constructor
(Empty)
(Identifier)
(ConstructorIdentifier)
(TypeParameters))
(Constructor
(Empty)
(Identifier)
(ConstructorIdentifier)
(TypeParameters))
(Constructor
(Empty)
(Identifier)
(ConstructorIdentifier)
(TypeParameters))
(Constructor
(Empty)
(Identifier)
(ConstructorIdentifier)
(TypeParameters))
(Constructor
(Empty)
(Identifier)
(ConstructorIdentifier)
(TypeParameters))
(Constructor
(Empty)
(Identifier)
(ConstructorIdentifier)
(TypeParameters))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(RecordDataConstructor
(Identifier)
(ConstructorIdentifier)
(Statements
(Field
(Statements
(Identifier))
(VariableIdentifier))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(RecordDataConstructor
(Identifier)
(ConstructorIdentifier)
(Statements
(Field
(Statements
(Identifier)
(Identifier))
(VariableIdentifier)
(VariableIdentifier))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(RecordDataConstructor
(Identifier)
(ConstructorIdentifier)
(Statements
(Field
(Statements
(Identifier))
(VariableIdentifier))
(Type
(StrictType
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters))
(TypeParameters)
(Empty)))
(Field
(Statements
(Identifier))
(VariableIdentifier))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(RecordDataConstructor
(Identifier)
(ConstructorIdentifier)
(Statements
(Field
(Statements
(Identifier)
(Identifier))
(VariableIdentifier)
(VariableIdentifier))
(Type
(Context
(Pragma)
(StrictType
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)))
(TypeParameters)
(Empty)))
(Field
(Statements
(Identifier))
(VariableIdentifier))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(RecordDataConstructor
(Identifier)
(ConstructorIdentifier)
(Statements
(Field
(Statements
(Identifier))
(VariableIdentifier))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(RecordDataConstructor
(Identifier)
(ConstructorIdentifier)
(Statements
(Field
(Statements
(Identifier))
(VariableIdentifier))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(RecordDataConstructor
(Identifier)
(ConstructorIdentifier)
(Statements
(Field
(Statements
(Identifier))
(VariableIdentifier))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(RecordDataConstructor
(Identifier)
(ConstructorIdentifier)
(Statements
(Field
(Statements
(Identifier))
(VariableIdentifier))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(Empty))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Constructor
(Empty)
(Identifier)
(ConstructorIdentifier)
(TypeParameters))
(Deriving
(Identifier)))
(TypeClassIdentifier)))
(Datatype
(Empty)
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Constructor
(Empty)
(Identifier)
(ConstructorIdentifier)
(TypeParameters))
(Deriving
(Identifier)
(Identifier)
(Identifier)
(Identifier)
(Identifier)
(Identifier)))
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)
(TypeClassIdentifier)))
(Datatype
(Context'
(Class
(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'
(Statements
(Class
(Identifier)
(TypeClassIdentifier)
(TypeParameters
(Identifier))))
(Identifier)
(TypeVariableIdentifier)))))
(Type
(TypeConstructorIdentifier)
(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))))

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,23 +1,23 @@
(Module
(Identifier)
(ModuleIdentifier)
(Export
(Statements
(Identifier)
(TypeConstructorIdentifier)
(AllConstructors)))
(Export
(TypeConstructorExport
(ConstructorOperator
(Identifier))))
(ConstructorSymbol))))
(Export
(TypeConstructorExport
(VariableOperator
(Identifier))))
(VariableSymbol))))
(Export
(Identifier))
(VariableIdentifier))
(Export
(ModuleExport
(Identifier)))
(ModuleIdentifier)))
(Export
(TypeConstructorExport
(Identifier)))
(ConstructorIdentifier)))
(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
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
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)
(Statements
(TypeSignature
{ (Identifier)
->(Identifier) }
{ (VariableIdentifier)
->(VariableIdentifier) }
(FunctionType
(Type
(Identifier)
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(FunctionType
(Type
(Identifier)
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(FunctionType
(Type
(Identifier)
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(FunctionType
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters
(Identifier))
(TypeConstructorIdentifier))
(Empty)))))))
{+(TypeSignature
{+(Identifier)+}
{+(VariableIdentifier)+}
{+(Context'
{+(Class
{+(Identifier)+}
{+(TypeParameters
{+(Identifier)+})+})+})+}
{+(Statements
{+(Class
{+(TypeClassIdentifier)+}
{+(TypeParameters
{+(TypeVariableIdentifier)+})+})+})+})+}
{+(FunctionType
{+(Type
{+(Identifier)+}
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(Identifier)+}
{+(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)+})+})+})+})+})+}
{-(TypeSignature
{-(Identifier)-}
{-(VariableIdentifier)-}
{-(FunctionType
{-(Type
{-(Identifier)-}
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(FunctionType
{-(Type
{-(Identifier)-}
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(FunctionType
{-(Type
{-(Identifier)-}
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(FunctionType
{-(Type
{-(Array
{-(Type
{-(Identifier)-}
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(Identifier)-}
{-(TypeConstructorIdentifier)-}
{-(TypeParameters
{-(Identifier)-})-}
{-(TypeConstructorIdentifier)-})-}
{-(Empty)-})-})-})-})-})-})-}
{-(TypeSignature
{-(Identifier)-}
{-(VariableIdentifier)-}
{-(Context'
{-(Class
{-(Identifier)-}
{-(TypeParameters
{-(Identifier)-})-})-})-}
{-(Statements
{-(Class
{-(TypeClassIdentifier)-}
{-(TypeParameters
{-(TypeVariableIdentifier)-})-})-})-})-}
{-(Context'
{-(Class
{-(Identifier)-}
{-(TypeParameters
{-(Identifier)-})-})-})-}
{-(Statements
{-(Class
{-(TypeClassIdentifier)-}
{-(TypeParameters
{-(TypeVariableIdentifier)-})-})-})-})-}
{-(FunctionType
{-(Type
{-(Identifier)-}
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(Identifier)-}
{-(TypeVariableIdentifier)-}
{-(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)
(Statements
(TypeSignature
{ (Identifier)
->(Identifier) }
{ (VariableIdentifier)
->(VariableIdentifier) }
(FunctionType
(Type
(Identifier)
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(FunctionType
(Type
(Identifier)
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(FunctionType
(Type
(Identifier)
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(FunctionType
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters
(Identifier))
(TypeConstructorIdentifier))
(Empty)))))))
{+(TypeSignature
{+(Identifier)+}
{+(VariableIdentifier)+}
{+(FunctionType
{+(Type
{+(Identifier)+}
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(FunctionType
{+(Type
{+(Identifier)+}
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(FunctionType
{+(Type
{+(Identifier)+}
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(FunctionType
{+(Type
{+(Array
{+(Type
{+(Identifier)+}
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(Identifier)+}
{+(TypeConstructorIdentifier)+}
{+(TypeParameters
{+(Identifier)+})+}
{+(TypeConstructorIdentifier)+})+}
{+(Empty)+})+})+})+})+})+})+}
(TypeSignature
(Identifier)
(Context'
(Class
(Identifier)
(TypeParameters
(Identifier))))
{+(TypeSignature
{+(VariableIdentifier)+}
{+(Context'
{+(Class
{+(Identifier)+}
{+(TypeParameters
{+(Identifier)+})+})+})+}
{+(Statements
{+(Class
{+(TypeClassIdentifier)+}
{+(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
(Type
(Identifier)
{ (TypeVariableIdentifier)
->(Array
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}) }
(TypeParameters)
(Empty))
(Type
(Identifier)
{ (TypeVariableIdentifier)
->(TypeConstructorIdentifier) }
(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)
(Statements
(TypeSignature
(Identifier)
(VariableIdentifier)
(FunctionType
(Type
(Identifier)
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(FunctionType
(Type
(Identifier)
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(FunctionType
(Type
(Identifier)
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(FunctionType
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters
(Identifier))
(TypeConstructorIdentifier))
(Empty)))))))
(TypeSignature
(Identifier)
(VariableIdentifier)
(FunctionType
(Type
(Identifier)
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(FunctionType
(Type
(Identifier)
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(FunctionType
(Type
(Identifier)
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(FunctionType
(Type
(Array
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))
(TypeParameters)
(Empty))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters
(Identifier))
(TypeConstructorIdentifier))
(Empty)))))))
(TypeSignature
(Identifier)
(VariableIdentifier)
(Context'
(Class
(Identifier)
(TypeParameters
(Identifier))))
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(TypeVariableIdentifier)))))
(Context'
(Class
(Identifier)
(TypeParameters
(Identifier))))
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(TypeVariableIdentifier)))))
(FunctionType
(Type
(Identifier)
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(Type
(Identifier)
(TypeVariableIdentifier)
(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)
(Statements
(TypeSignature
(Identifier)
(VariableIdentifier)
(FunctionType
(Type
(Identifier)
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(FunctionType
(Type
(Identifier)
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(FunctionType
(Type
(Identifier)
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(FunctionType
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters
(Identifier))
(TypeConstructorIdentifier))
(Empty)))))))
(TypeSignature
(Identifier)
(VariableIdentifier)
(Context'
(Class
(Identifier)
(TypeParameters
(Identifier))))
(Statements
(Class
(TypeClassIdentifier)
(TypeParameters
(TypeVariableIdentifier)))))
(FunctionType
(Type
(Identifier)
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(Type
(Identifier)
(TypeVariableIdentifier)
(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
(TypeSynonym
(Statements
{ (Identifier)
->(Identifier) })
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) })
(TypePattern
{ (Identifier)
->(Identifier) }))
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }))
(TypeSynonym
(Statements
{ (Identifier)
->(Identifier) })
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) })
(TypePattern
(ListConstructor)))
(TypeSynonym
(Statements
(Identifier)
(Identifier)
{+(Identifier)+})
(TypeConstructorIdentifier)
(TypeVariableIdentifier)
{+(TypeVariableIdentifier)+})
(TypePattern
(Statements
(Identifier)
(Identifier)
{+(Identifier)+})))
(TypeConstructorIdentifier)
(TypeVariableIdentifier)
{+(TypeVariableIdentifier)+})))
(TypeSynonym
(Statements
(Identifier)
(Identifier))
(TypeConstructorIdentifier)
(TypeVariableIdentifier))
(TypePattern
(Array
(Type
{ (Identifier)
->(Identifier) }
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
(TypeParameters
(Identifier))
(TypeVariableIdentifier))
(Empty)))))
(TypeSynonym
(Statements
{ (Identifier)
->(Identifier) })
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) })
(TypePattern
(UnitConstructor)))
{-(TypeSynonym
{-(Statements
{-(Identifier)-})-}
{-(TypeConstructorIdentifier)-})-}
{-(TypePattern
{-(TupleConstructor)-})-})-}
(TypeSynonym
(Statements
(Identifier))
(TypeConstructorIdentifier))
(TypePattern
(TupleConstructor)))
(TypeSynonym
(Statements
(Identifier))
(TypePattern
{ (FunctionConstructor)
->(TupleConstructor) }))
{+(TypeSynonym
{+(Statements
{+(Identifier)+})+}
{+(TypeConstructorIdentifier)+})+}
{+(TypePattern
{+(FunctionConstructor)+})+})+}
{+(TupleConstructor)+})+})+}
(TypeSynonym
(Statements
(Identifier))
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) })
(TypePattern
(FunctionConstructor)))
(TypeSynonym
(Statements
(TypeConstructorIdentifier))
(TypePattern
(InfixOperatorPattern
(Type
{ (Identifier)
->(Identifier) }
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
(TypeParameters
{+(Statements
{+(Identifier)+}
{+(Identifier)+})+})
{+(TypeConstructorIdentifier)+}
{+(TypeConstructorIdentifier)+})+})
(Empty))
(Identifier)
(TypeOperator)
(Type
(InfixOperatorPattern
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters
(Identifier))
(TypeConstructorIdentifier))
(Empty))
(Identifier)
(TypeOperator)
(Type
(InfixOperatorPattern
(Type
{ (Identifier)
->(Identifier) }
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
(TypeParameters
{-(Statements
{-(Identifier)-}
{-(Identifier)-})-})
{-(TypeConstructorIdentifier)-}
{-(TypeConstructorIdentifier)-})-})
(Empty))
(Identifier)
(TypeOperator)
(Type
(QuotedName
(ListConstructor))
@ -107,84 +107,85 @@
(Empty)))))
(TypeSynonym
(Statements
{ (Identifier)
->(Identifier) }
(Identifier)
(Identifier)
(Identifier))
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
(TypeVariableIdentifier)
(TypeVariableIdentifier)
(TypeVariableIdentifier))
(TypePattern
(QuotedName
(Array
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))
(Type
(Identifier)
(TypeConstructorIdentifier)
(TypeParameters
(Statements
(Identifier)
(Identifier)))
(TypeConstructorIdentifier)
(TypeVariableIdentifier)))
(Empty))))))
(TypeSynonym
(Statements
{-(Identifier)-}
(Identifier)
{+(Identifier)+})
{-(TypeConstructorIdentifier)-}
(TypeConstructorIdentifier)
{+(TypeConstructorIdentifier)+})
(TextElement))
(TypeSynonym
(Statements
{ (Identifier)
->(Identifier) }
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
(Statements
{ (Identifier)
->(Identifier) }
(Identifier)
(Identifier)))
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
(TypeVariableIdentifier)
(TypeVariableIdentifier)))
(TypePattern
(Statements
(Identifier)
(Identifier)
(Identifier))))
(TypeConstructorIdentifier)
(TypeVariableIdentifier)
(TypeVariableIdentifier))))
(TypeSynonym
(Statements
{ (Identifier)
->(Identifier) })
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) })
(Context'
(Identifier))
(Statements
(TypeConstructorIdentifier)))
(TypePattern
(Statements
{ (Identifier)
->(Identifier) }
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
(ListConstructor))))
(TypeSynonym
(Statements
{ (Identifier)
->(Identifier) }
(Identifier)
(Identifier))
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
(TypeVariableIdentifier)
(TypeVariableIdentifier))
(ScopedTypeVariables
(Statements
(Identifier)
(Identifier)))
(TypeVariableIdentifier)
(TypeVariableIdentifier)))
(TypePattern
(Statements
{ (Identifier)
->(Identifier) }
(Identifier)
(Identifier))))
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
(TypeVariableIdentifier)
(TypeVariableIdentifier))))
(TypeSynonym
(Statements
(Statements
{ (Identifier)
->(Identifier) }
(Identifier)
(Identifier)))
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
(TypeVariableIdentifier)
(TypeVariableIdentifier)))
(TypePattern
(Statements
(Identifier)
(TypeConstructorIdentifier)
(Statements
{ (Identifier)
->(Identifier) }
(Identifier)
(Identifier)))))))
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
(TypeVariableIdentifier)
(TypeVariableIdentifier)))))))

View File

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

View File

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

View File

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

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