[silver:compiler:extension:implicit_monads]

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

Defined in this grammar:

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 35.

(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 68.

(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 101.

(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 136.

(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 145.

(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 )

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

(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 160.

(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 223.

(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 275.

(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 334.

(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 369.

(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 )

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

(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 509.

(Undocumented.)


inherited attribute temp_flowEnv :: FlowEnv

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

(Undocumented.)


inherited attribute temp_env :: Env

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

(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 540.

(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 541.

(Undocumented.)


inherited attribute temp_grammarName :: String

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

(Undocumented.)


inherited attribute temp_frame :: BlockContext

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

(Undocumented.)


inherited attribute temp_finalSubst :: Substitution

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

(Undocumented.)


inherited attribute temp_downSubst :: Substitution

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

(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.)


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 28.

(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 33.

(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 359.

(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 380.

(Undocumented.)


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

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

(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 400.

(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 409.

(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 1499.

(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 1743.

(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 1745.

(Undocumented.)


synthesized attribute realTypes :: [Type]

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

(Undocumented.)


inherited attribute monadArgumentsAllowed :: Boolean

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

(Undocumented.)


inherited attribute previousArgs :: AppExprs

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

(Undocumented.)


synthesized attribute fullArgs :: AppExprs

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

(Undocumented.)


synthesized attribute rewrittenArg :: AppExpr

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

(Undocumented.)


synthesized attribute fixedAssigns :: AssignExpr

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

(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 75.

(Undocumented.)


synthesized attribute mdefs :: [Def]

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

(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.)


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.)


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 51.

(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 90.

(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 130.

(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 173.

(Undocumented.)


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

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

(Undocumented.)


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

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

(Undocumented.)


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

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

(Undocumented.)


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

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

(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 with {forward} )

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.)