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:
parent
1ca5894806
commit
c2a3608154
@ -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)
|
||||
|
||||
|
@ -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
|
||||
|
@ -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)-})-}
|
||||
|
@ -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)-})-}
|
||||
|
@ -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)))))))
|
||||
|
@ -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)))))))
|
||||
|
@ -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)))))))
|
||||
|
@ -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)))))))
|
||||
|
148
test/fixtures/haskell/corpus/function-declarations.A.hs
vendored
Normal file
148
test/fixtures/haskell/corpus/function-declarations.A.hs
vendored
Normal 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
|
149
test/fixtures/haskell/corpus/function-declarations.B.hs
vendored
Normal file
149
test/fixtures/haskell/corpus/function-declarations.B.hs
vendored
Normal 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
|
2065
test/fixtures/haskell/corpus/function-declarations.diffA-B.txt
vendored
Normal file
2065
test/fixtures/haskell/corpus/function-declarations.diffA-B.txt
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2158
test/fixtures/haskell/corpus/function-declarations.diffB-A.txt
vendored
Normal file
2158
test/fixtures/haskell/corpus/function-declarations.diffB-A.txt
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1086
test/fixtures/haskell/corpus/function-declarations.parseA.txt
vendored
Normal file
1086
test/fixtures/haskell/corpus/function-declarations.parseA.txt
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1098
test/fixtures/haskell/corpus/function-declarations.parseB.txt
vendored
Normal file
1098
test/fixtures/haskell/corpus/function-declarations.parseB.txt
vendored
Normal file
File diff suppressed because it is too large
Load Diff
52
test/fixtures/haskell/corpus/layout.A.hs
vendored
Normal file
52
test/fixtures/haskell/corpus/layout.A.hs
vendored
Normal 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
|
42
test/fixtures/haskell/corpus/layout.B.hs
vendored
Normal file
42
test/fixtures/haskell/corpus/layout.B.hs
vendored
Normal 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
|
204
test/fixtures/haskell/corpus/layout.diffA-B.txt
vendored
Normal file
204
test/fixtures/haskell/corpus/layout.diffA-B.txt
vendored
Normal 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)-})-})-})-})-})-}))
|
206
test/fixtures/haskell/corpus/layout.diffB-A.txt
vendored
Normal file
206
test/fixtures/haskell/corpus/layout.diffB-A.txt
vendored
Normal 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)+})+})+})+})+})+}))
|
160
test/fixtures/haskell/corpus/layout.parseA.txt
vendored
Normal file
160
test/fixtures/haskell/corpus/layout.parseA.txt
vendored
Normal 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))))))))
|
113
test/fixtures/haskell/corpus/layout.parseB.txt
vendored
Normal file
113
test/fixtures/haskell/corpus/layout.parseB.txt
vendored
Normal 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)))))))))
|
@ -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
|
||||
|
@ -1,9 +1,7 @@
|
||||
(Module
|
||||
(Empty)
|
||||
(Statements
|
||||
(QualifiedModuleIdentifier
|
||||
{ (ModuleIdentifier)
|
||||
->(ModuleIdentifier) }
|
||||
{ (ModuleIdentifier)
|
||||
->(ModuleIdentifier) })
|
||||
(Statements)))
|
||||
(QualifiedModuleIdentifier
|
||||
{ (ModuleIdentifier)
|
||||
->(ModuleIdentifier) }
|
||||
{ (ModuleIdentifier)
|
||||
->(ModuleIdentifier) })
|
||||
(Statements))
|
||||
|
@ -1,9 +1,7 @@
|
||||
(Module
|
||||
(Empty)
|
||||
(Statements
|
||||
(QualifiedModuleIdentifier
|
||||
{ (ModuleIdentifier)
|
||||
->(ModuleIdentifier) }
|
||||
{ (ModuleIdentifier)
|
||||
->(ModuleIdentifier) })
|
||||
(Statements)))
|
||||
(QualifiedModuleIdentifier
|
||||
{ (ModuleIdentifier)
|
||||
->(ModuleIdentifier) }
|
||||
{ (ModuleIdentifier)
|
||||
->(ModuleIdentifier) })
|
||||
(Statements))
|
||||
|
@ -1,7 +1,5 @@
|
||||
(Module
|
||||
(Empty)
|
||||
(Statements
|
||||
(QualifiedModuleIdentifier
|
||||
(ModuleIdentifier)
|
||||
(ModuleIdentifier))
|
||||
(Statements)))
|
||||
(QualifiedModuleIdentifier
|
||||
(ModuleIdentifier)
|
||||
(ModuleIdentifier))
|
||||
(Statements))
|
||||
|
@ -1,7 +1,5 @@
|
||||
(Module
|
||||
(Empty)
|
||||
(Statements
|
||||
(QualifiedModuleIdentifier
|
||||
(ModuleIdentifier)
|
||||
(ModuleIdentifier))
|
||||
(Statements)))
|
||||
(QualifiedModuleIdentifier
|
||||
(ModuleIdentifier)
|
||||
(ModuleIdentifier))
|
||||
(Statements))
|
||||
|
4
test/fixtures/haskell/corpus/statements.A.hs
vendored
4
test/fixtures/haskell/corpus/statements.A.hs
vendored
@ -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
|
||||
|
4
test/fixtures/haskell/corpus/statements.B.hs
vendored
4
test/fixtures/haskell/corpus/statements.B.hs
vendored
@ -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
|
||||
|
@ -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)))))
|
||||
|
@ -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)))))
|
||||
|
@ -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)))))
|
||||
|
@ -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)))))
|
||||
|
@ -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)))))))
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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))))))
|
||||
|
@ -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))))))
|
||||
|
@ -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))))))
|
||||
|
@ -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))))))
|
||||
|
@ -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)-})-}
|
||||
|
Loading…
Reference in New Issue
Block a user