1
1
mirror of https://github.com/github/semantic.git synced 2024-11-24 08:54:07 +03:00

Add missing assignments

I discovered a test file in tree-sitter-haskell I overlooked while assigning semantic.
This commit is contained in:
Rick Winfrey 2018-06-19 17:37:40 -07:00
parent 1ca5894806
commit c2a3608154
39 changed files with 8681 additions and 1072 deletions

View File

@ -37,11 +37,15 @@ type Syntax = '[
, Literal.TextElement
, Literal.Tuple
, Statement.If
, Statement.Match
, Statement.Pattern
, Syntax.AllConstructors
, Syntax.AnnotatedTypeVariable
, Syntax.App
, Syntax.ArithmeticSequence
, Syntax.AsPattern
, Syntax.BindPattern
, Syntax.CaseGuardPattern
, Syntax.Class
, Syntax.ConstructorPattern
, Syntax.ConstructorSymbol
@ -58,13 +62,17 @@ type Syntax = '[
, Syntax.EqualityConstraint
, Syntax.Export
, Syntax.Field
, Syntax.FieldBind
, Syntax.FieldPattern
, Syntax.Fixity'
, Syntax.FunctionalDependency
, Syntax.FunctionConstructor
, Syntax.FunctionGuardPattern
, Syntax.FunctionType
, Syntax.GADT
, Syntax.GADTConstructor
, Syntax.Generator
, Syntax.Guard
, Syntax.HiddenImport
, Syntax.Identifier
, Syntax.Import
@ -72,6 +80,7 @@ type Syntax = '[
, Syntax.ImportDeclaration
, Syntax.InfixOperatorPattern
, Syntax.Instance
, Syntax.IrrefutablePattern
, Syntax.Kind
, Syntax.KindFunctionType
, Syntax.KindListType
@ -79,11 +88,17 @@ type Syntax = '[
, Syntax.KindSignature
, Syntax.KindTupleType
, Syntax.LabeledPattern
, Syntax.LabeledUpdate
, Syntax.Lambda
, Syntax.LambdaCase
, Syntax.Let
, Syntax.ListComprehension
, Syntax.ListConstructor
, Syntax.ListPattern
, Syntax.Module
, Syntax.ModuleExport
, Syntax.NamedFieldPun
, Syntax.NegativeLiteral
, Syntax.NewType
, Syntax.Operator
, Syntax.OperatorSection
@ -121,6 +136,7 @@ type Syntax = '[
, Syntax.TypeSynonym
, Syntax.UnitConstructor
, Syntax.VariableSymbol
, Syntax.ViewPattern
, Syntax.Wildcard
, Type.TypeParameters
, []
@ -146,11 +162,14 @@ algebraicDatatypeDeclaration = makeTerm
allConstructors :: Assignment
allConstructors = makeTerm <$> token AllConstructors <*> pure Syntax.AllConstructors
alternative :: Assignment
alternative = makeTerm <$> symbol Alternative <*> children (Statement.Pattern <$> expression <*> expressions)
annotatedTypeVariable :: Assignment
annotatedTypeVariable = makeTerm <$> symbol AnnotatedTypeVariable <*> children (Syntax.AnnotatedTypeVariable <$> typeVariableIdentifier <* token Annotation <*> (kind <|> type'))
annotatedTypeVariable = makeTerm <$> symbol AnnotatedTypeVariable <*> children (Syntax.AnnotatedTypeVariable <$> typeVariableIdentifier <* token Annotation <*> expression)
app :: Assignment
app = makeTerm <$> symbol FunctionApplication <*> children (Syntax.App <$> expression <*> expression)
app = makeTerm <$> symbol FunctionApplication <*> children (Syntax.App <$> expression <*> (typeApp <|> emptyTerm) <*> expression)
arithmeticSequence :: Assignment
arithmeticSequence = symbol ArithmeticSequence *> children ( enumFrom
@ -163,9 +182,18 @@ arithmeticSequence = symbol ArithmeticSequence *> children ( enumFrom
enumFromTo = makeTerm <$> symbol EnumFromTo <*> children (Syntax.EnumFromTo <$> expression <*> expression)
enumFromThenTo = makeTerm <$> symbol EnumFromThenTo <*> children (Syntax.EnumFromThenTo <$> expression <*> expression <*> expression)
asPattern :: Assignment
asPattern = makeTerm <$> symbol AsPattern <*> children (Syntax.AsPattern <$> expression <*> expression)
bindPattern :: Assignment
bindPattern = makeTerm <$> symbol BindPattern <*> children (Syntax.BindPattern <$> expression <*> expression)
case' :: Assignment
case' = makeTerm <$> symbol CaseExpression <*> children (Statement.Match <$> expression <*> expressions)
caseGuardPattern :: Assignment
caseGuardPattern = makeTerm <$> symbol CaseGuardPattern <*> children (Syntax.CaseGuardPattern <$> manyTerm expression)
character :: Assignment
character = makeTerm <$> symbol Char <*> (Literal.Character <$> source)
@ -237,10 +265,14 @@ expressionChoices :: [Assignment.Assignment [] Grammar Term]
expressionChoices = [
algebraicDatatypeDeclaration
, allConstructors
, alternative
, annotatedTypeVariable
, app
, arithmeticSequence
, asPattern
, bindPattern
, case'
, caseGuardPattern
, character
, comment
, conditionalExpression
@ -257,15 +289,20 @@ expressionChoices = [
, do'
, equalityConstraint
, expression'
, fieldBind
, fieldPattern
, fixityDeclaration
, float
, functionalDependency
, functionConstructor
, functionDeclaration
, functionGuardPattern
, functionType
, gadtConstructor
, gadtDeclaration
, generator
, guard'
, implicitParameterIdentifier
, importAlias
, importDeclaration
, infixOperatorApp
@ -273,6 +310,7 @@ expressionChoices = [
, infixVariableIdentifier
, instance'
, integer
, irrefutablePattern
, kind
, kindListType
, kindFunctionType
@ -280,13 +318,20 @@ expressionChoices = [
, kindSignature
, kindTupleType
, labeledPattern
, labeledUpdate
, lambda
, lambdaCase
, letExpression
, letStatement
, listConstructor
, listComprehension
, listExpression
, listPattern
, listType
, moduleExport
, moduleIdentifier
, namedFieldPun
, negativeLiteral
, newType
, operator
, operatorSection
@ -298,6 +343,7 @@ expressionChoices = [
, prefixNegation
, primitiveConstructorIdentifier
, primitiveVariableIdentifier
, promotedTypeOperator
, qualifiedConstructorIdentifier
, qualifiedImportDeclaration
, qualifiedInfixVariableIdentifier
@ -324,6 +370,7 @@ expressionChoices = [
, tupleType
, type'
, type''
, typeApp
, typeClass
, typeClassIdentifier
, typeClassInstance
@ -341,6 +388,7 @@ expressionChoices = [
, variableIdentifier
, variableOperator
, variableSymbol
, viewPattern
, where'
, wildcard
]
@ -358,6 +406,12 @@ field = makeTerm
where
fieldType = makeTerm <$> location <*> (Syntax.Type <$> term (type' <|> typeVariableIdentifier) <*> typeParameters <*> (kindSignature <|> emptyTerm))
fieldBind :: Assignment
fieldBind = makeTerm <$> symbol FieldBind <*> children (Syntax.FieldBind <$> expression <*> expression)
fieldPattern :: Assignment
fieldPattern = makeTerm <$> symbol FieldPattern <*> children (Syntax.FieldPattern <$> expression <*> expression)
fixityDeclaration :: Assignment
fixityDeclaration = makeTerm <$> symbol FixityDeclaration <*> children (Syntax.Fixity' <$> (integer <|> emptyTerm) <*> manyTerm expression)
@ -381,6 +435,9 @@ functionDeclaration = makeTerm
<*> (manyTermsTill expression (symbol FunctionBody) <|> pure [])
<*> functionBody)
functionGuardPattern :: Assignment
functionGuardPattern = makeTerm <$> symbol FunctionGuardPattern <*> children (Syntax.FunctionGuardPattern <$> manyTerm expression)
functionType :: Assignment
functionType = makeTerm <$> symbol FunctionType <*> children (Syntax.FunctionType <$> type' <*> type')
@ -406,12 +463,18 @@ gadtDeclaration = makeTerm
generator :: Assignment
generator = makeTerm <$> symbol Generator <*> children (Syntax.Generator <$> expression <*> expression)
guard' :: Assignment
guard' = makeTerm <$> symbol Guard <*> children (Syntax.Guard <$> expression)
hiddenImport :: Assignment
hiddenImport = makeTerm <$> symbol Import <*> children (Syntax.HiddenImport <$> expressions)
hiddenImportSpec :: Assignment.Assignment [] Grammar [Term]
hiddenImportSpec = symbol HiddenImportSpec *> children (manyTerm hiddenImport)
implicitParameterIdentifier :: Assignment
implicitParameterIdentifier = makeTerm <$> symbol ImplicitParameterIdentifier <*> (Syntax.ImplicitParameterIdentifier . Name.name <$> source)
import' :: Assignment
import' = makeTerm <$> symbol Import <*> children (Syntax.Import <$> expressions)
@ -429,8 +492,11 @@ importDeclaration = makeTerm
importSpec :: Assignment.Assignment [] Grammar [Term]
importSpec = symbol ImportSpec *> children (manyTerm import')
inClause :: Assignment
inClause = symbol InClause *> children expressions
infixOperatorApp :: Assignment
infixOperatorApp = makeTerm <$> symbol InfixOperatorApplication <*> children (Syntax.InfixOperatorApp <$> expression <*> expression <*> expression)
infixOperatorApp = makeTerm <$> symbol InfixOperatorApplication <*> children (Syntax.InfixOperatorApp <$> expression <*> (typeApp <|> emptyTerm) <*> expression <*> (expression <|> emptyTerm))
infixOperatorPattern :: Assignment
infixOperatorPattern = makeTerm <$> symbol InfixOperatorPattern <*> children (Syntax.InfixOperatorPattern <$> expression <*> operator <*> expression)
@ -444,6 +510,9 @@ instance' = makeTerm <$> symbol Instance <*> children (Syntax.Instance <$> expre
integer :: Assignment
integer = makeTerm <$> symbol Integer <*> (Literal.Integer <$> source)
irrefutablePattern :: Assignment
irrefutablePattern = makeTerm <$> symbol IrrefutablePattern <*> children (Syntax.IrrefutablePattern <$> expression)
kind :: Assignment
kind = kind'
<|> kindFunctionType
@ -474,12 +543,24 @@ kindTupleType = makeTerm <$> symbol KindTupleType <*> children (Syntax.KindTuple
labeledPattern :: Assignment
labeledPattern = makeTerm <$> symbol LabeledPattern <*> children (Syntax.LabeledPattern <$> expressions)
labeledUpdate :: Assignment
labeledUpdate = makeTerm <$> symbol LabeledUpdate <*> children (Syntax.LabeledUpdate <$> manyTerm expression)
lambda :: Assignment
lambda = makeTerm <$> symbol Lambda <*> children (Syntax.Lambda <$> lambdaHead <*> lambdaBody)
where
lambdaHead = symbol LambdaHead *> children expressions
lambdaBody = symbol LambdaBody *> children expressions
lambdaCase :: Assignment
lambdaCase = makeTerm <$> symbol LambdaCase <*> children (Syntax.LambdaCase <$> manyTerm expression)
letExpression :: Assignment
letExpression = makeTerm <$> symbol LetExpression <*> children (Syntax.Let <$> manyTermsTill expression (symbol InClause) <*> inClause)
letStatement :: Assignment
letStatement = makeTerm <$> symbol LetStatement <*> children (Syntax.Let <$> manyTerm expression <*> emptyTerm)
listComprehension :: Assignment
listComprehension = makeTerm <$> symbol ListComprehension <*> children (Syntax.ListComprehension <$> expression <*> manyTerm expression)
@ -490,6 +571,9 @@ listExpression :: Assignment
listExpression = makeTerm <$> symbol ListExpression <*> children (Literal.Array <$> manyTerm listElement)
where listElement = symbol Expression *> children expression
listPattern :: Assignment
listPattern = makeTerm <$> symbol ListPattern <*> children (Syntax.ListPattern <$> expression)
listType :: Assignment
listType = makeTerm <$> symbol ListType <*> children (Literal.Array <$> manyTerm type')
@ -511,6 +595,12 @@ moduleExport = makeTerm <$> symbol ModuleExport <*> children (Syntax.ModuleExpor
moduleIdentifier :: Assignment
moduleIdentifier = makeTerm <$> symbol ModuleIdentifier <*> (Syntax.ModuleIdentifier . Name.name <$> source)
namedFieldPun :: Assignment
namedFieldPun = makeTerm <$> symbol NamedFieldPun <*> children (Syntax.NamedFieldPun <$> expression)
negativeLiteral :: Assignment
negativeLiteral = makeTerm <$> symbol NegativeLiteral <*> children (Syntax.NegativeLiteral <$> expression)
newConstructor :: Assignment
newConstructor = makeTerm <$> symbol NewConstructor <*> children (Declaration.Constructor <$> manyTerm (context' <|> scopedTypeVariables) <*> typeConstructor <*> typeParameters)
@ -520,7 +610,10 @@ newType = makeTerm <$> symbol NewtypeDeclaration <*> children (Syntax.NewType <$
typeLeft = makeTerm <$> location <*> manyTermsTill expression (symbol NewConstructor)
operator :: Assignment
operator = typeOperator <|> constructorOperator <|> variableOperator
operator = constructorOperator
<|> typeOperator
<|> promotedTypeOperator
<|> variableOperator
operatorSection :: Assignment
operatorSection = (makeTerm <$> symbol RightOperatorSection <*> children (Syntax.RightOperatorSection <$> expression <*> expression))
@ -553,6 +646,9 @@ primitiveConstructorIdentifier = makeTerm <$> symbol PrimitiveConstructorIdentif
primitiveVariableIdentifier :: Assignment
primitiveVariableIdentifier = makeTerm <$> symbol PrimitiveVariableIdentifier <*> (Syntax.PrimitiveVariableIdentifier . Name.name <$> source)
promotedTypeOperator :: Assignment
promotedTypeOperator = makeTerm <$> symbol PromotedTypeOperator <*> children (Syntax.PromotedTypeOperator <$> expression)
qualifiedConstructorIdentifier :: Assignment
qualifiedConstructorIdentifier = makeTerm <$> symbol QualifiedConstructorIdentifier <*> children (Syntax.QualifiedConstructorIdentifier <$> someTerm' expression)
@ -655,6 +751,9 @@ type'' = makeTerm
<$> symbol Type
<*> children (Syntax.Type <$> expression <*> typeParameters <*> (kindSignature <|> emptyTerm))
typeApp :: Assignment
typeApp = makeTerm <$> symbol TypeApplication <*> children (Syntax.TypeApp <$> expression)
typeClass :: Assignment
typeClass = makeTerm <$> symbol TypeClassDeclaration <*> children (Syntax.TypeClass
<$> (context' <|> emptyTerm)
@ -749,6 +848,9 @@ variableSymbol = makeTerm <$> (symbol VariableSymbol <|> symbol VariableSymbol')
variableIdentifiers :: Assignment
variableIdentifiers = makeTerm <$> location <*> many variableIdentifier
viewPattern :: Assignment
viewPattern = makeTerm <$> symbol ViewPattern <*> children (Syntax.ViewPattern <$> expression <*> expression)
where' :: Assignment
where' = makeTerm <$> (symbol Where <|> symbol Where') <*> children (manyTerm expression)

View File

@ -352,6 +352,7 @@ data EntityIdentifier a = TypeVariableIdentifier Name
| TypeConstructorIdentifier Name
| ModuleIdentifier Name
| ConstructorIdentifier Name
| ImplicitParameterIdentifier Name
| InfixVariableIdentifier Name
| TypeClassIdentifier Name
| VariableIdentifier Name
@ -368,6 +369,7 @@ instance Evaluatable EntityIdentifier
data Operator a = VariableOperator a
| ConstructorOperator a
| TypeOperator Name
| PromotedTypeOperator a
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 Operator where liftEq = genericLiftEq
@ -448,8 +450,9 @@ instance Show1 ImportAlias where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable ImportAlias
data App a = App { appLeft :: a, appRight :: a }
| InfixOperatorApp { appLeft :: a, infixOperator :: a, appRight :: a }
data App a = App { appLeft :: a, appLeftTypeApp :: a, appRight :: a }
| InfixOperatorApp { appLeft :: a, appLeftTypeApp :: a, infixOperator :: a, appRight :: a }
| TypeApp { typeAppType :: a }
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 App where liftEq = genericLiftEq
@ -764,3 +767,138 @@ instance Ord1 Wildcard where liftCompare = genericLiftCompare
instance Show1 Wildcard where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable Wildcard
data Let a = Let { letStatements :: [a], letInClause :: a }
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 Let where liftEq = genericLiftEq
instance Ord1 Let where liftCompare = genericLiftCompare
instance Show1 Let where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable Let
newtype ListPattern a = ListPattern a
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 ListPattern where liftEq = genericLiftEq
instance Ord1 ListPattern where liftCompare = genericLiftCompare
instance Show1 ListPattern where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable ListPattern
-- e.g. The `n@num1` in `f n@num1 x@num2 = x`
data AsPattern a = AsPattern { asPatternLeft :: a, asPatternRight :: a }
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 AsPattern where liftEq = genericLiftEq
instance Ord1 AsPattern where liftCompare = genericLiftCompare
instance Show1 AsPattern where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable AsPattern
-- e.g. The `a = 1` in `foo Bar{ a = 1 } = baz`.
data FieldPattern a = FieldPattern { fieldPatternLeft :: a, fieldPatternRight :: a }
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 FieldPattern where liftEq = genericLiftEq
instance Ord1 FieldPattern where liftCompare = genericLiftCompare
instance Show1 FieldPattern where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable FieldPattern
-- e.g. The `start` or `end` in `f Blob{start, end} = [start, end]`.
newtype NamedFieldPun a = NamedFieldPun a
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 NamedFieldPun where liftEq = genericLiftEq
instance Ord1 NamedFieldPun where liftCompare = genericLiftCompare
instance Show1 NamedFieldPun where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable NamedFieldPun
-- e.g. The `-(1)` in `f (-(1)) = 1`.
newtype NegativeLiteral a = NegativeLiteral a
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 NegativeLiteral where liftEq = genericLiftEq
instance Ord1 NegativeLiteral where liftCompare = genericLiftCompare
instance Show1 NegativeLiteral where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable NegativeLiteral
-- e.g. The `~a` in `f ~a = 1`
newtype IrrefutablePattern a = IrrefutablePattern a
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 IrrefutablePattern where liftEq = genericLiftEq
instance Ord1 IrrefutablePattern where liftCompare = genericLiftCompare
instance Show1 IrrefutablePattern where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable IrrefutablePattern
-- For handling guards in case alternative expressions.
newtype CaseGuardPattern a = CaseGuardPattern [a]
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 CaseGuardPattern where liftEq = genericLiftEq
instance Ord1 CaseGuardPattern where liftCompare = genericLiftCompare
instance Show1 CaseGuardPattern where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable CaseGuardPattern
newtype Guard a = Guard a
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 Guard where liftEq = genericLiftEq
instance Ord1 Guard where liftCompare = genericLiftCompare
instance Show1 Guard where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable Guard
newtype LambdaCase a = LambdaCase [a]
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 LambdaCase where liftEq = genericLiftEq
instance Ord1 LambdaCase where liftCompare = genericLiftCompare
instance Show1 LambdaCase where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable LambdaCase
-- For handling guards in function declarations.
newtype FunctionGuardPattern a = FunctionGuardPattern [a]
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 FunctionGuardPattern where liftEq = genericLiftEq
instance Ord1 FunctionGuardPattern where liftCompare = genericLiftCompare
instance Show1 FunctionGuardPattern where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable FunctionGuardPattern
-- The `y { a = 1, b = 2} in `f y@Example = y { a = 1, b = 2 }`.
newtype LabeledUpdate a = LabeledUpdate [a]
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 LabeledUpdate where liftEq = genericLiftEq
instance Ord1 LabeledUpdate where liftCompare = genericLiftCompare
instance Show1 LabeledUpdate where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable LabeledUpdate
-- The `a = 1` in `f y@Example = y { a = 1, b = 2 }`.
data FieldBind a = FieldBind { fieldBindLeft :: a, fieldBindRight :: a }
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 FieldBind where liftEq = genericLiftEq
instance Ord1 FieldBind where liftCompare = genericLiftCompare
instance Show1 FieldBind where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable FieldBind
data ViewPattern a = ViewPattern { viewPatternLeft :: a, viewPatternRight :: a }
deriving (Declarations1, Diffable, Eq, Foldable, FreeVariables1, Functor, Generic1, Hashable1, Mergeable, Ord, Show, ToJSONFields1, Traversable)
instance Eq1 ViewPattern where liftEq = genericLiftEq
instance Ord1 ViewPattern where liftCompare = genericLiftCompare
instance Show1 ViewPattern where liftShowsPrec = genericLiftShowsPrec
instance Evaluatable ViewPattern

View File

@ -66,22 +66,22 @@
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters))
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
(Constructor
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters))
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
{-(Constructor
{-(ConstructorIdentifier)-}
{-(TypeParameters)-})-}

View File

@ -66,23 +66,27 @@
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters))
(Constructor
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters))
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
(Constructor
{ (ConstructorIdentifier)
->(ConstructorIdentifier) }
(TypeParameters))
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
{+(Constructor
{+(ConstructorIdentifier)+}
{+(TypeParameters)+})+}
{-(Constructor
{-(ConstructorIdentifier)-}
{-(TypeParameters)-})-}
{-(Constructor
{-(ConstructorIdentifier)-}
{-(TypeParameters)-})-}
{-(Constructor
{-(ConstructorIdentifier)-}
{-(TypeParameters)-})-}

View File

@ -7,6 +7,7 @@
(Statements
(App
(VariableIdentifier)
(Empty)
(VariableIdentifier))))
(Function
{ (VariableIdentifier)
@ -15,7 +16,9 @@
(App
(App
(VariableIdentifier)
(Empty)
(VariableIdentifier))
(Empty)
(VariableIdentifier))))
(Function
{ (VariableIdentifier)
@ -25,8 +28,11 @@
(App
(App
(VariableIdentifier)
(Empty)
(VariableIdentifier))
(Empty)
(VariableIdentifier))
(Empty)
(VariableIdentifier))))
(Function
{ (VariableIdentifier)
@ -34,6 +40,7 @@
(Statements
(App
(ConstructorIdentifier)
(Empty)
(VariableIdentifier))))
(Function
{ (VariableIdentifier)
@ -41,6 +48,7 @@
(Statements
(App
(ConstructorIdentifier)
(Empty)
(VariableIdentifier))))
(Function
{ (VariableIdentifier)
@ -50,8 +58,11 @@
(App
(App
(ConstructorIdentifier)
(Empty)
(VariableIdentifier))
(Empty)
(VariableIdentifier))
(Empty)
(VariableIdentifier))))
(Function
{ (VariableIdentifier)
@ -198,8 +209,10 @@
(App
(App
(VariableIdentifier)
(Empty)
{ (Integer)
->(Integer) })
(Empty)
(ListComprehension
(ListComprehension
(Tuple
@ -249,6 +262,7 @@
{+(Statements
{+(InfixOperatorApp
{+(VariableIdentifier)+}
{+(Empty)+}
{+(VariableOperator
{+(InfixVariableIdentifier)+})+}
{+(VariableIdentifier)+})+})+})+}
@ -277,6 +291,7 @@
{-(Statements
{-(InfixOperatorApp
{-(VariableIdentifier)-}
{-(Empty)-}
{-(VariableOperator
{-(InfixVariableIdentifier)-})-}
{-(VariableIdentifier)-})-})-})-}
@ -298,38 +313,46 @@
(Statements
(InfixOperatorApp
(ConstructorIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
{ (VariableIdentifier)
->(VariableIdentifier) }
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(TextElement)
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
{ (VariableIdentifier)
->(VariableIdentifier) }
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(TextElement)
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
{ (VariableIdentifier)
->(VariableIdentifier) }
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(TextElement)
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
{ (VariableIdentifier)
->(VariableIdentifier) }
(Empty)
(VariableOperator
(VariableSymbol))
(TextElement)))))))))))
@ -344,6 +367,7 @@
(InfixOperatorApp
{ (VariableIdentifier)
->(VariableIdentifier) }
(Empty)
(VariableOperator
(VariableSymbol))
{ (VariableIdentifier)
@ -354,6 +378,7 @@
(InfixOperatorApp
{ (VariableIdentifier)
->(VariableIdentifier) }
(Empty)
(VariableOperator
(VariableSymbol))
{ (VariableIdentifier)
@ -383,10 +408,12 @@
(VariableIdentifier)
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(ConstructorOperator
(ConstructorSymbol))
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(ConstructorOperator
(ConstructorSymbol))
(VariableIdentifier))))))
@ -401,10 +428,12 @@
(VariableIdentifier))
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(VariableIdentifier))))))
@ -420,6 +449,7 @@
(Statements
(InfixOperatorApp
(Integer)
(Empty)
(VariableOperator
(VariableSymbol))
(Integer))))
@ -447,11 +477,13 @@
(Statements
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(App
(App
(VariableIdentifier)
(Empty)
(Lambda
{ (VariableIdentifier)
->(VariableIdentifier) }
@ -459,15 +491,19 @@
(Tuple
{ (VariableIdentifier)
->(VariableIdentifier) })
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(ConstructorIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(App
{ (VariableIdentifier)
->(VariableIdentifier) }
(Empty)
{ (VariableIdentifier)
->(VariableIdentifier) })))))
(Empty)
(VariableIdentifier)))))))

View File

@ -7,6 +7,7 @@
(Statements
(App
(VariableIdentifier)
(Empty)
(VariableIdentifier))))
(Function
{ (VariableIdentifier)
@ -15,7 +16,9 @@
(App
(App
(VariableIdentifier)
(Empty)
(VariableIdentifier))
(Empty)
(VariableIdentifier))))
(Function
{ (VariableIdentifier)
@ -25,8 +28,11 @@
(App
(App
(VariableIdentifier)
(Empty)
(VariableIdentifier))
(Empty)
(VariableIdentifier))
(Empty)
(VariableIdentifier))))
(Function
{ (VariableIdentifier)
@ -34,6 +40,7 @@
(Statements
(App
(ConstructorIdentifier)
(Empty)
(VariableIdentifier))))
(Function
{ (VariableIdentifier)
@ -41,6 +48,7 @@
(Statements
(App
(ConstructorIdentifier)
(Empty)
(VariableIdentifier))))
(Function
{ (VariableIdentifier)
@ -50,8 +58,11 @@
(App
(App
(ConstructorIdentifier)
(Empty)
(VariableIdentifier))
(Empty)
(VariableIdentifier))
(Empty)
(VariableIdentifier))))
(Function
{ (VariableIdentifier)
@ -198,8 +209,10 @@
(App
(App
(VariableIdentifier)
(Empty)
{ (Integer)
->(Integer) })
(Empty)
(ListComprehension
(ListComprehension
(Tuple
@ -263,6 +276,7 @@
{-(Statements
{-(InfixOperatorApp
{-(VariableIdentifier)-}
{-(Empty)-}
{-(VariableOperator
{-(InfixVariableIdentifier)-})-}
{-(VariableIdentifier)-})-})-})-}
@ -283,34 +297,42 @@
{-(Statements
{-(InfixOperatorApp
{-(ConstructorIdentifier)-}
{-(Empty)-}
{-(VariableOperator
{-(VariableSymbol)-})-}
{-(InfixOperatorApp
{-(VariableIdentifier)-}
{-(Empty)-}
{-(VariableOperator
{-(VariableSymbol)-})-}
{-(InfixOperatorApp
{-(TextElement)-}
{-(Empty)-}
{-(VariableOperator
{-(VariableSymbol)-})-}
{-(InfixOperatorApp
{-(VariableIdentifier)-}
{-(Empty)-}
{-(VariableOperator
{-(VariableSymbol)-})-}
{-(InfixOperatorApp
{-(TextElement)-}
{-(Empty)-}
{-(VariableOperator
{-(VariableSymbol)-})-}
{-(InfixOperatorApp
{-(VariableIdentifier)-}
{-(Empty)-}
{-(VariableOperator
{-(VariableSymbol)-})-}
{-(InfixOperatorApp
{-(TextElement)-}
{-(Empty)-}
{-(VariableOperator
{-(VariableSymbol)-})-}
{-(InfixOperatorApp
{-(VariableIdentifier)-}
{-(Empty)-}
{-(VariableOperator
{-(VariableSymbol)-})-}
{-(TextElement)-})-})-})-})-})-})-})-})-})-})-}
@ -319,6 +341,7 @@
(Statements
{+(InfixOperatorApp
{+(VariableIdentifier)+}
{+(Empty)+}
{+(VariableOperator
{+(InfixVariableIdentifier)+})+}
{+(VariableIdentifier)+})+}
@ -327,6 +350,7 @@
{-(VariableIdentifier)-}
{-(InfixOperatorApp
{-(VariableIdentifier)-}
{-(Empty)-}
{-(VariableOperator
{-(VariableSymbol)-})-}
{-(VariableIdentifier)-})-})-}
@ -334,15 +358,20 @@
{-(VariableIdentifier)-}
{-(InfixOperatorApp
{-(VariableIdentifier)-}
{-(Empty)-}
{-(VariableOperator
{-(VariableSymbol)-})-}
{-(VariableIdentifier)-})-})-})-}))
{+(Function
{+(VariableIdentifier)+}
{+(Statements
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
{+(QualifiedConstructorIdentifier
{+(ModuleIdentifier)+}
{+(ConstructorIdentifier)+})+})+})+}
{+(ConstructorIdentifier)+})+}
{-(Lambda
{-(VariableIdentifier)-}
{-(VariableIdentifier)-})-}))
{+(Function
{+(VariableIdentifier)+}
{+(ConstructorPattern
@ -354,34 +383,42 @@
{+(Statements
{+(InfixOperatorApp
{+(ConstructorIdentifier)+}
{+(Empty)+}
{+(VariableOperator
{+(VariableSymbol)+})+}
{+(InfixOperatorApp
{+(VariableIdentifier)+}
{+(Empty)+}
{+(VariableOperator
{+(VariableSymbol)+})+}
{+(InfixOperatorApp
{+(TextElement)+}
{+(Empty)+}
{+(VariableOperator
{+(VariableSymbol)+})+}
{+(InfixOperatorApp
{+(VariableIdentifier)+}
{+(Empty)+}
{+(VariableOperator
{+(VariableSymbol)+})+}
{+(InfixOperatorApp
{+(TextElement)+}
{+(Empty)+}
{+(VariableOperator
{+(VariableSymbol)+})+}
{+(InfixOperatorApp
{+(VariableIdentifier)+}
{+(Empty)+}
{+(VariableOperator
{+(VariableSymbol)+})+}
{+(InfixOperatorApp
{+(TextElement)+}
{+(Empty)+}
{+(VariableOperator
{+(VariableSymbol)+})+}
{+(InfixOperatorApp
{+(VariableIdentifier)+}
{+(Empty)+}
{+(VariableOperator
{+(VariableSymbol)+})+}
{+(TextElement)+})+})+})+})+})+})+})+})+})+})+}
@ -393,6 +430,7 @@
{+(VariableIdentifier)+}
{+(InfixOperatorApp
{+(VariableIdentifier)+}
{+(Empty)+}
{+(VariableOperator
{+(VariableSymbol)+})+}
{+(VariableIdentifier)+})+})+}
@ -400,16 +438,16 @@
{+(VariableIdentifier)+}
{+(InfixOperatorApp
{+(VariableIdentifier)+}
{+(Empty)+}
{+(VariableOperator
{+(VariableSymbol)+})+}
{+(VariableIdentifier)+})+})+})+})+})+}
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
(Lambda
(VariableIdentifier)
(VariableIdentifier))))
{+(Function
{+(VariableIdentifier)+}
{+(Statements
{+(Lambda
{+(VariableIdentifier)+}
{+(VariableIdentifier)+})+})+})+}
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
@ -428,10 +466,12 @@
(VariableIdentifier)
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(ConstructorOperator
(ConstructorSymbol))
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(ConstructorOperator
(ConstructorSymbol))
(VariableIdentifier))))))
@ -446,10 +486,12 @@
(VariableIdentifier))
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(VariableIdentifier))))))
@ -465,6 +507,7 @@
(Statements
(InfixOperatorApp
(Integer)
(Empty)
(VariableOperator
(VariableSymbol))
(Integer))))
@ -492,11 +535,13 @@
(Statements
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(App
(App
(VariableIdentifier)
(Empty)
(Lambda
{ (VariableIdentifier)
->(VariableIdentifier) }
@ -504,15 +549,19 @@
(Tuple
{ (VariableIdentifier)
->(VariableIdentifier) })
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(ConstructorIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(App
{ (VariableIdentifier)
->(VariableIdentifier) }
(Empty)
{ (VariableIdentifier)
->(VariableIdentifier) })))))
(Empty)
(VariableIdentifier)))))))

View File

@ -6,6 +6,7 @@
(Statements
(App
(VariableIdentifier)
(Empty)
(VariableIdentifier))))
(Function
(VariableIdentifier)
@ -13,7 +14,9 @@
(App
(App
(VariableIdentifier)
(Empty)
(VariableIdentifier))
(Empty)
(VariableIdentifier))))
(Function
(VariableIdentifier)
@ -22,20 +25,25 @@
(App
(App
(VariableIdentifier)
(Empty)
(VariableIdentifier))
(Empty)
(VariableIdentifier))
(Empty)
(VariableIdentifier))))
(Function
(VariableIdentifier)
(Statements
(App
(ConstructorIdentifier)
(Empty)
(VariableIdentifier))))
(Function
(VariableIdentifier)
(Statements
(App
(ConstructorIdentifier)
(Empty)
(VariableIdentifier))))
(Function
(VariableIdentifier)
@ -44,8 +52,11 @@
(App
(App
(ConstructorIdentifier)
(Empty)
(VariableIdentifier))
(Empty)
(VariableIdentifier))
(Empty)
(VariableIdentifier))))
(Function
(VariableIdentifier)
@ -163,7 +174,9 @@
(App
(App
(VariableIdentifier)
(Empty)
(Integer))
(Empty)
(ListComprehension
(ListComprehension
(Tuple
@ -211,6 +224,7 @@
(Statements
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(InfixVariableIdentifier))
(VariableIdentifier))))
@ -231,34 +245,42 @@
(Statements
(InfixOperatorApp
(ConstructorIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(TextElement)
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(TextElement)
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(TextElement)
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(TextElement)))))))))))
@ -270,6 +292,7 @@
(VariableIdentifier)
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(VariableIdentifier)))
@ -277,6 +300,7 @@
(VariableIdentifier)
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(VariableIdentifier))))))
@ -302,10 +326,12 @@
(VariableIdentifier)
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(ConstructorOperator
(ConstructorSymbol))
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(ConstructorOperator
(ConstructorSymbol))
(VariableIdentifier))))))
@ -319,10 +345,12 @@
(VariableIdentifier))
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(VariableIdentifier))))))
@ -336,6 +364,7 @@
(Statements
(InfixOperatorApp
(Integer)
(Empty)
(VariableOperator
(VariableSymbol))
(Integer))))
@ -359,23 +388,29 @@
(Statements
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(App
(App
(VariableIdentifier)
(Empty)
(Lambda
(VariableIdentifier)
(InfixOperatorApp
(Tuple
(VariableIdentifier))
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(ConstructorIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(App
(VariableIdentifier)
(Empty)
(VariableIdentifier))))))
(Empty)
(VariableIdentifier)))))))

View File

@ -6,6 +6,7 @@
(Statements
(App
(VariableIdentifier)
(Empty)
(VariableIdentifier))))
(Function
(VariableIdentifier)
@ -13,7 +14,9 @@
(App
(App
(VariableIdentifier)
(Empty)
(VariableIdentifier))
(Empty)
(VariableIdentifier))))
(Function
(VariableIdentifier)
@ -22,20 +25,25 @@
(App
(App
(VariableIdentifier)
(Empty)
(VariableIdentifier))
(Empty)
(VariableIdentifier))
(Empty)
(VariableIdentifier))))
(Function
(VariableIdentifier)
(Statements
(App
(ConstructorIdentifier)
(Empty)
(VariableIdentifier))))
(Function
(VariableIdentifier)
(Statements
(App
(ConstructorIdentifier)
(Empty)
(VariableIdentifier))))
(Function
(VariableIdentifier)
@ -44,8 +52,11 @@
(App
(App
(ConstructorIdentifier)
(Empty)
(VariableIdentifier))
(Empty)
(VariableIdentifier))
(Empty)
(VariableIdentifier))))
(Function
(VariableIdentifier)
@ -165,7 +176,9 @@
(App
(App
(VariableIdentifier)
(Empty)
(Integer))
(Empty)
(ListComprehension
(ListComprehension
(Tuple
@ -213,6 +226,7 @@
(Statements
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(InfixVariableIdentifier))
(VariableIdentifier))))
@ -233,34 +247,42 @@
(Statements
(InfixOperatorApp
(ConstructorIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(TextElement)
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(TextElement)
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(TextElement)
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(TextElement)))))))))))
@ -272,6 +294,7 @@
(VariableIdentifier)
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(VariableIdentifier)))
@ -279,6 +302,7 @@
(VariableIdentifier)
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(VariableIdentifier))))))
@ -304,10 +328,12 @@
(VariableIdentifier)
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(ConstructorOperator
(ConstructorSymbol))
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(ConstructorOperator
(ConstructorSymbol))
(VariableIdentifier))))))
@ -321,10 +347,12 @@
(VariableIdentifier))
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(VariableIdentifier))))))
@ -338,6 +366,7 @@
(Statements
(InfixOperatorApp
(Integer)
(Empty)
(VariableOperator
(VariableSymbol))
(Integer))))
@ -361,23 +390,29 @@
(Statements
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(App
(App
(VariableIdentifier)
(Empty)
(Lambda
(VariableIdentifier)
(InfixOperatorApp
(Tuple
(VariableIdentifier))
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(ConstructorIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(App
(VariableIdentifier)
(Empty)
(VariableIdentifier))))))
(Empty)
(VariableIdentifier)))))))

View File

@ -0,0 +1,148 @@
f num1 num2 = num2
f (Ex 1) = Ex 1
f n@num1 x@num2 = x
f _ num2 = num2
f 1 2 = 3
f "hello" "world" = "goodbye"
f 'a' 'b' = 'c'
f 1.0 2.0 = 3.0
f Ex { a = 1 } = 1
f Ex { a = 1, b = 2 } = 2
f Ex {} = 2
f Blob{start, end} = [start, end]
f Blob{..} = [start, end]
f Blob{start, end = end', ..} = [start, end', name, path]
f (1) = 1
f (-(1)) = 1
f (Example a b c) = a
f (a :<: f) = 2
f ([]) = 1
f (1, 2) = 1
f ((Just 1), Just 2) = Just 1
f (Just a, Nothing) = Nothing
f (Left a, Right b, -(1)) = b
f [] = 0
f [a] = a
f (a:bs) = a
f (a:b:cs) = a
f (a:b:c:ds) = a
f ~a = 1
f ~(-(1)) = 1
f ~(~(a, b), c) = c
f x = case x of
Just a | a < 10 -> True
| a < 20 -> False
| a > 19 -> True
g x = case x of
Just a | a < 10, True, let b :: Int -> Int
b x = x -> True
Nothing -> False
f x = case x of
Just _ -> x where x = True
Nothing -> False
f a = case a of
Just a -> g
where g = h
h = 1
Nothing -> i
where i = j
j = 2
f a = case a of
Just a -> g
Nothing -> i
where g = 1
i = 2
f = (
\ a ->
case a of
A -> b
)
a = reify tcName >>= \case
TyConI (DataD _ _ _ _ cons _) -> do
sigs <- filter (const makeSigs) <$> traverse genSig cons
decs <- traverse genDecl cons
pure $ sigs ++ decs
_ ->
fail "makeEff expects a type constructor"
f x | x < 10, x > 2 = True
| otherwise = False
f x = do
let z = x
y <- a
pure y
f x = do
let z = x
a
y
where y = pure a
a = 1
f y@Example = y { a = 1, b = 2 }
f y@(Example { a = a', b = b' }) = y { a = a' + 1, b = b' ++ " !" }
f = read @Int
f = read @Int "5"
f = read @Prelude.Int "5"
f = read @Int . Prelude.id
f = read @Prelude.Int . Prelude.id
f = read @Int . id
f = read @Prelude.Int . Prelude.id
f = read @Int .id
f = read @Prelude.Int .Prelude.id
f = read @Int. id
f = read @Prelude.Int. Prelude.id
f = read @(x (Bar a))
f = Data.List.uncons . id
f = Data.List.uncons . Prelude.id
f = Data.List.uncons. id
f = Data.List.uncons. Prelude.id
f = Data.List.uncons .id
f = Data.List.uncons .Prelude.id
f = Data.List.uncons.id
f = Data.List.uncons.Prelude.id
f = Bar ': Baz
f = Bar ':<: Baz
f = (<>)
f = a <>
f = 1 where
g = 2 where
f = a where
{- comment -}
f = a where
{-
-}
f = a where
--
f = a where
{-# COLUMN 42 #-}
b = 2
eval (a :< b) (fmap subtermValue -> QualifiedName name iden) = bar
sort :: (?cmp :: a -> a -> Bool) => [a] -> [a]
sort = sortBy ?cmp
b (E (u :: Union e b) q) = a
ifte :: ( IvoryStore a
, IvoryZero ('Stored a)
, GetAlloc eff ~ 'Scope s
) => IBool
-> Ivory eff a
-> Ivory eff a
-> Ivory eff a

View File

@ -0,0 +1,149 @@
g num1 num2 = num2
g (Ex 1) = Ex 1
g n@num1 x@num2 = x
g _ num2 = num2
g 1 2 = 3
g "hello" "world" = "goodbye"
g 'a' 'b' = 'c'
g 1.0 2.0 = 3.0
g Ex { a = 1 } = 1
g Ex { a = 1, b = 2 } = 2
g Ex {} = 2
g Blob{start, end} = [start, end]
g Blob{..} = [start, end]
g Blob{start, end = end', ..} = [start, end', name, path]
g c@Ex { a = 1 } = c
g (1) = 1
g (-(1)) = 1
g (Example a b c) = a
g (a :<: f) = 2
g ([]) = 1
g (1, 2) = 1
g ((Just 1), Just 2) = Just 1
g (Just a, Nothing) = Nothing
g (Left a, Right b, -(1)) = b
g [] = 0
g [a] = a
g (a:bs) = a
g (a:b:cs) = a
g (a:b:c:ds) = a
g ~a = 1
g ~(-(1)) = 1
g ~(~(a, b), c) = c
g x = case x of
Just a | a < 10 -> True
| a < 20 -> False
| a > 19 -> True
f x = case x of
Just a | a < 10, True, let b :: Int -> Int
b x = x -> True
Nothing -> False
g x = case x of
Just _ -> x where x = True
Nothing -> False
g a = case a of
Just a -> g
where g = h
h = 1
Nothing -> i
where i = j
j = 2
g a = case a of
Just a -> g
Nothing -> i
where g = 1
i = 2
g = (
\ a ->
case a of
A -> b
)
b = reify tcName >>= \case
TyConI (DataD _ _ _ _ cons _) -> do
sigs <- filter (const makeSigs) <$> traverse genSig cons
decs <- traverse genDecl cons
pure $ sigs ++ decs
_ ->
fail "makeEff expects a type constructor"
g y | y < 10, y > 2 = True
| otherwise = False
g x = do
let z = x
y <- a
pure y
g x = do
let z = x
a
y
where y = pure a
a = 1
g y@Example = y { a = 1, b = 2 }
g y@(Example { a = a', b = b' }) = y { a = a' + 1, b = b' ++ " !" }
g = read @Int
g = read @Int "5"
g = read @Prelude.Int "5"
g = read @Int . Prelude.id
g = read @Prelude.Int . Prelude.id
g = read @Int . id
g = read @Prelude.Int . Prelude.id
g = read @Int .id
g = read @Prelude.Int .Prelude.id
g = read @Int. id
g = read @Prelude.Int. Prelude.id
g = read @(x (Bar a))
g = Data.List.uncons . id
g = Data.List.uncons . Prelude.id
g = Data.List.uncons. id
g = Data.List.uncons. Prelude.id
g = Data.List.uncons .id
g = Data.List.uncons .Prelude.id
g = Data.List.uncons.id
g = Data.List.uncons.Prelude.id
g = Bar ': Baz
g = Bar ':<: Baz
g = (<>)
g = a <>
g = 1 where
h = 2 where
g = a where
{- comment -}
g = a where
{-
-}
g = a where
--
g = a where
{-# COLUMN 42 #-}
c = 2
eval' (a :< b) (fmap subtermValue -> QualifiedName name' iden) = foo
sort' :: (?cmp :: a -> a -> Bool) => [a] -> [a]
sort' = sortBy ?cmp
c (F (u :: Union e b) q) = b
g :: ( IvoryStore a
, IvoryZero ('Stored a)
, GetAlloc eff ~ 'Scope s
) => IBool
-> Ivory eff a
-> Ivory eff a
-> Ivory eff a

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,52 @@
f = let y = x
x = let g = 1
in g
in y
f = a
where a = b
b = 1
f = a
where a = b
b = 1
f = foo
where a = b
where c = d
e = f
x = w
g = do c
a
do b
e
do g
g
h
i
a = do
b
where
c = d
a = do
b
where
c = d
a = do
b
where
c = d
class Foo bar where
fooVariables :: bar -> [Baz]
{-
-}
class Foo1 bar where
liftFoo = foldMap
freeFoo bar = case freeFoo bar of
[n] -> Right n

View File

@ -0,0 +1,42 @@
f = let x = y
y = let h = 1
in h
in x
f = b
where b = a
a = 1
f = c
where c = b
b = 1
f = bar
where c = a
where a = e
e = f
w = x
g = do a
b
do c
d
do e
f
g
h
b = do
a
where
d = c
b = do
c
where
c = e
b = do
a
where
a = f

View File

@ -0,0 +1,204 @@
(Module
(Empty)
(Statements
(Function
(VariableIdentifier)
(Statements
(Let
{-(Function
{-(VariableIdentifier)-}
{-(Statements
{-(VariableIdentifier)-})-})-}
(Function
(VariableIdentifier)
(Statements
{+(VariableIdentifier)+}
{-(Let
{-(Function
{-(VariableIdentifier)-}
{-(Statements
{-(Integer)-})-})-}
{-(VariableIdentifier)-})-}))
{+(Function
{+(VariableIdentifier)+}
{+(Statements
{+(Let
{+(Function
{+(VariableIdentifier)+}
{+(Statements
{+(Integer)+})+})+}
{+(VariableIdentifier)+})+})+})+}
{ (VariableIdentifier)
->(VariableIdentifier) })))
(Function
(VariableIdentifier)
(Statements
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
{-(Function
{-(VariableIdentifier)-}
{-(Statements
{-(VariableIdentifier)-})-})-}
(Function
(VariableIdentifier)
(Statements
{+(VariableIdentifier)+}
{-(Integer)-}))
{+(Function
{+(VariableIdentifier)+}
{+(Statements
{+(Integer)+})+})+})))
(Function
(VariableIdentifier)
(Statements
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
(VariableIdentifier)))
(Function
(VariableIdentifier)
(Statements
(Integer))))))
(Function
(VariableIdentifier)
(Statements
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
{ (VariableIdentifier)
->(VariableIdentifier) }))
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier))))))
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
{ (VariableIdentifier)
->(VariableIdentifier) })))))
(Function
(VariableIdentifier)
(Statements
(Do
{-(VariableIdentifier)-}
(VariableIdentifier)
{+(VariableIdentifier)+}
(Do
{ (VariableIdentifier)
->(VariableIdentifier) }
{ (VariableIdentifier)
->(VariableIdentifier) }
(Do
{ (VariableIdentifier)
->(VariableIdentifier) }
{ (VariableIdentifier)
->(VariableIdentifier) })
{ (VariableIdentifier)
->(VariableIdentifier) })
{ (VariableIdentifier)
->(VariableIdentifier) })))
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
(Do
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
{ (VariableIdentifier)
->(VariableIdentifier) }))))))
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
(Do
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
(Function
(VariableIdentifier)
(Statements
{ (VariableIdentifier)
->(VariableIdentifier) }))))))
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
(Do
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
{ (VariableIdentifier)
->(VariableIdentifier) }))))))
{-(TypeClass
{-(Empty)-}
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(Statements
{-(Context
{-(Comment)-}
{-(TypeSignature
{-(VariableIdentifier)-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(Array
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-})-})-})-}
{-(TypeClass
{-(Empty)-}
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(Statements
{-(Function
{-(VariableIdentifier)-}
{-(Statements
{-(VariableIdentifier)-})-})-})-})-}
{-(Function
{-(VariableIdentifier)-}
{-(VariableIdentifier)-}
{-(Statements
{-(Match
{-(App
{-(VariableIdentifier)-}
{-(Empty)-}
{-(VariableIdentifier)-})-}
{-(Pattern
{-(ListPattern
{-(VariableIdentifier)-})-}
{-(App
{-(ConstructorIdentifier)-}
{-(Empty)-}
{-(VariableIdentifier)-})-})-})-})-})-}))

View File

@ -0,0 +1,206 @@
(Module
(Empty)
(Statements
(Function
(VariableIdentifier)
(Statements
(Let
{-(Function
{-(VariableIdentifier)-}
{-(Statements
{-(VariableIdentifier)-})-})-}
(Function
(VariableIdentifier)
(Statements
{+(VariableIdentifier)+}
{-(Let
{-(Function
{-(VariableIdentifier)-}
{-(Statements
{-(Integer)-})-})-}
{-(VariableIdentifier)-})-}))
{+(Function
{+(VariableIdentifier)+}
{+(Statements
{+(Let
{+(Function
{+(VariableIdentifier)+}
{+(Statements
{+(Integer)+})+})+}
{+(VariableIdentifier)+})+})+})+}
{ (VariableIdentifier)
->(VariableIdentifier) })))
(Function
(VariableIdentifier)
(Statements
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
{-(Function
{-(VariableIdentifier)-}
{-(Statements
{-(VariableIdentifier)-})-})-}
(Function
(VariableIdentifier)
(Statements
{+(VariableIdentifier)+}
{-(Integer)-}))
{+(Function
{+(VariableIdentifier)+}
{+(Statements
{+(Integer)+})+})+})))
(Function
(VariableIdentifier)
(Statements
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
(VariableIdentifier)))
(Function
(VariableIdentifier)
(Statements
(Integer))))))
(Function
(VariableIdentifier)
(Statements
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
{ (VariableIdentifier)
->(VariableIdentifier) }))
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier))))))
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
{ (VariableIdentifier)
->(VariableIdentifier) })))))
(Function
(VariableIdentifier)
(Statements
(Do
{+(VariableIdentifier)+}
(VariableIdentifier)
{+(Do
{+(VariableIdentifier)+}
{+(VariableIdentifier)+}
{+(Do
{+(VariableIdentifier)+}
{+(VariableIdentifier)+})+}
{+(VariableIdentifier)+})+}
{ (VariableIdentifier)
->(VariableIdentifier) }
{-(Do
{-(VariableIdentifier)-}
{-(VariableIdentifier)-}
{-(Do
{-(VariableIdentifier)-}
{-(VariableIdentifier)-})-}
{-(VariableIdentifier)-})-}
{-(VariableIdentifier)-})))
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
(Do
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
{ (VariableIdentifier)
->(VariableIdentifier) }))))))
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
(Do
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
(Function
(VariableIdentifier)
(Statements
{ (VariableIdentifier)
->(VariableIdentifier) }))))))
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
(Do
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
{ (VariableIdentifier)
->(VariableIdentifier) }))))))
{+(TypeClass
{+(Empty)+}
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(Statements
{+(Context
{+(Comment)+}
{+(TypeSignature
{+(VariableIdentifier)+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(Array
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+})+})+})+}
{+(TypeClass
{+(Empty)+}
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(Statements
{+(Function
{+(VariableIdentifier)+}
{+(Statements
{+(VariableIdentifier)+})+})+})+})+}
{+(Function
{+(VariableIdentifier)+}
{+(VariableIdentifier)+}
{+(Statements
{+(Match
{+(App
{+(VariableIdentifier)+}
{+(Empty)+}
{+(VariableIdentifier)+})+}
{+(Pattern
{+(ListPattern
{+(VariableIdentifier)+})+}
{+(App
{+(ConstructorIdentifier)+}
{+(Empty)+}
{+(VariableIdentifier)+})+})+})+})+})+}))

View File

@ -0,0 +1,160 @@
(Module
(Empty)
(Statements
(Function
(VariableIdentifier)
(Statements
(Let
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)))
(Function
(VariableIdentifier)
(Statements
(Let
(Function
(VariableIdentifier)
(Statements
(Integer)))
(VariableIdentifier))))
(VariableIdentifier))))
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)
(Statements
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)))
(Function
(VariableIdentifier)
(Statements
(Integer))))))
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)
(Statements
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)))
(Function
(VariableIdentifier)
(Statements
(Integer))))))
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)
(Statements
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)
(Statements
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)))
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier))))))
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier))))))
(Function
(VariableIdentifier)
(Statements
(Do
(VariableIdentifier)
(VariableIdentifier)
(Do
(VariableIdentifier)
(VariableIdentifier)
(Do
(VariableIdentifier)
(VariableIdentifier))
(VariableIdentifier))
(VariableIdentifier))))
(Function
(VariableIdentifier)
(Statements
(Do
(VariableIdentifier)
(Statements
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)))))))
(Function
(VariableIdentifier)
(Statements
(Do
(VariableIdentifier)
(Statements
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)))))))
(Function
(VariableIdentifier)
(Statements
(Do
(VariableIdentifier)
(Statements
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)))))))
(TypeClass
(Empty)
(TypeClassIdentifier)
(TypeVariableIdentifier)
(Statements
(Context
(Comment)
(TypeSignature
(VariableIdentifier)
(FunctionType
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(Type
(Array
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))
(TypeParameters)
(Empty)))))))
(TypeClass
(Empty)
(TypeClassIdentifier)
(TypeVariableIdentifier)
(Statements
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)))))
(Function
(VariableIdentifier)
(VariableIdentifier)
(Statements
(Match
(App
(VariableIdentifier)
(Empty)
(VariableIdentifier))
(Pattern
(ListPattern
(VariableIdentifier))
(App
(ConstructorIdentifier)
(Empty)
(VariableIdentifier))))))))

View File

@ -0,0 +1,113 @@
(Module
(Empty)
(Statements
(Function
(VariableIdentifier)
(Statements
(Let
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)))
(Function
(VariableIdentifier)
(Statements
(Let
(Function
(VariableIdentifier)
(Statements
(Integer)))
(VariableIdentifier))))
(VariableIdentifier))))
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)
(Statements
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)))
(Function
(VariableIdentifier)
(Statements
(Integer))))))
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)
(Statements
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)))
(Function
(VariableIdentifier)
(Statements
(Integer))))))
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)
(Statements
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)
(Statements
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)))
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier))))))
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier))))))
(Function
(VariableIdentifier)
(Statements
(Do
(VariableIdentifier)
(VariableIdentifier)
(Do
(VariableIdentifier)
(VariableIdentifier)
(Do
(VariableIdentifier)
(VariableIdentifier))
(VariableIdentifier))
(VariableIdentifier))))
(Function
(VariableIdentifier)
(Statements
(Do
(VariableIdentifier)
(Statements
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)))))))
(Function
(VariableIdentifier)
(Statements
(Do
(VariableIdentifier)
(Statements
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)))))))
(Function
(VariableIdentifier)
(Statements
(Do
(VariableIdentifier)
(Statements
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)))))))))

View File

@ -145,10 +145,12 @@
{+(VariableIdentifier)+}
{+(Statements
{+(Character)+})+})+}
{+(Function
{+(VariableIdentifier)+}
{+(Statements
{+(Character)+})+})+}
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
{+(Character)+}
{-(Integer)-}))
{+(Function
{+(VariableIdentifier)+}
{+(Statements
@ -283,10 +285,6 @@
{-(VariableIdentifier)-}
{-(Statements
{-(Integer)-})-})-}
{-(Function
{-(VariableIdentifier)-}
{-(Statements
{-(Integer)-})-})-}
{-(Function
{-(VariableIdentifier)-}
{-(Statements

View File

@ -1,9 +1,7 @@
(Module
(Empty)
(Statements
(QualifiedModuleIdentifier
{ (ModuleIdentifier)
->(ModuleIdentifier) }
{ (ModuleIdentifier)
->(ModuleIdentifier) })
(Statements)))
(QualifiedModuleIdentifier
{ (ModuleIdentifier)
->(ModuleIdentifier) }
{ (ModuleIdentifier)
->(ModuleIdentifier) })
(Statements))

View File

@ -1,9 +1,7 @@
(Module
(Empty)
(Statements
(QualifiedModuleIdentifier
{ (ModuleIdentifier)
->(ModuleIdentifier) }
{ (ModuleIdentifier)
->(ModuleIdentifier) })
(Statements)))
(QualifiedModuleIdentifier
{ (ModuleIdentifier)
->(ModuleIdentifier) }
{ (ModuleIdentifier)
->(ModuleIdentifier) })
(Statements))

View File

@ -1,7 +1,5 @@
(Module
(Empty)
(Statements
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier))
(Statements)))
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier))
(Statements))

View File

@ -1,7 +1,5 @@
(Module
(Empty)
(Statements
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier))
(Statements)))
(QualifiedModuleIdentifier
(ModuleIdentifier)
(ModuleIdentifier))
(Statements))

View File

@ -2,3 +2,7 @@ f = if a then 1 else 2
f = if a; then b; else c
f = if (if a then b else c) then d else e
f = if if a then b else c then d else e
head' :: [a] -> a
head' [] = error "No head for empty lists!"
head' (x:_) = x

View File

@ -2,3 +2,7 @@ g = if b then 1 else 2
g = if b; then c; else d
g = if (if b then c else d) then e else f
g = if if b then c else d then e else f
h' :: [a] -> a
h' [] = error "No head for empty lists!"
h' (x:_) = x

View File

@ -52,4 +52,39 @@
{ (VariableIdentifier)
->(VariableIdentifier) }
{ (VariableIdentifier)
->(VariableIdentifier) })))))
->(VariableIdentifier) })))
(TypeSignature
{ (VariableIdentifier)
->(VariableIdentifier) }
(FunctionType
(Type
(Array
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty)))
(TypeParameters)
(Empty))
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty))))
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(ListConstructor)
(Statements
(App
(VariableIdentifier)
(Empty)
(TextElement))))
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
(VariableIdentifier)
(ConstructorOperator
(ConstructorSymbol))
(Wildcard))
(Statements
(VariableIdentifier)))))

View File

@ -52,4 +52,39 @@
{ (VariableIdentifier)
->(VariableIdentifier) }
{ (VariableIdentifier)
->(VariableIdentifier) })))))
->(VariableIdentifier) })))
(TypeSignature
{ (VariableIdentifier)
->(VariableIdentifier) }
(FunctionType
(Type
(Array
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty)))
(TypeParameters)
(Empty))
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty))))
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(ListConstructor)
(Statements
(App
(VariableIdentifier)
(Empty)
(TextElement))))
(Function
{ (VariableIdentifier)
->(VariableIdentifier) }
(Statements
(VariableIdentifier)
(ConstructorOperator
(ConstructorSymbol))
(Wildcard))
(Statements
(VariableIdentifier)))))

View File

@ -34,4 +34,36 @@
(VariableIdentifier)
(VariableIdentifier))
(VariableIdentifier)
(VariableIdentifier))))))
(VariableIdentifier))))
(TypeSignature
(VariableIdentifier)
(FunctionType
(Type
(Array
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty)))
(TypeParameters)
(Empty))
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty))))
(Function
(VariableIdentifier)
(ListConstructor)
(Statements
(App
(VariableIdentifier)
(Empty)
(TextElement))))
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)
(ConstructorOperator
(ConstructorSymbol))
(Wildcard))
(Statements
(VariableIdentifier)))))

View File

@ -34,4 +34,36 @@
(VariableIdentifier)
(VariableIdentifier))
(VariableIdentifier)
(VariableIdentifier))))))
(VariableIdentifier))))
(TypeSignature
(VariableIdentifier)
(FunctionType
(Type
(Array
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty)))
(TypeParameters)
(Empty))
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty))))
(Function
(VariableIdentifier)
(ListConstructor)
(Statements
(App
(VariableIdentifier)
(Empty)
(TextElement))))
(Function
(VariableIdentifier)
(Statements
(VariableIdentifier)
(ConstructorOperator
(ConstructorSymbol))
(Wildcard))
(Statements
(VariableIdentifier)))))

View File

@ -71,6 +71,7 @@
(QuasiQuotation
(Empty)
(QuasiQuotationExpressionBody))
(Empty)
(VariableOperator
(InfixVariableIdentifier))
(VariableIdentifier))))
@ -85,16 +86,19 @@
(Splice
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(VariableIdentifier))))))
(Splice
(App
(VariableIdentifier)
(Empty)
(QuotedName
(QuotedName
(TypeConstructorIdentifier)))))))

View File

@ -7,499 +7,290 @@
->(TypeClassIdentifier) }
(TypeVariableIdentifier)
(Statements))
{+(TypeClass
{+(Empty)+}
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(Statements)+})+}
{+(TypeClass
{+(Context'
{+(Class
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+})+})+}
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(Statements)+})+}
{+(TypeClass
{+(Context'
{+(Statements
{+(Class
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+})+}
{+(Class
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+})+})+})+}
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(Statements)+})+}
{+(TypeClass
{+(Empty)+}
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(Statements
{+(TypeSignature
{+(VariableIdentifier)+}
{+(Context'
{+(Class
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+})+})+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+})+}
{+(TypeSignature
{+(VariableIdentifier)+}
{+(Context'
{+(Statements
{+(Class
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+})+}
{+(Class
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+})+})+})+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+})+})+})+}
{+(TypeClass
{+(Empty)+}
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(Statements
{+(Fixity'
{+(Empty)+}
{+(VariableOperator
{+(InfixVariableIdentifier)+})+})+}
{+(Fixity'
{+(Integer)+}
{+(VariableOperator
{+(InfixVariableIdentifier)+})+})+}
{+(Fixity'
{+(Integer)+}
{+(VariableOperator
{+(InfixVariableIdentifier)+})+}
{+(VariableOperator
{+(InfixVariableIdentifier)+})+}
{+(VariableOperator
{+(InfixVariableIdentifier)+})+})+}
{+(Fixity'
{+(Empty)+}
{+(VariableOperator
{+(VariableSymbol)+})+})+}
{+(Fixity'
{+(Integer)+}
{+(VariableOperator
{+(VariableSymbol)+})+})+}
{+(Fixity'
{+(Integer)+}
{+(ConstructorOperator
{+(ConstructorSymbol)+})+})+}
{+(Fixity'
{+(Integer)+}
{+(ConstructorOperator
{+(ConstructorSymbol)+})+})+}
{+(Fixity'
{+(Integer)+}
{+(ConstructorOperator
{+(ConstructorSymbol)+})+})+})+})+}
{+(TypeClass
{+(Context'
{+(Class
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+})+})+}
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(Statements
{+(TypeSignature
{+(VariableIdentifier)+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+})+}
{+(TypeSignature
{+(VariableOperator
{+(VariableSymbol)+})+}
{+(VariableOperator
{+(VariableSymbol)+})+}
{+(VariableOperator
{+(VariableSymbol)+})+}
{+(VariableOperator
{+(VariableSymbol)+})+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+})+}
{+(TypeSignature
{+(VariableIdentifier)+}
{+(VariableIdentifier)+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+})+}
{+(TypeSignature
{+(VariableIdentifier)+}
{+(TypeVariableIdentifier)+})+})+})+}
{+(TypeClass
{+(Context'
{+(Class
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(TypeVariableIdentifier)+})+})+}
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(Statements)+})+}
{+(TypeClass
{+(Empty)+}
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(Statements
{+(TypeSignature
{+(VariableIdentifier)+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+}
{+(DefaultSignature
{+(VariableIdentifier)+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+})+})+}
(TypeClass
(Empty)
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
{+(AnnotatedTypeVariable
{+(TypeVariableIdentifier)+}
{+(TypeConstructorIdentifier)+})+}
{-(TypeVariableIdentifier)-}
{-(TypeVariableIdentifier)-}
(TypeVariableIdentifier)
(TypeVariableIdentifier)
(Statements))
(TypeClass
(Context'
(Class
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(TypeVariableIdentifier)))
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(TypeVariableIdentifier)
(Statements))
(TypeClass
(Context'
(Statements
(Class
(TypeClassIdentifier)
(TypeVariableIdentifier))
(Class
(TypeClassIdentifier)
(TypeVariableIdentifier))))
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(TypeVariableIdentifier)
(Statements))
(TypeClass
(Empty)
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(TypeVariableIdentifier)
(Statements
(TypeSignature
{ (VariableIdentifier)
->(VariableIdentifier) }
(Context'
(Class
(TypeClassIdentifier)
(TypeVariableIdentifier)))
(FunctionType
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(FunctionType
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty)))))
(TypeSignature
{ (VariableIdentifier)
->(VariableIdentifier) }
(Context'
(Statements
(Class
(TypeClassIdentifier)
(TypeVariableIdentifier))
(Class
(TypeClassIdentifier)
(TypeVariableIdentifier))))
(FunctionType
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(FunctionType
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty)))))))
(TypeClass
(Empty)
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(TypeVariableIdentifier)
(Statements
(Fixity'
(Empty)
(VariableOperator
(InfixVariableIdentifier)))
(Fixity'
{ (Integer)
->(Integer) }
(VariableOperator
(InfixVariableIdentifier)))
(Fixity'
{ (Integer)
->(Integer) }
(VariableOperator
(InfixVariableIdentifier))
(VariableOperator
(InfixVariableIdentifier))
(VariableOperator
(InfixVariableIdentifier)))
(Fixity'
(Empty)
(VariableOperator
(VariableSymbol)))
(Fixity'
{ (Integer)
->(Integer) }
(VariableOperator
(VariableSymbol)))
(Fixity'
{ (Integer)
->(Integer) }
(ConstructorOperator
(ConstructorSymbol)))
(Fixity'
{ (Integer)
->(Integer) }
(ConstructorOperator
(ConstructorSymbol)))
(Fixity'
{ (Integer)
->(Integer) }
(ConstructorOperator
(ConstructorSymbol)))))
(TypeClass
(Context'
(Class
(TypeClassIdentifier)
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }))
(TypeClassIdentifier)
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }
(Statements
(TypeSignature
(VariableIdentifier)
(FunctionType
(Type
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }
(TypeParameters)
(Empty))
(FunctionType
(Type
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }
(TypeParameters)
(Empty))
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(TypeSignature
(VariableOperator
(VariableSymbol))
(VariableOperator
(VariableSymbol))
(VariableOperator
(VariableSymbol))
(VariableOperator
(VariableSymbol))
(FunctionType
(Type
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }
(TypeParameters)
(Empty))
(FunctionType
(Type
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }
(TypeParameters)
(Empty))
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(TypeSignature
(VariableIdentifier)
(VariableIdentifier)
(FunctionType
(Type
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }
(TypeParameters)
(Empty))
(FunctionType
(Type
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }
(TypeParameters)
(Empty))
(Type
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }
(TypeParameters)
(Empty)))))
(TypeSignature
(VariableIdentifier)
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) })))
(TypeClass
(Context'
(Class
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(TypeVariableIdentifier)
(TypeVariableIdentifier)
(TypeVariableIdentifier)))
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(TypeVariableIdentifier)
(TypeVariableIdentifier)
(TypeVariableIdentifier)
(Statements))
(TypeClass
(Empty)
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }
(Statements
(TypeSignature
{ (VariableIdentifier)
->(VariableIdentifier) }
(FunctionType
(Type
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }
(TypeParameters)
(Empty))
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))))
(DefaultSignature
{ (VariableIdentifier)
->(VariableIdentifier) }
(FunctionType
(Type
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }
(TypeParameters)
(Empty))
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))))))
(TypeClass
(Empty)
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(AnnotatedTypeVariable
(TypeVariableIdentifier)
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) })
(Statements))
(TypeClass
(Empty)
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(AnnotatedTypeVariable
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }
(KindFunctionType
(Kind
(KindListType
(KindFunctionType
(Kind
(Star))
(Kind
(Star)))))
(KindFunctionType
(Kind
(Star))
(Kind
(Star)))))
(Statements))
{+(TypeClass
{+(Empty)+}
{+(TypeClassIdentifier)+}
{+(AnnotatedTypeVariable
{+(TypeVariableIdentifier)+}
{+(KindFunctionType
{+(Kind
{+(KindListType
{+(KindFunctionType
{+(Kind
{+(Star)+})+}
{+(Kind
{+(Star)+})+})+})+})+}
{+(KindFunctionType
{+(Kind
{+(Star)+})+}
{+(Kind
{+(Star)+})+})+})+})+}
{+(Statements)+})+}
{-(TypeClass
{-(Context'
{-(Class
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-})-})-}
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(Statements)-})-}
{-(TypeClass
{-(Context'
{-(Statements
{-(Class
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-})-}
{-(Class
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-})-})-})-}
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(Statements)-})-}
{-(TypeClass
{-(Empty)-}
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(Statements
{-(TypeSignature
{-(VariableIdentifier)-}
{-(Context'
{-(Class
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-})-})-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-})-}
{-(TypeSignature
{-(VariableIdentifier)-}
{-(Context'
{-(Statements
{-(Class
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-})-}
{-(Class
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-})-})-})-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-})-})-})-}
{-(TypeClass
{-(Empty)-}
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(Statements
{-(Fixity'
{-(Empty)-}
{-(VariableOperator
{-(InfixVariableIdentifier)-})-})-}
{-(Fixity'
{-(Integer)-}
{-(VariableOperator
{-(InfixVariableIdentifier)-})-})-}
{-(Fixity'
{-(Integer)-}
{-(VariableOperator
{-(InfixVariableIdentifier)-})-}
{-(VariableOperator
{-(InfixVariableIdentifier)-})-}
{-(VariableOperator
{-(InfixVariableIdentifier)-})-})-}
{-(Fixity'
{-(Empty)-}
{-(VariableOperator
{-(VariableSymbol)-})-})-}
{-(Fixity'
{-(Integer)-}
{-(VariableOperator
{-(VariableSymbol)-})-})-}
{-(Fixity'
{-(Integer)-}
{-(ConstructorOperator
{-(ConstructorSymbol)-})-})-}
{-(Fixity'
{-(Integer)-}
{-(ConstructorOperator
{-(ConstructorSymbol)-})-})-}
{-(Fixity'
{-(Integer)-}
{-(ConstructorOperator
{-(ConstructorSymbol)-})-})-})-})-}
{-(TypeClass
{-(Context'
{-(Class
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-})-})-}
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(Statements
{-(TypeSignature
{-(VariableIdentifier)-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-})-}
{-(TypeSignature
{-(VariableOperator
{-(VariableSymbol)-})-}
{-(VariableOperator
{-(VariableSymbol)-})-}
{-(VariableOperator
{-(VariableSymbol)-})-}
{-(VariableOperator
{-(VariableSymbol)-})-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-})-}
{-(TypeSignature
{-(VariableIdentifier)-}
{-(VariableIdentifier)-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-})-}
{-(TypeSignature
{-(VariableIdentifier)-}
{-(TypeVariableIdentifier)-})-})-})-}
{-(TypeClass
{-(Context'
{-(Class
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(TypeVariableIdentifier)-})-})-}
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(Statements)-})-}
{-(TypeClass
{-(Empty)-}
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(Statements
{-(TypeSignature
{-(VariableIdentifier)-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-}
{-(DefaultSignature
{-(VariableIdentifier)-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-})-})-}
{-(TypeClass
{-(Empty)-}
{-(TypeClassIdentifier)-}
{-(AnnotatedTypeVariable
{-(TypeVariableIdentifier)-}
{-(TypeConstructorIdentifier)-})-}
{-(Statements)-})-}
{-(TypeClass
{-(Empty)-}
{-(TypeClassIdentifier)-}
{-(AnnotatedTypeVariable
{-(TypeVariableIdentifier)-}
{-(KindFunctionType
{-(Kind
{-(KindListType
{-(KindFunctionType
{-(Kind
{-(Star)-})-}
{-(Kind
{-(Star)-})-})-})-})-}
{-(KindFunctionType
{-(Kind
{-(Star)-})-}
{-(Kind
{-(Star)-})-})-})-})-}
{-(Statements)-})-}
(TypeClass
(Empty)
(TypeClassIdentifier)

View File

@ -7,502 +7,290 @@
->(TypeClassIdentifier) }
(TypeVariableIdentifier)
(Statements))
{+(TypeClass
{+(Empty)+}
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(Statements)+})+}
{+(TypeClass
{+(Context'
{+(Class
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+})+})+}
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(Statements)+})+}
{+(TypeClass
{+(Context'
{+(Statements
{+(Class
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+})+}
{+(Class
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+})+})+})+}
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(Statements)+})+}
{+(TypeClass
{+(Empty)+}
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(Statements
{+(TypeSignature
{+(VariableIdentifier)+}
{+(Context'
{+(Class
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+})+})+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+})+}
{+(TypeSignature
{+(VariableIdentifier)+}
{+(Context'
{+(Statements
{+(Class
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+})+}
{+(Class
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+})+})+})+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+})+})+})+}
{+(TypeClass
{+(Empty)+}
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(Statements
{+(Fixity'
{+(Empty)+}
{+(VariableOperator
{+(InfixVariableIdentifier)+})+})+}
{+(Fixity'
{+(Integer)+}
{+(VariableOperator
{+(InfixVariableIdentifier)+})+})+}
{+(Fixity'
{+(Integer)+}
{+(VariableOperator
{+(InfixVariableIdentifier)+})+}
{+(VariableOperator
{+(InfixVariableIdentifier)+})+}
{+(VariableOperator
{+(InfixVariableIdentifier)+})+})+}
{+(Fixity'
{+(Empty)+}
{+(VariableOperator
{+(VariableSymbol)+})+})+}
{+(Fixity'
{+(Integer)+}
{+(VariableOperator
{+(VariableSymbol)+})+})+}
{+(Fixity'
{+(Integer)+}
{+(ConstructorOperator
{+(ConstructorSymbol)+})+})+}
{+(Fixity'
{+(Integer)+}
{+(ConstructorOperator
{+(ConstructorSymbol)+})+})+}
{+(Fixity'
{+(Integer)+}
{+(ConstructorOperator
{+(ConstructorSymbol)+})+})+})+})+}
{+(TypeClass
{+(Context'
{+(Class
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+})+})+}
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(Statements
{+(TypeSignature
{+(VariableIdentifier)+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+})+}
{+(TypeSignature
{+(VariableOperator
{+(VariableSymbol)+})+}
{+(VariableOperator
{+(VariableSymbol)+})+}
{+(VariableOperator
{+(VariableSymbol)+})+}
{+(VariableOperator
{+(VariableSymbol)+})+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+})+}
{+(TypeSignature
{+(VariableIdentifier)+}
{+(VariableIdentifier)+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+})+}
{+(TypeSignature
{+(VariableIdentifier)+}
{+(TypeVariableIdentifier)+})+})+})+}
{+(TypeClass
{+(Context'
{+(Class
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(TypeVariableIdentifier)+})+})+}
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(Statements)+})+}
{+(TypeClass
{+(Empty)+}
{+(TypeClassIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(Statements
{+(TypeSignature
{+(VariableIdentifier)+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+}
{+(DefaultSignature
{+(VariableIdentifier)+}
{+(FunctionType
{+(Type
{+(TypeVariableIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+}
{+(Type
{+(TypeConstructorIdentifier)+}
{+(TypeParameters)+}
{+(Empty)+})+})+})+})+})+}
{+(TypeClass
{+(Empty)+}
{+(TypeClassIdentifier)+}
{+(AnnotatedTypeVariable
{+(TypeVariableIdentifier)+}
{+(TypeConstructorIdentifier)+})+}
{+(Statements)+})+}
{+(TypeClass
{+(Empty)+}
{+(TypeClassIdentifier)+}
{+(AnnotatedTypeVariable
{+(TypeVariableIdentifier)+}
{+(KindFunctionType
{+(Kind
{+(KindListType
{+(KindFunctionType
{+(Kind
{+(Star)+})+}
{+(Kind
{+(Star)+})+})+})+})+}
{+(KindFunctionType
{+(Kind
{+(Star)+})+}
{+(Kind
{+(Star)+})+})+})+})+}
{+(Statements)+})+}
{-(TypeClass
{-(Empty)-}
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(Statements)-})-}
{-(TypeClass
{-(Context'
{-(Class
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-})-})-}
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(Statements)-})-}
{-(TypeClass
{-(Context'
{-(Statements
{-(Class
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-})-}
{-(Class
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-})-})-})-}
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(Statements)-})-}
{-(TypeClass
{-(Empty)-}
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(Statements
{-(TypeSignature
{-(VariableIdentifier)-}
{-(Context'
{-(Class
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-})-})-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-})-}
{-(TypeSignature
{-(VariableIdentifier)-}
{-(Context'
{-(Statements
{-(Class
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-})-}
{-(Class
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-})-})-})-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-})-})-})-}
{-(TypeClass
{-(Empty)-}
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(Statements
{-(Fixity'
{-(Empty)-}
{-(VariableOperator
{-(InfixVariableIdentifier)-})-})-}
{-(Fixity'
{-(Integer)-}
{-(VariableOperator
{-(InfixVariableIdentifier)-})-})-}
{-(Fixity'
{-(Integer)-}
{-(VariableOperator
{-(InfixVariableIdentifier)-})-}
{-(VariableOperator
{-(InfixVariableIdentifier)-})-}
{-(VariableOperator
{-(InfixVariableIdentifier)-})-})-}
{-(Fixity'
{-(Empty)-}
{-(VariableOperator
{-(VariableSymbol)-})-})-}
{-(Fixity'
{-(Integer)-}
{-(VariableOperator
{-(VariableSymbol)-})-})-}
{-(Fixity'
{-(Integer)-}
{-(ConstructorOperator
{-(ConstructorSymbol)-})-})-}
{-(Fixity'
{-(Integer)-}
{-(ConstructorOperator
{-(ConstructorSymbol)-})-})-}
{-(Fixity'
{-(Integer)-}
{-(ConstructorOperator
{-(ConstructorSymbol)-})-})-})-})-}
{-(TypeClass
{-(Context'
{-(Class
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-})-})-}
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(Statements
{-(TypeSignature
{-(VariableIdentifier)-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-})-}
{-(TypeSignature
{-(VariableOperator
{-(VariableSymbol)-})-}
{-(VariableOperator
{-(VariableSymbol)-})-}
{-(VariableOperator
{-(VariableSymbol)-})-}
{-(VariableOperator
{-(VariableSymbol)-})-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-})-}
{-(TypeSignature
{-(VariableIdentifier)-}
{-(VariableIdentifier)-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-})-}
{-(TypeSignature
{-(VariableIdentifier)-}
{-(TypeVariableIdentifier)-})-})-})-}
{-(TypeClass
{-(Context'
{-(Class
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(TypeVariableIdentifier)-})-})-}
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(Statements)-})-}
{-(TypeClass
{-(Empty)-}
{-(TypeClassIdentifier)-}
{-(TypeVariableIdentifier)-}
{-(Statements
{-(TypeSignature
{-(VariableIdentifier)-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-}
{-(DefaultSignature
{-(VariableIdentifier)-}
{-(FunctionType
{-(Type
{-(TypeVariableIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-}
{-(Type
{-(TypeConstructorIdentifier)-}
{-(TypeParameters)-}
{-(Empty)-})-})-})-})-})-}
{-(TypeClass
{-(Empty)-}
{-(TypeClassIdentifier)-}
{-(AnnotatedTypeVariable
{-(TypeVariableIdentifier)-}
{-(TypeConstructorIdentifier)-})-}
{-(Statements)-})-}
{-(TypeClass
{-(Empty)-}
{-(TypeClassIdentifier)-}
{-(AnnotatedTypeVariable
{-(TypeVariableIdentifier)-}
{-(KindFunctionType
{-(Kind
{-(KindListType
{-(KindFunctionType
{-(Kind
{-(Star)-})-}
{-(Kind
{-(Star)-})-})-})-})-}
{-(KindFunctionType
{-(Kind
{-(Star)-})-}
{-(Kind
{-(Star)-})-})-})-})-}
{-(Statements)-})-}
(TypeClass
(Empty)
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(TypeVariableIdentifier)
(TypeVariableIdentifier)
(Statements))
(TypeClass
(Context'
(Class
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(TypeVariableIdentifier)))
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(TypeVariableIdentifier)
(Statements))
(TypeClass
(Context'
(Statements
(Class
(TypeClassIdentifier)
(TypeVariableIdentifier))
(Class
(TypeClassIdentifier)
(TypeVariableIdentifier))))
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(TypeVariableIdentifier)
(Statements))
(TypeClass
(Empty)
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(TypeVariableIdentifier)
(Statements
(TypeSignature
{ (VariableIdentifier)
->(VariableIdentifier) }
(Context'
(Class
(TypeClassIdentifier)
(TypeVariableIdentifier)))
(FunctionType
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(FunctionType
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty)))))
(TypeSignature
{ (VariableIdentifier)
->(VariableIdentifier) }
(Context'
(Statements
(Class
(TypeClassIdentifier)
(TypeVariableIdentifier))
(Class
(TypeClassIdentifier)
(TypeVariableIdentifier))))
(FunctionType
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(FunctionType
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty))
(Type
(TypeVariableIdentifier)
(TypeParameters)
(Empty)))))))
(TypeClass
(Empty)
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(TypeVariableIdentifier)
(Statements
(Fixity'
(Empty)
(VariableOperator
(InfixVariableIdentifier)))
(Fixity'
{ (Integer)
->(Integer) }
(VariableOperator
(InfixVariableIdentifier)))
(Fixity'
{ (Integer)
->(Integer) }
(VariableOperator
(InfixVariableIdentifier))
(VariableOperator
(InfixVariableIdentifier))
(VariableOperator
(InfixVariableIdentifier)))
(Fixity'
(Empty)
(VariableOperator
(VariableSymbol)))
(Fixity'
{ (Integer)
->(Integer) }
(VariableOperator
(VariableSymbol)))
(Fixity'
{ (Integer)
->(Integer) }
(ConstructorOperator
(ConstructorSymbol)))
(Fixity'
{ (Integer)
->(Integer) }
(ConstructorOperator
(ConstructorSymbol)))
(Fixity'
{ (Integer)
->(Integer) }
(ConstructorOperator
(ConstructorSymbol)))))
(TypeClass
(Context'
(Class
(TypeClassIdentifier)
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }))
(TypeClassIdentifier)
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }
(Statements
(TypeSignature
(VariableIdentifier)
(FunctionType
(Type
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }
(TypeParameters)
(Empty))
(FunctionType
(Type
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }
(TypeParameters)
(Empty))
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(TypeSignature
(VariableOperator
(VariableSymbol))
(VariableOperator
(VariableSymbol))
(VariableOperator
(VariableSymbol))
(VariableOperator
(VariableSymbol))
(FunctionType
(Type
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }
(TypeParameters)
(Empty))
(FunctionType
(Type
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }
(TypeParameters)
(Empty))
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty)))))
(TypeSignature
(VariableIdentifier)
(VariableIdentifier)
(FunctionType
(Type
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }
(TypeParameters)
(Empty))
(FunctionType
(Type
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }
(TypeParameters)
(Empty))
(Type
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }
(TypeParameters)
(Empty)))))
(TypeSignature
(VariableIdentifier)
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) })))
(TypeClass
(Context'
(Class
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(TypeVariableIdentifier)
(TypeVariableIdentifier)
(TypeVariableIdentifier)))
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(TypeVariableIdentifier)
(TypeVariableIdentifier)
(TypeVariableIdentifier)
(Statements))
(TypeClass
(Empty)
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }
(Statements
(TypeSignature
{ (VariableIdentifier)
->(VariableIdentifier) }
(FunctionType
(Type
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }
(TypeParameters)
(Empty))
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))))
(DefaultSignature
{ (VariableIdentifier)
->(VariableIdentifier) }
(FunctionType
(Type
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }
(TypeParameters)
(Empty))
(Type
(TypeConstructorIdentifier)
(TypeParameters)
(Empty))))))
(TypeClass
(Empty)
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(AnnotatedTypeVariable
(TypeVariableIdentifier)
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) })
(Statements))
(TypeClass
(Empty)
{ (TypeClassIdentifier)
->(TypeClassIdentifier) }
(AnnotatedTypeVariable
{ (TypeVariableIdentifier)
->(TypeVariableIdentifier) }
(KindFunctionType
(Kind
(KindListType
(KindFunctionType
(Kind
(Star))
(Kind
(Star)))))
(KindFunctionType
(Kind
(Star))
(Kind
(Star)))))
(Statements))
(TypeClass
(Empty)
(TypeClassIdentifier)

View File

@ -653,8 +653,10 @@
(Statements
(App
(ConstructorIdentifier)
(Empty)
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(VariableIdentifier)))))))
@ -776,6 +778,7 @@
(Statements
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(ConstructorIdentifier))))))

View File

@ -653,8 +653,10 @@
(Statements
(App
(ConstructorIdentifier)
(Empty)
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(VariableIdentifier)))))))
@ -776,6 +778,7 @@
(Statements
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(ConstructorIdentifier))))))

View File

@ -609,8 +609,10 @@
(Statements
(App
(ConstructorIdentifier)
(Empty)
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(VariableIdentifier)))))))
@ -709,6 +711,7 @@
(Statements
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(ConstructorIdentifier))))))

View File

@ -609,8 +609,10 @@
(Statements
(App
(ConstructorIdentifier)
(Empty)
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(VariableIdentifier)))))))
@ -709,6 +711,7 @@
(Statements
(InfixOperatorApp
(VariableIdentifier)
(Empty)
(VariableOperator
(VariableSymbol))
(ConstructorIdentifier))))))

View File

@ -115,14 +115,11 @@
{+(TypeConstructorIdentifier)+}
{+(TypeVariableIdentifier)+})+})+}
{+(Empty)+})+})+})+})+})+}
(TypeSynonym
(Statements
{ (TypeConstructorIdentifier)
->(TypeConstructorIdentifier) }
{+(TypeConstructorIdentifier)+})
{ (TypePattern
{-(FunctionConstructor)-})
->(TextElement) })
{+(TypeSynonym
{+(Statements
{+(TypeConstructorIdentifier)+}
{+(TypeConstructorIdentifier)+})+}
{+(TextElement)+})+}
{+(TypeSynonym
{+(Statements
{+(TypeConstructorIdentifier)+}
@ -171,6 +168,11 @@
{+(TypeConstructorIdentifier)+}
{+(TypeVariableIdentifier)+}
{+(TypeVariableIdentifier)+})+})+})+})+}
{-(TypeSynonym
{-(Statements
{-(TypeConstructorIdentifier)-})-}
{-(TypePattern
{-(FunctionConstructor)-})-})-}
{-(TypeSynonym
{-(Statements
{-(TypeConstructorIdentifier)-})-}