nonterminal PrimPatterns

In file: PrimitiveMatch.sv

nonterminal PrimPattern

In file: PrimitiveMatch.sv

concrete production matchPrimitiveConcrete

top::Expr ::= 'match' e::Expr 'return' t::TypeExpr 'with' pr::PrimPatterns 'else' '->' f::Expr 'end'

In file: PrimitiveMatch.sv

abstract production matchPrimitive

top::Expr ::= e::Expr t::TypeExpr pr::PrimPatterns f::Expr

In file: PrimitiveMatch.sv

abstract production matchPrimitiveReal

top::Expr ::= e::Expr t::TypeExpr pr::PrimPatterns f::Expr

In file: PrimitiveMatch.sv

concrete production onePattern

top::PrimPatterns ::= p::PrimPattern

In file: PrimitiveMatch.sv

concrete production consPattern

top::PrimPatterns ::= p::PrimPattern '|' ps::PrimPatterns

In file: PrimitiveMatch.sv

concrete production prodPattern

top::PrimPattern ::= qn::QName '(' ns::VarBinders ')' '->' e::Expr

In file: PrimitiveMatch.sv

abstract production prodPatternNormal

top::PrimPattern ::= qn::Decorated QName ns::VarBinders e::Expr

In file: PrimitiveMatch.sv

abstract production prodPatternGadt

top::PrimPattern ::= qn::Decorated QName ns::VarBinders e::Expr

In file: PrimitiveMatch.sv

abstract production integerPattern

top::PrimPattern ::= i::Int_t '->' e::Expr

In file: PrimitiveMatch.sv

abstract production stringPattern

top::PrimPattern ::= i::String_t '->' e::Expr

In file: PrimitiveMatch.sv

abstract production booleanPattern

top::PrimPattern ::= i::String '->' e::Expr

In file: PrimitiveMatch.sv

abstract production nilPattern

top::PrimPattern ::= e::Expr

In file: PrimitiveMatch.sv

abstract production conslstPattern

top::PrimPattern ::= h::Name t::Name e::Expr

In file: PrimitiveMatch.sv

function skolemizeProductionType

Type ::= te::Type

In file: Types.sv

function fullySkolemizeProductionType

Type ::= te::Type

In file: Types.sv

attribute refineWith

In file: Types.sv

attribute refine

In file: Types.sv

aspect production varType

top ::= tv::TyVar

In file: Types.sv

aspect production skolemType

top ::= tv::TyVar

In file: Types.sv

aspect production errorType

top ::=

In file: Types.sv

aspect production intType

top ::=

In file: Types.sv

aspect production boolType

top ::=

In file: Types.sv

aspect production floatType

top ::=

In file: Types.sv

aspect production stringType

top ::=

In file: Types.sv

aspect production nonterminalType

top ::= fn::String params::[Type]

In file: Types.sv

aspect production terminalType

top ::= fn::String

In file: Types.sv

aspect production decoratedType

top ::= te::Type

In file: Types.sv

aspect production functionType

top ::= out::Type params::[Type] namedParams::[NamedArgType]

In file: Types.sv

aspect production foreignType

top ::= fn::String params::[Type]

In file: Types.sv

function produceRefinement

Substitution ::= scrutineeType::Type constructorType::Type

In file: Types.sv

function refine

Substitution ::= te1::Type te2::Type

In file: Types.sv

function refineAll

Substitution ::= te1::[Type] te2::[Type]

In file: Types.sv

function isOnlyTyVars

Boolean ::= ls::[Type]

In file: Types.sv

nonterminal VarBinders

In file: VarBinders.sv

nonterminal VarBinder

In file: VarBinders.sv

concrete production oneVarBinder

top::VarBinders ::= v::VarBinder

In file: VarBinders.sv

concrete production consVarBinder

top::VarBinders ::= v::VarBinder ',' vs::VarBinders

In file: VarBinders.sv

concrete production nilVarBinder

top::VarBinders ::=

In file: VarBinders.sv

concrete production varVarBinder

top::VarBinder ::= n::Name

In file: VarBinders.sv

concrete production ignoreVarBinder

top::VarBinder ::= '_'

In file: VarBinders.sv