[silver:compiler:extension:implicit_monads]

Contents of [silver:compiler:extension:implicit_monads]:

Defined in this grammar:

inherited attribute monadicallyUsed :: Boolean

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Expr.sv line 5.

(Undocumented.)


synthesized attribute monadicNames :: [Expr]

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Expr.sv line 9.

(Undocumented.)


type MonadInhs

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Expr.sv line 15.

(Undocumented.)


monoid attribute notExplicitAttributes :: [Decorated QNameAttrOccur]

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Expr.sv line 23.

(Undocumented.)


aspect default production top::Expr ::= {#aspect_default_production_silver:compiler:definition:core:Expr}

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Expr.sv line 28.

(Undocumented.)


function buildMonadApplicationLambda   (Expr ::= realtys::[Type] monadTysLocs::[Pair<Type Integer>] monadAnns::[(Type,QName,Boolean)] expectedMonad::Type funType::Type bindFun::Boolean wrapReturn::Boolean )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Expr.sv line 287.

(Undocumented.)


fun buildMonadApplicationParams   (LambdaRHS ::= realtys::[Type] currentLoc::Integer funType::Type )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Expr.sv line 307.

(Undocumented.)


fun buildFunArgs   (AppExprs ::= currentIndex::Integer )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Expr.sv line 319.

(Undocumented.)


fun buildFunAnnArgs   (AnnoAppExprs ::= annotations::[(Type,QName,Boolean)] currentIndex::Integer )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Expr.sv line 327.

(Undocumented.)


function buildMonadApplicationBody   (Expr ::= monadTysLocs::[Pair<Type Integer>] funargs::AppExprs annargs::AnnoAppExprs monadType::Type funTy::Type bindFun::Boolean wrapReturn::Boolean )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Expr.sv line 336.

(Undocumented.)


concrete production ifThen   (top::Expr ::= 'if' e1::Expr 'then' e2::Expr 'end' )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Expr.sv line 1426.

(Undocumented.)


synthesized attribute monadTypesLocations :: [Pair<Type Integer>]

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Expr.sv line 1670.

(Undocumented.)


synthesized attribute monadAnns :: [(Type,QName,Boolean)]

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Expr.sv line 1672.

(Undocumented.)


synthesized attribute realTypes :: [Type]

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Expr.sv line 1674.

(Undocumented.)


inherited attribute monadArgumentsAllowed :: Boolean

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Expr.sv line 1679.

(Undocumented.)


inherited attribute previousArgs :: AppExprs

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Expr.sv line 1683.

(Undocumented.)


synthesized attribute fullArgs :: AppExprs

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Expr.sv line 1684.

(Undocumented.)


synthesized attribute rewrittenArg :: AppExpr

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Expr.sv line 1685.

(Undocumented.)


abstract production restrictedSynDcl   (top::AttributeDclInfo ::= fn::String bound::[TyVar] ty::Type )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/DclInfo.sv line 4.

(Undocumented.)


abstract production restrictedInhDcl   (top::AttributeDclInfo ::= fn::String bound::[TyVar] ty::Type )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/DclInfo.sv line 25.

(Undocumented.)


abstract production implicitSynDcl   (top::AttributeDclInfo ::= fn::String bound::[TyVar] ty::Type )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/DclInfo.sv line 48.

(Undocumented.)


abstract production implicitInhDcl   (top::AttributeDclInfo ::= fn::String bound::[TyVar] ty::Type )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/DclInfo.sv line 69.

(Undocumented.)


fun restrictedSynDef   (Def ::= sg::String sl::Location fn::String bound::[TyVar] ty::Type )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/DclInfo.sv line 94.

(Undocumented.)


fun restrictedInhDef   (Def ::= sg::String sl::Location fn::String bound::[TyVar] ty::Type )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/DclInfo.sv line 98.

(Undocumented.)


fun implicitSynDef   (Def ::= sg::String sl::Location fn::String bound::[TyVar] ty::Type )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/DclInfo.sv line 104.

(Undocumented.)


fun implicitInhDef   (Def ::= sg::String sl::Location fn::String bound::[TyVar] ty::Type )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/DclInfo.sv line 108.

(Undocumented.)


terminal Implicit_kwd

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/ProductionBody.sv line 1.

(Undocumented.)


terminal Restricted_kwd

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/ProductionBody.sv line 4.

(Undocumented.)


terminal Unrestricted_kwd

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/ProductionBody.sv line 5.

(Undocumented.)


concrete production emptyAttributeDef   (top::ProductionStmt ::= 'implicit' dl::DefLHS '.' attr::QNameAttrOccur '=' ';' )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/ProductionBody.sv line 12.

(Undocumented.)


global partialDefaultAttributeDef

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/ProductionBody.sv line 52.

(Undocumented.)


concrete production implicitAttributeDef   (top::ProductionStmt ::= 'implicit' dl::DefLHS '.' attr::QNameAttrOccur '=' e::Expr ';' )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/ProductionBody.sv line 56.

(Undocumented.)


concrete production restrictedAttributeDef   (top::ProductionStmt ::= 'restricted' dl::DefLHS '.' attr::QNameAttrOccur '=' e::Expr ';' )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/ProductionBody.sv line 96.

(Undocumented.)


concrete production unrestrictedAttributeDef   (top::ProductionStmt ::= 'unrestricted' dl::DefLHS '.' attr::QNameAttrOccur '=' e::Expr ';' )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/ProductionBody.sv line 137.

(Undocumented.)


fun buildExplicitAttrErrors   ([Message] ::= l::[Decorated QNameAttrOccur] )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/ProductionBody.sv line 181.

(Undocumented.)


abstract production restrictedSynAttributeDef   (top::ProductionStmt ::= dl::Decorated! DefLHS attr::Decorated! QNameAttrOccur e::Expr )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/ProductionBody.sv line 192.

(Undocumented.)


abstract production restrictedInhAttributeDef   (top::ProductionStmt ::= dl::Decorated! DefLHS attr::Decorated! QNameAttrOccur e::Expr )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/ProductionBody.sv line 219.

(Undocumented.)


abstract production implicitSynAttributeDef   (top::ProductionStmt ::= dl::Decorated! DefLHS attr::Decorated! QNameAttrOccur e::Expr )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/ProductionBody.sv line 249.

(Undocumented.)


abstract production implicitInhAttributeDef   (top::ProductionStmt ::= dl::Decorated! DefLHS attr::Decorated! QNameAttrOccur e::Expr )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/ProductionBody.sv line 281.

(Undocumented.)


inherited attribute returnFun :: Expr

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/PrimitiveMatch.sv line 12.

(Undocumented.)


synthesized attribute returnify<a> :: a

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/PrimitiveMatch.sv line 13.

(Undocumented.)


inherited attribute expectedMonad :: Type

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Util.sv line 22.

(Undocumented.)


synthesized attribute monadRewritten<a> :: a

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Util.sv line 24.

(Undocumented.)


synthesized attribute merrors (collection)

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Util.sv line 26.

(Undocumented.)


synthesized attribute mtyperep :: Type

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Util.sv line 29.

(Undocumented.)


threaded attribute mDownSubst, mUpSubst :: Substitution direction=left to right

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Util.sv line 34.

(Undocumented.)


fun isMonad   (Boolean ::= ty::Type env::Env )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Util.sv line 37.

(Undocumented.)


fun isMonadPlus   (Boolean ::= ty::Type env::Env )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Util.sv line 43.

(Undocumented.)


fun isMonadFail   (Boolean ::= ty::Type env::Env )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Util.sv line 49.

(Undocumented.)


function dropDecorated   (Type ::= ty::Type )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Util.sv line 56.

(Undocumented.)


fun monadsMatch   (Pair<Boolean Substitution> ::= ty1::Type ty2::Type subst::Substitution )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Util.sv line 65.

(Undocumented.)


fun acceptableMonadFunction   (Boolean ::= f::Decorated Expr )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Util.sv line 80.

(Undocumented.)


function tyMatch   (Pair<Boolean Substitution> ::= t1::Type t2::Type subst::Substitution )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Util.sv line 88.

(Undocumented.)


function monadInnerType   (Type ::= mty::Type )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Util.sv line 97.

(Undocumented.)


fun monadOfType   (Type ::= mty::Type newInner::Type )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Util.sv line 112.

(Undocumented.)


fun monadToString   (String ::= ty::Type )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Util.sv line 120.

(Undocumented.)


fun monadBind   (Expr ::= )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Util.sv line 132.

(Undocumented.)


fun monadReturn   (Expr ::= )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Util.sv line 133.

(Undocumented.)


function monadFail   (Expr ::= )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Util.sv line 136.

(Undocumented.)


fun monadPlus   (Expr ::= )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Util.sv line 148.

(Undocumented.)


fun monadZero   (Expr ::= )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Util.sv line 149.

(Undocumented.)


fun buildApplication   (Expr ::= fun::Expr args::[Expr] )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Util.sv line 161.

(Undocumented.)


fun buildApplicationReverseArgs   (AppExprs ::= args::[Expr] )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Util.sv line 166.

(Undocumented.)


fun buildLambda   (Expr ::= n::String ty::Type body::Expr )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Util.sv line 176.

(Undocumented.)


function buildMultiLambda   (Expr ::= names::[Pair<String Type>] body::Expr )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Util.sv line 185.

(Undocumented.)


synthesized attribute fixedAssigns :: AssignExpr

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Let.sv line 71.

(Undocumented.)


synthesized attribute bindInList :: [Pair<Name TypeExpr>]

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Let.sv line 72.

(Undocumented.)


synthesized attribute mdefs :: [Def]

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Let.sv line 74.

(Undocumented.)


concrete production attributeDclInh_Restricted   (top::AGDcl ::= 'restricted' 'inherited' 'attribute' a::Name tl::BracketedOptTypeExprs '::' te::TypeExpr ';' )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/AttributeDefs.sv line 4.

(Undocumented.)


concrete production attributeDclSyn_Restricted   (top::AGDcl ::= 'restricted' 'synthesized' 'attribute' a::Name tl::BracketedOptTypeExprs '::' te::TypeExpr ';' )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/AttributeDefs.sv line 34.

(Undocumented.)


concrete production attributeDclInh_Implicit   (top::AGDcl ::= 'implicit' 'inherited' 'attribute' a::Name tl::BracketedOptTypeExprs '::' te::TypeExpr ';' )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/AttributeDefs.sv line 66.

(Undocumented.)


concrete production attributeDclSyn_Implicit   (top::AGDcl ::= 'implicit' 'synthesized' 'attribute' a::Name tl::BracketedOptTypeExprs '::' te::TypeExpr ';' )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/AttributeDefs.sv line 98.

(Undocumented.)


concrete production attributeDclInh_Unrestricted   (top::AGDcl ::= 'unrestricted' 'inherited' 'attribute' a::Name tl::BracketedOptTypeExprs '::' te::TypeExpr ';' )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/AttributeDefs.sv line 132.

(Undocumented.)


concrete production attributeDclSyn_Unrestricted   (top::AGDcl ::= 'unrestricted' 'synthesized' 'attribute' a::Name tl::BracketedOptTypeExprs '::' te::TypeExpr ';' )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/AttributeDefs.sv line 141.

(Undocumented.)


terminal MCase_kwd

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Case.sv line 1.

(Undocumented.)


synthesized attribute patternType :: Type

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Case.sv line 8.

(Undocumented.)


synthesized attribute patternTypeList :: [Type]

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Case.sv line 9.

(Undocumented.)


fun monadicallyUsedExpr   (Boolean ::= elst::[Expr] env::Env sub::Substitution f::BlockContext gn::String cg::EnvTree<Decorated RootSpec> c::Decorated CmdArgs fe::FlowEnv em::Type iR::Boolean oR::[Decorated Expr] )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Case.sv line 137.

(Undocumented.)


function monadicMatchTypesNames   (([(Type,(Expr,String))],[Expr]) ::= elst::[Decorated Expr with MonadInhs] tylst::[Type] names::[String] env::Env sub::Substitution em::Type index::Integer )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Case.sv line 155.

(Undocumented.)


function monadCompileCaseExpr   (Expr ::= es::[Expr] ml::[AbstractMatchRule] failExpr::Expr retType::Type env::Env )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Case.sv line 218.

(Undocumented.)


function monadCompilePatternGroups   (Expr ::= matchEs::[Expr] ruleGroups::[[AbstractMatchRule]] finalFail::Expr retType::Type env::Env )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Case.sv line 270.

(Undocumented.)


function monadAllConCaseTransform   (PrimPattern ::= currExpr::Expr restExprs::[Expr] failCase::Expr retType::Type mrs::[AbstractMatchRule] env::Env )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Case.sv line 329.

(Undocumented.)


concrete production mcaseExpr_c   (top::Expr ::= 'case_any' es::Exprs 'of' vbar::Opt_Vbar_t ml::MRuleList 'end' )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Case.sv line 364.

(Undocumented.)


function mcaseBindsApps   (Expr ::= exprs::[Expr] names::[String] base::Expr env::Env sub::Substitution f::BlockContext gn::String cg::EnvTree<Decorated RootSpec> c::Decorated CmdArgs fe::FlowEnv em::Type iR::Boolean oR::[Decorated Expr] )

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Case.sv line 464.

(Undocumented.)


synthesized attribute monadDecExprs :: [Decorated Expr with MonadInhs]

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Case.sv line 498.

(Undocumented.)


inherited attribute temp_flowEnv :: FlowEnv

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Case.sv line 527.

(Undocumented.)


inherited attribute temp_env :: Env

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Case.sv line 528.

(Undocumented.)


inherited attribute temp_config :: Decorated CmdArgs

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Case.sv line 529.

(Undocumented.)


inherited attribute temp_compiledGrammars :: EnvTree<Decorated RootSpec>

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Case.sv line 530.

(Undocumented.)


inherited attribute temp_grammarName :: String

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Case.sv line 531.

(Undocumented.)


inherited attribute temp_frame :: BlockContext

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Case.sv line 532.

(Undocumented.)


inherited attribute temp_finalSubst :: Substitution

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Case.sv line 533.

(Undocumented.)


inherited attribute temp_downSubst :: Substitution

Contained in grammar [silver:compiler:extension:implicit_monads]. Defined at silver/compiler/extension/implicit_monads/Case.sv line 534.

(Undocumented.)