cubix-0.1.0.0: A framework for multi-language transformation
Safe HaskellNone
LanguageHaskell2010

Cubix.Language.Parametric.InjF

Synopsis

Documentation

class All HFunctor fs => InjF fs l l' where Source #

InjF allows us to create "sort injections," stating that one sort can be considered a coercive subsort of another..

For example, if we wanted to parameterize whether a given syntax allows arbitrary expressions to be used as function arguments, we could have the function terms have arguments of sort FunArg and create an ExpressionIsFunArg . Defining an instance

instance (ExpressionIsFunArg :-<: f) => InjF fs ExpL FunArgL

would then allow us to use expression as function arguments freely.

Minimal complete definition

injF, projF'

Methods

injF :: CxtS h fs a l -> CxtS h fs a l' Source #

projF' :: Cxt h (Sum fs :&: p) a l' -> Maybe (Cxt h (Sum fs :&: p) a l) Source #

Dynamically casing on subsorts

projF :: CxtS h fs a l' -> Maybe (CxtS h fs a l) Source #

Instances

Instances details
All HFunctor fs => InjF fs l l Source # 
Instance details

Defined in Cubix.Language.Parametric.InjF

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a l -> CxtS h fs a l Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a l -> Maybe (Cxt h (Sum fs :&: p) a l) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a l -> Maybe (CxtS h fs a l) Source #

(IdentIsVarDeclBinder :-<: fs, All HFunctor fs) => InjF fs IdentL VarDeclBinderL Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.VarDecl

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a IdentL -> CxtS h fs a VarDeclBinderL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a VarDeclBinderL -> Maybe (Cxt h (Sum fs :&: p) a IdentL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a VarDeclBinderL -> Maybe (CxtS h fs a IdentL) Source #

(AssignIsStatement :-<: fs, All HFunctor fs) => InjF fs AssignL StatementL Source # 
Instance details

Defined in Cubix.Language.Python.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a AssignL -> CxtS h fs a StatementL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a StatementL -> Maybe (Cxt h (Sum fs :&: p) a AssignL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a StatementL -> Maybe (CxtS h fs a AssignL) Source #

(ExprIsRhs :-<: fs, All HFunctor fs) => InjF fs ExprL RhsL Source # 
Instance details

Defined in Cubix.Language.Python.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a ExprL -> CxtS h fs a RhsL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a RhsL -> Maybe (Cxt h (Sum fs :&: p) a ExprL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a RhsL -> Maybe (CxtS h fs a ExprL) Source #

(StatementIsBlockItem :-<: fs, All HFunctor fs) => InjF fs StatementL BlockItemL Source # 
Instance details

Defined in Cubix.Language.Python.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a StatementL -> CxtS h fs a BlockItemL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a BlockItemL -> Maybe (Cxt h (Sum fs :&: p) a StatementL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a BlockItemL -> Maybe (CxtS h fs a StatementL) Source #

(PyCompIsExpr :-<: fs, All HFunctor fs) => InjF fs PyCompL ExprL Source # 
Instance details

Defined in Cubix.Language.Python.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a PyCompL -> CxtS h fs a ExprL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a ExprL -> Maybe (Cxt h (Sum fs :&: p) a PyCompL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a ExprL -> Maybe (CxtS h fs a PyCompL) Source #

(IdentIsPyLValue :-<: fs, All HFunctor fs) => InjF fs IdentL PyLValueL Source # 
Instance details

Defined in Cubix.Language.Python.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a IdentL -> CxtS h fs a PyLValueL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a PyLValueL -> Maybe (Cxt h (Sum fs :&: p) a IdentL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a PyLValueL -> Maybe (CxtS h fs a IdentL) Source #

(PyClassIsStatement :-<: fs, All HFunctor fs) => InjF fs PyClassL StatementL Source # 
Instance details

Defined in Cubix.Language.Python.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a PyClassL -> CxtS h fs a StatementL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a StatementL -> Maybe (Cxt h (Sum fs :&: p) a PyClassL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a StatementL -> Maybe (CxtS h fs a PyClassL) Source #

(FunctionCallIsExpr :-<: fs, All HFunctor fs) => InjF fs FunctionCallL ExprL Source # 
Instance details

Defined in Cubix.Language.Python.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a FunctionCallL -> CxtS h fs a ExprL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a ExprL -> Maybe (Cxt h (Sum fs :&: p) a FunctionCallL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a ExprL -> Maybe (CxtS h fs a FunctionCallL) Source #

(ExprIsFunctionExp :-<: fs, All HFunctor fs) => InjF fs ExprL FunctionExpL Source # 
Instance details

Defined in Cubix.Language.Python.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a ExprL -> CxtS h fs a FunctionExpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a FunctionExpL -> Maybe (Cxt h (Sum fs :&: p) a ExprL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a FunctionExpL -> Maybe (CxtS h fs a ExprL) Source #

(ExprIsPositionalArgExp :-<: fs, All HFunctor fs) => InjF fs ExprL PositionalArgExpL Source # 
Instance details

Defined in Cubix.Language.Python.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a ExprL -> CxtS h fs a PositionalArgExpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a PositionalArgExpL -> Maybe (Cxt h (Sum fs :&: p) a ExprL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a PositionalArgExpL -> Maybe (CxtS h fs a ExprL) Source #

(ExprIsReceiver :-<: fs, All HFunctor fs) => InjF fs ExprL ReceiverL Source # 
Instance details

Defined in Cubix.Language.Python.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a ExprL -> CxtS h fs a ReceiverL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a ReceiverL -> Maybe (Cxt h (Sum fs :&: p) a ExprL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a ReceiverL -> Maybe (CxtS h fs a ExprL) Source #

(FunctionDefIsStatement :-<: fs, All HFunctor fs) => InjF fs FunctionDefL StatementL Source # 
Instance details

Defined in Cubix.Language.Python.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a FunctionDefL -> CxtS h fs a StatementL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a StatementL -> Maybe (Cxt h (Sum fs :&: p) a FunctionDefL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a StatementL -> Maybe (CxtS h fs a FunctionDefL) Source #

(PyBlockIsFunctionBody :-<: fs, All HFunctor fs) => InjF fs PyBlockL FunctionBodyL Source # 
Instance details

Defined in Cubix.Language.Python.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a PyBlockL -> CxtS h fs a FunctionBodyL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a FunctionBodyL -> Maybe (Cxt h (Sum fs :&: p) a PyBlockL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a FunctionBodyL -> Maybe (CxtS h fs a PyBlockL) Source #

(AssignIsStat :-<: fs, All HFunctor fs) => InjF fs AssignL StatL Source # 
Instance details

Defined in Cubix.Language.Lua.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a AssignL -> CxtS h fs a StatL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a StatL -> Maybe (Cxt h (Sum fs :&: p) a AssignL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a StatL -> Maybe (CxtS h fs a AssignL) Source #

(StatIsBlockItem :-<: fs, All HFunctor fs) => InjF fs StatL BlockItemL Source # 
Instance details

Defined in Cubix.Language.Lua.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a StatL -> CxtS h fs a BlockItemL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a BlockItemL -> Maybe (Cxt h (Sum fs :&: p) a StatL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a BlockItemL -> Maybe (CxtS h fs a StatL) Source #

(SingleLocalVarDeclIsStat :-<: fs, All HFunctor fs) => InjF fs SingleLocalVarDeclL StatL Source # 
Instance details

Defined in Cubix.Language.Lua.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a SingleLocalVarDeclL -> CxtS h fs a StatL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a StatL -> Maybe (Cxt h (Sum fs :&: p) a SingleLocalVarDeclL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a StatL -> Maybe (CxtS h fs a SingleLocalVarDeclL) Source #

(FunctionCallIsFunCall :-<: fs, All HFunctor fs) => InjF fs FunctionCallL FunCallL Source # 
Instance details

Defined in Cubix.Language.Lua.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a FunctionCallL -> CxtS h fs a FunCallL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a FunCallL -> Maybe (Cxt h (Sum fs :&: p) a FunctionCallL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a FunCallL -> Maybe (CxtS h fs a FunctionCallL) Source #

(ExpIsPositionalArgExp :-<: fs, All HFunctor fs) => InjF fs ExpL PositionalArgExpL Source # 
Instance details

Defined in Cubix.Language.Lua.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a ExpL -> CxtS h fs a PositionalArgExpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a PositionalArgExpL -> Maybe (Cxt h (Sum fs :&: p) a ExpL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a PositionalArgExpL -> Maybe (CxtS h fs a ExpL) Source #

(PrefixExpIsFunctionExp :-<: fs, All HFunctor fs) => InjF fs PrefixExpL FunctionExpL Source # 
Instance details

Defined in Cubix.Language.Lua.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a PrefixExpL -> CxtS h fs a FunctionExpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a FunctionExpL -> Maybe (Cxt h (Sum fs :&: p) a PrefixExpL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a FunctionExpL -> Maybe (CxtS h fs a PrefixExpL) Source #

(PrefixExpIsReceiver :-<: fs, All HFunctor fs) => InjF fs PrefixExpL ReceiverL Source # 
Instance details

Defined in Cubix.Language.Lua.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a PrefixExpL -> CxtS h fs a ReceiverL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a ReceiverL -> Maybe (Cxt h (Sum fs :&: p) a PrefixExpL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a ReceiverL -> Maybe (CxtS h fs a PrefixExpL) Source #

(FunctionDefIsStat :-<: fs, All HFunctor fs) => InjF fs FunctionDefL StatL Source # 
Instance details

Defined in Cubix.Language.Lua.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a FunctionDefL -> CxtS h fs a StatL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a StatL -> Maybe (Cxt h (Sum fs :&: p) a FunctionDefL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a StatL -> Maybe (CxtS h fs a FunctionDefL) Source #

(BlockIsFunctionBody :-<: fs, All HFunctor fs) => InjF fs BlockL FunctionBodyL Source # 
Instance details

Defined in Cubix.Language.Lua.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a BlockL -> CxtS h fs a FunctionBodyL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a FunctionBodyL -> Maybe (Cxt h (Sum fs :&: p) a BlockL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a FunctionBodyL -> Maybe (CxtS h fs a BlockL) Source #

(IdentIsJSExpression :-<: fs, All HFunctor fs) => InjF fs IdentL JSExpressionL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a IdentL -> CxtS h fs a JSExpressionL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a JSExpressionL -> Maybe (Cxt h (Sum fs :&: p) a IdentL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a JSExpressionL -> Maybe (CxtS h fs a IdentL) Source #

(JSExpressionIsLocalVarInit :-<: fs, All HFunctor fs) => InjF fs JSExpressionL LocalVarInitL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a JSExpressionL -> CxtS h fs a LocalVarInitL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a LocalVarInitL -> Maybe (Cxt h (Sum fs :&: p) a JSExpressionL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a LocalVarInitL -> Maybe (CxtS h fs a JSExpressionL) Source #

(JSExpressionIsVarDeclBinder :-<: fs, All HFunctor fs) => InjF fs JSExpressionL VarDeclBinderL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a JSExpressionL -> CxtS h fs a VarDeclBinderL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a VarDeclBinderL -> Maybe (Cxt h (Sum fs :&: p) a JSExpressionL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a VarDeclBinderL -> Maybe (CxtS h fs a JSExpressionL) Source #

(MultiLocalVarDeclIsJSStatement :-<: fs, All HFunctor fs) => InjF fs MultiLocalVarDeclL JSStatementL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a MultiLocalVarDeclL -> CxtS h fs a JSStatementL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a JSStatementL -> Maybe (Cxt h (Sum fs :&: p) a MultiLocalVarDeclL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a JSStatementL -> Maybe (CxtS h fs a MultiLocalVarDeclL) Source #

(JSExpressionIsRhs :-<: fs, All HFunctor fs) => InjF fs JSExpressionL RhsL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a JSExpressionL -> CxtS h fs a RhsL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a RhsL -> Maybe (Cxt h (Sum fs :&: p) a JSExpressionL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a RhsL -> Maybe (CxtS h fs a JSExpressionL) Source #

(JSExpressionIsLhs :-<: fs, All HFunctor fs) => InjF fs JSExpressionL LhsL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a JSExpressionL -> CxtS h fs a LhsL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a LhsL -> Maybe (Cxt h (Sum fs :&: p) a JSExpressionL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a LhsL -> Maybe (CxtS h fs a JSExpressionL) Source #

(JSAssignOpIsAssignOp :-<: fs, All HFunctor fs) => InjF fs JSAssignOpL AssignOpL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a JSAssignOpL -> CxtS h fs a AssignOpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a AssignOpL -> Maybe (Cxt h (Sum fs :&: p) a JSAssignOpL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a AssignOpL -> Maybe (CxtS h fs a JSAssignOpL) Source #

(AssignIsJSExpression :-<: fs, All HFunctor fs) => InjF fs AssignL JSExpressionL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a AssignL -> CxtS h fs a JSExpressionL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a JSExpressionL -> Maybe (Cxt h (Sum fs :&: p) a AssignL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a JSExpressionL -> Maybe (CxtS h fs a AssignL) Source #

(BlockIsJSStatement :-<: fs, All HFunctor fs) => InjF fs BlockL JSStatementL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a BlockL -> CxtS h fs a JSStatementL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a JSStatementL -> Maybe (Cxt h (Sum fs :&: p) a BlockL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a JSStatementL -> Maybe (CxtS h fs a BlockL) Source #

(JSStatementIsBlockItem :-<: fs, All HFunctor fs) => InjF fs JSStatementL BlockItemL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a JSStatementL -> CxtS h fs a BlockItemL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a BlockItemL -> Maybe (Cxt h (Sum fs :&: p) a JSStatementL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a BlockItemL -> Maybe (CxtS h fs a JSStatementL) Source #

(JSBlockIsJSAST :-<: fs, All HFunctor fs) => InjF fs JSBlockL JSASTL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a JSBlockL -> CxtS h fs a JSASTL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a JSASTL -> Maybe (Cxt h (Sum fs :&: p) a JSBlockL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a JSASTL -> Maybe (CxtS h fs a JSBlockL) Source #

(FunctionCallIsJSExpression :-<: fs, All HFunctor fs) => InjF fs FunctionCallL JSExpressionL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a FunctionCallL -> CxtS h fs a JSExpressionL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a JSExpressionL -> Maybe (Cxt h (Sum fs :&: p) a FunctionCallL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a JSExpressionL -> Maybe (CxtS h fs a FunctionCallL) Source #

(JSExpressionIsPositionalArgExp :-<: fs, All HFunctor fs) => InjF fs JSExpressionL PositionalArgExpL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a JSExpressionL -> CxtS h fs a PositionalArgExpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a PositionalArgExpL -> Maybe (Cxt h (Sum fs :&: p) a JSExpressionL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a PositionalArgExpL -> Maybe (CxtS h fs a JSExpressionL) Source #

(JSExpressionIsFunctionExp :-<: fs, All HFunctor fs) => InjF fs JSExpressionL FunctionExpL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a JSExpressionL -> CxtS h fs a FunctionExpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a FunctionExpL -> Maybe (Cxt h (Sum fs :&: p) a JSExpressionL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a FunctionExpL -> Maybe (CxtS h fs a JSExpressionL) Source #

(FunctionDefIsJSStatement :-<: fs, All HFunctor fs) => InjF fs FunctionDefL JSStatementL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a FunctionDefL -> CxtS h fs a JSStatementL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a JSStatementL -> Maybe (Cxt h (Sum fs :&: p) a FunctionDefL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a JSStatementL -> Maybe (CxtS h fs a FunctionDefL) Source #

(JSBlockIsFunctionBody :-<: fs, All HFunctor fs) => InjF fs JSBlockL FunctionBodyL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a JSBlockL -> CxtS h fs a FunctionBodyL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a FunctionBodyL -> Maybe (Cxt h (Sum fs :&: p) a JSBlockL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a FunctionBodyL -> Maybe (CxtS h fs a JSBlockL) Source #

(VarInitIsLocalVarInit :-<: fs, All HFunctor fs) => InjF fs VarInitL LocalVarInitL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a VarInitL -> CxtS h fs a LocalVarInitL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a LocalVarInitL -> Maybe (Cxt h (Sum fs :&: p) a VarInitL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a LocalVarInitL -> Maybe (CxtS h fs a VarInitL) Source #

(MultiLocalVarDeclIsBlockStmt :-<: fs, All HFunctor fs) => InjF fs MultiLocalVarDeclL BlockStmtL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a MultiLocalVarDeclL -> CxtS h fs a BlockStmtL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a BlockStmtL -> Maybe (Cxt h (Sum fs :&: p) a MultiLocalVarDeclL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a BlockStmtL -> Maybe (CxtS h fs a MultiLocalVarDeclL) Source #

(AssignIsExp :-<: fs, All HFunctor fs) => InjF fs AssignL ExpL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a AssignL -> CxtS h fs a ExpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a ExpL -> Maybe (Cxt h (Sum fs :&: p) a AssignL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a ExpL -> Maybe (CxtS h fs a AssignL) Source #

(ExpIsRhs :-<: fs, All HFunctor fs) => InjF fs ExpL RhsL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a ExpL -> CxtS h fs a RhsL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a RhsL -> Maybe (Cxt h (Sum fs :&: p) a ExpL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a RhsL -> Maybe (CxtS h fs a ExpL) Source #

(BlockStmtIsBlockItem :-<: fs, All HFunctor fs) => InjF fs BlockStmtL BlockItemL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a BlockStmtL -> CxtS h fs a BlockItemL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a BlockItemL -> Maybe (Cxt h (Sum fs :&: p) a BlockStmtL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a BlockItemL -> Maybe (CxtS h fs a BlockStmtL) Source #

(AssignOpIsAssignOp :-<: fs, All HFunctor fs) => InjF fs AssignOpL AssignOpL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a AssignOpL -> CxtS h fs a AssignOpL0 Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a AssignOpL0 -> Maybe (Cxt h (Sum fs :&: p) a AssignOpL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a AssignOpL0 -> Maybe (CxtS h fs a AssignOpL) Source #

(FunctionCallIsMethodInvocation :-<: fs, All HFunctor fs) => InjF fs FunctionCallL MethodInvocationL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a FunctionCallL -> CxtS h fs a MethodInvocationL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a MethodInvocationL -> Maybe (Cxt h (Sum fs :&: p) a FunctionCallL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a MethodInvocationL -> Maybe (CxtS h fs a FunctionCallL) Source #

(NameIsFunctionExp :-<: fs, All HFunctor fs) => InjF fs NameL FunctionExpL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a NameL -> CxtS h fs a FunctionExpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a FunctionExpL -> Maybe (Cxt h (Sum fs :&: p) a NameL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a FunctionExpL -> Maybe (CxtS h fs a NameL) Source #

(ExpIsPositionalArgExp :-<: fs, All HFunctor fs) => InjF fs ExpL PositionalArgExpL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a ExpL -> CxtS h fs a PositionalArgExpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a PositionalArgExpL -> Maybe (Cxt h (Sum fs :&: p) a ExpL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a PositionalArgExpL -> Maybe (CxtS h fs a ExpL) Source #

(FunctionDeclIsMemberDecl :-<: fs, All HFunctor fs) => InjF fs FunctionDeclL MemberDeclL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a FunctionDeclL -> CxtS h fs a MemberDeclL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a MemberDeclL -> Maybe (Cxt h (Sum fs :&: p) a FunctionDeclL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a MemberDeclL -> Maybe (CxtS h fs a FunctionDeclL) Source #

(JavaMethodDeclAttrsIsFunctionDeclAttrs :-<: fs, All HFunctor fs) => InjF fs JavaMethodDeclAttrsL FunctionDeclAttrsL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a JavaMethodDeclAttrsL -> CxtS h fs a FunctionDeclAttrsL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a FunctionDeclAttrsL -> Maybe (Cxt h (Sum fs :&: p) a JavaMethodDeclAttrsL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a FunctionDeclAttrsL -> Maybe (CxtS h fs a JavaMethodDeclAttrsL) Source #

(JavaParamAttrsIsFunctionParameterDeclAttrs :-<: fs, All HFunctor fs) => InjF fs JavaParamAttrsL FunctionParameterDeclAttrsL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a JavaParamAttrsL -> CxtS h fs a FunctionParameterDeclAttrsL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a FunctionParameterDeclAttrsL -> Maybe (Cxt h (Sum fs :&: p) a JavaParamAttrsL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a FunctionParameterDeclAttrsL -> Maybe (CxtS h fs a JavaParamAttrsL) Source #

(JavaVarargsParamIsFunctionParameterDecl :-<: fs, All HFunctor fs) => InjF fs JavaVarargsParamL FunctionParameterDeclL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a JavaVarargsParamL -> CxtS h fs a FunctionParameterDeclL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a FunctionParameterDeclL -> Maybe (Cxt h (Sum fs :&: p) a JavaVarargsParamL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a FunctionParameterDeclL -> Maybe (CxtS h fs a JavaVarargsParamL) Source #

(FunctionDefIsMemberDecl :-<: fs, All HFunctor fs) => InjF fs FunctionDefL MemberDeclL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a FunctionDefL -> CxtS h fs a MemberDeclL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a MemberDeclL -> Maybe (Cxt h (Sum fs :&: p) a FunctionDefL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a MemberDeclL -> Maybe (CxtS h fs a FunctionDefL) Source #

(JavaMethodDeclAttrsIsFunctionDefAttrs :-<: fs, All HFunctor fs) => InjF fs JavaMethodDeclAttrsL FunctionDefAttrsL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a JavaMethodDeclAttrsL -> CxtS h fs a FunctionDefAttrsL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a FunctionDefAttrsL -> Maybe (Cxt h (Sum fs :&: p) a JavaMethodDeclAttrsL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a FunctionDefAttrsL -> Maybe (CxtS h fs a JavaMethodDeclAttrsL) Source #

(JavaParamAttrsIsParameterAttrs :-<: fs, All HFunctor fs) => InjF fs JavaParamAttrsL ParameterAttrsL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a JavaParamAttrsL -> CxtS h fs a ParameterAttrsL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a ParameterAttrsL -> Maybe (Cxt h (Sum fs :&: p) a JavaParamAttrsL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a ParameterAttrsL -> Maybe (CxtS h fs a JavaParamAttrsL) Source #

(JavaVarargsParamIsFunctionParameter :-<: fs, All HFunctor fs) => InjF fs JavaVarargsParamL FunctionParameterL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a JavaVarargsParamL -> CxtS h fs a FunctionParameterL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a FunctionParameterL -> Maybe (Cxt h (Sum fs :&: p) a JavaVarargsParamL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a FunctionParameterL -> Maybe (CxtS h fs a JavaVarargsParamL) Source #

(BlockIsFunctionBody :-<: fs, All HFunctor fs) => InjF fs BlockL FunctionBodyL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a BlockL -> CxtS h fs a FunctionBodyL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a FunctionBodyL -> Maybe (Cxt h (Sum fs :&: p) a BlockL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a FunctionBodyL -> Maybe (CxtS h fs a BlockL) Source #

(MultiLocalVarDeclIsCCompoundBlockItem :-<: fs, All HFunctor fs) => InjF fs MultiLocalVarDeclL CCompoundBlockItemL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a MultiLocalVarDeclL -> CxtS h fs a CCompoundBlockItemL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a CCompoundBlockItemL -> Maybe (Cxt h (Sum fs :&: p) a MultiLocalVarDeclL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a CCompoundBlockItemL -> Maybe (CxtS h fs a MultiLocalVarDeclL) Source #

(CInitializerIsLocalVarInit :-<: fs, All HFunctor fs) => InjF fs CInitializerL LocalVarInitL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a CInitializerL -> CxtS h fs a LocalVarInitL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a LocalVarInitL -> Maybe (Cxt h (Sum fs :&: p) a CInitializerL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a LocalVarInitL -> Maybe (CxtS h fs a CInitializerL) Source #

(CExpressionIsLhs :-<: fs, All HFunctor fs) => InjF fs CExpressionL LhsL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a CExpressionL -> CxtS h fs a LhsL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a LhsL -> Maybe (Cxt h (Sum fs :&: p) a CExpressionL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a LhsL -> Maybe (CxtS h fs a CExpressionL) Source #

(CExpressionIsRhs :-<: fs, All HFunctor fs) => InjF fs CExpressionL RhsL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a CExpressionL -> CxtS h fs a RhsL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a RhsL -> Maybe (Cxt h (Sum fs :&: p) a CExpressionL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a RhsL -> Maybe (CxtS h fs a CExpressionL) Source #

(CAssignOpIsAssignOp :-<: fs, All HFunctor fs) => InjF fs CAssignOpL AssignOpL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a CAssignOpL -> CxtS h fs a AssignOpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a AssignOpL -> Maybe (Cxt h (Sum fs :&: p) a CAssignOpL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a AssignOpL -> Maybe (CxtS h fs a CAssignOpL) Source #

(AssignIsCExpression :-<: fs, All HFunctor fs) => InjF fs AssignL CExpressionL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a AssignL -> CxtS h fs a CExpressionL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a CExpressionL -> Maybe (Cxt h (Sum fs :&: p) a AssignL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a CExpressionL -> Maybe (CxtS h fs a AssignL) Source #

(CCompoundBlockItemIsBlockItem :-<: fs, All HFunctor fs) => InjF fs CCompoundBlockItemL BlockItemL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a CCompoundBlockItemL -> CxtS h fs a BlockItemL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a BlockItemL -> Maybe (Cxt h (Sum fs :&: p) a CCompoundBlockItemL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a BlockItemL -> Maybe (CxtS h fs a CCompoundBlockItemL) Source #

(FunctionCallIsCExpression :-<: fs, All HFunctor fs) => InjF fs FunctionCallL CExpressionL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a FunctionCallL -> CxtS h fs a CExpressionL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a CExpressionL -> Maybe (Cxt h (Sum fs :&: p) a FunctionCallL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a CExpressionL -> Maybe (CxtS h fs a FunctionCallL) Source #

(CExpressionIsFunctionExp :-<: fs, All HFunctor fs) => InjF fs CExpressionL FunctionExpL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a CExpressionL -> CxtS h fs a FunctionExpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a FunctionExpL -> Maybe (Cxt h (Sum fs :&: p) a CExpressionL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a FunctionExpL -> Maybe (CxtS h fs a CExpressionL) Source #

(CExpressionIsPositionalArgExp :-<: fs, All HFunctor fs) => InjF fs CExpressionL PositionalArgExpL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a CExpressionL -> CxtS h fs a PositionalArgExpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a PositionalArgExpL -> Maybe (Cxt h (Sum fs :&: p) a CExpressionL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a PositionalArgExpL -> Maybe (CxtS h fs a CExpressionL) Source #

(FunctionDeclIsCDeclarator :-<: fs, All HFunctor fs) => InjF fs FunctionDeclL CDeclaratorL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a FunctionDeclL -> CxtS h fs a CDeclaratorL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a CDeclaratorL -> Maybe (Cxt h (Sum fs :&: p) a FunctionDeclL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a CDeclaratorL -> Maybe (CxtS h fs a FunctionDeclL) Source #

(CFunParamAttrsIsFunctionParameterDeclAttrs :-<: fs, All HFunctor fs) => InjF fs CFunParamAttrsL FunctionParameterDeclAttrsL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a CFunParamAttrsL -> CxtS h fs a FunctionParameterDeclAttrsL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a FunctionParameterDeclAttrsL -> Maybe (Cxt h (Sum fs :&: p) a CFunParamAttrsL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a FunctionParameterDeclAttrsL -> Maybe (CxtS h fs a CFunParamAttrsL) Source #

(CSpecialParamIsFunctionParameterDecl :-<: fs, All HFunctor fs) => InjF fs CSpecialParamL FunctionParameterDeclL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a CSpecialParamL -> CxtS h fs a FunctionParameterDeclL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a FunctionParameterDeclL -> Maybe (Cxt h (Sum fs :&: p) a CSpecialParamL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a FunctionParameterDeclL -> Maybe (CxtS h fs a CSpecialParamL) Source #

(FunctionDefIsCFunctionDef :-<: fs, All HFunctor fs) => InjF fs FunctionDefL CFunctionDefL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a FunctionDefL -> CxtS h fs a CFunctionDefL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a CFunctionDefL -> Maybe (Cxt h (Sum fs :&: p) a FunctionDefL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a CFunctionDefL -> Maybe (CxtS h fs a FunctionDefL) Source #

(CFunParamAttrsIsParameterAttrs :-<: fs, All HFunctor fs) => InjF fs CFunParamAttrsL ParameterAttrsL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a CFunParamAttrsL -> CxtS h fs a ParameterAttrsL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a ParameterAttrsL -> Maybe (Cxt h (Sum fs :&: p) a CFunParamAttrsL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a ParameterAttrsL -> Maybe (CxtS h fs a CFunParamAttrsL) Source #

(CSpecialParamIsFunctionParameter :-<: fs, All HFunctor fs) => InjF fs CSpecialParamL FunctionParameterL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a CSpecialParamL -> CxtS h fs a FunctionParameterL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a FunctionParameterL -> Maybe (Cxt h (Sum fs :&: p) a CSpecialParamL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a FunctionParameterL -> Maybe (CxtS h fs a CSpecialParamL) Source #

(COldStyleParamIsFunctionParameter :-<: fs, All HFunctor fs) => InjF fs COldStyleParamL FunctionParameterL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a COldStyleParamL -> CxtS h fs a FunctionParameterL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a FunctionParameterL -> Maybe (Cxt h (Sum fs :&: p) a COldStyleParamL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a FunctionParameterL -> Maybe (CxtS h fs a COldStyleParamL) Source #

(CStatementIsFunctionBody :-<: fs, All HFunctor fs) => InjF fs CStatementL FunctionBodyL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a CStatementL -> CxtS h fs a FunctionBodyL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a FunctionBodyL -> Maybe (Cxt h (Sum fs :&: p) a CStatementL) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a FunctionBodyL -> Maybe (CxtS h fs a CStatementL) Source #

InjF MPythonSig IdentL LhsL Source # 
Instance details

Defined in Cubix.Language.Python.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MPythonSig a IdentL -> CxtS h MPythonSig a LhsL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MPythonSig :&: p) a LhsL -> Maybe (Cxt h (Sum MPythonSig :&: p) a IdentL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MPythonSig a LhsL -> Maybe (CxtS h MPythonSig a IdentL) Source #

InjF MPythonSig IdentL FunctionExpL Source # 
Instance details

Defined in Cubix.Language.Python.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MPythonSig a IdentL -> CxtS h MPythonSig a FunctionExpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MPythonSig :&: p) a FunctionExpL -> Maybe (Cxt h (Sum MPythonSig :&: p) a IdentL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MPythonSig a FunctionExpL -> Maybe (CxtS h MPythonSig a IdentL) Source #

InjF MPythonSig IdentL PositionalArgExpL Source # 
Instance details

Defined in Cubix.Language.Python.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MPythonSig a IdentL -> CxtS h MPythonSig a PositionalArgExpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MPythonSig :&: p) a PositionalArgExpL -> Maybe (Cxt h (Sum MPythonSig :&: p) a IdentL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MPythonSig a PositionalArgExpL -> Maybe (CxtS h MPythonSig a IdentL) Source #

InjF MPythonSig IdentL ExprL Source # 
Instance details

Defined in Cubix.Language.Python.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MPythonSig a IdentL -> CxtS h MPythonSig a ExprL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MPythonSig :&: p) a ExprL -> Maybe (Cxt h (Sum MPythonSig :&: p) a IdentL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MPythonSig a ExprL -> Maybe (CxtS h MPythonSig a IdentL) Source #

InjF MPythonSig AssignL BlockItemL Source # 
Instance details

Defined in Cubix.Language.Python.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MPythonSig a AssignL -> CxtS h MPythonSig a BlockItemL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MPythonSig :&: p) a BlockItemL -> Maybe (Cxt h (Sum MPythonSig :&: p) a AssignL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MPythonSig a BlockItemL -> Maybe (CxtS h MPythonSig a AssignL) Source #

InjF MLuaSig IdentL VarDeclBinderL Source # 
Instance details

Defined in Cubix.Language.Lua.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MLuaSig a IdentL -> CxtS h MLuaSig a VarDeclBinderL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MLuaSig :&: p) a VarDeclBinderL -> Maybe (Cxt h (Sum MLuaSig :&: p) a IdentL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MLuaSig a VarDeclBinderL -> Maybe (CxtS h MLuaSig a IdentL) Source #

InjF MLuaSig IdentL LhsL Source # 
Instance details

Defined in Cubix.Language.Lua.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MLuaSig a IdentL -> CxtS h MLuaSig a LhsL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MLuaSig :&: p) a LhsL -> Maybe (Cxt h (Sum MLuaSig :&: p) a IdentL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MLuaSig a LhsL -> Maybe (CxtS h MLuaSig a IdentL) Source #

InjF MLuaSig IdentL FunctionExpL Source # 
Instance details

Defined in Cubix.Language.Lua.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MLuaSig a IdentL -> CxtS h MLuaSig a FunctionExpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MLuaSig :&: p) a FunctionExpL -> Maybe (Cxt h (Sum MLuaSig :&: p) a IdentL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MLuaSig a FunctionExpL -> Maybe (CxtS h MLuaSig a IdentL) Source #

InjF MLuaSig IdentL PositionalArgExpL Source # 
Instance details

Defined in Cubix.Language.Lua.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MLuaSig a IdentL -> CxtS h MLuaSig a PositionalArgExpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MLuaSig :&: p) a PositionalArgExpL -> Maybe (Cxt h (Sum MLuaSig :&: p) a IdentL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MLuaSig a PositionalArgExpL -> Maybe (CxtS h MLuaSig a IdentL) Source #

InjF MLuaSig IdentL ExpL Source # 
Instance details

Defined in Cubix.Language.Lua.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MLuaSig a IdentL -> CxtS h MLuaSig a ExpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MLuaSig :&: p) a ExpL -> Maybe (Cxt h (Sum MLuaSig :&: p) a IdentL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MLuaSig a ExpL -> Maybe (CxtS h MLuaSig a IdentL) Source #

InjF MLuaSig SingleLocalVarDeclL BlockItemL Source # 
Instance details

Defined in Cubix.Language.Lua.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MLuaSig a SingleLocalVarDeclL -> CxtS h MLuaSig a BlockItemL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MLuaSig :&: p) a BlockItemL -> Maybe (Cxt h (Sum MLuaSig :&: p) a SingleLocalVarDeclL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MLuaSig a BlockItemL -> Maybe (CxtS h MLuaSig a SingleLocalVarDeclL) Source #

InjF MLuaSig AssignL BlockItemL Source # 
Instance details

Defined in Cubix.Language.Lua.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MLuaSig a AssignL -> CxtS h MLuaSig a BlockItemL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MLuaSig :&: p) a BlockItemL -> Maybe (Cxt h (Sum MLuaSig :&: p) a AssignL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MLuaSig a BlockItemL -> Maybe (CxtS h MLuaSig a AssignL) Source #

InjF MLuaSig ExpL LocalVarInitL Source # 
Instance details

Defined in Cubix.Language.Lua.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MLuaSig a ExpL -> CxtS h MLuaSig a LocalVarInitL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MLuaSig :&: p) a LocalVarInitL -> Maybe (Cxt h (Sum MLuaSig :&: p) a ExpL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MLuaSig a LocalVarInitL -> Maybe (CxtS h MLuaSig a ExpL) Source #

InjF MLuaSig ExpL RhsL Source # 
Instance details

Defined in Cubix.Language.Lua.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MLuaSig a ExpL -> CxtS h MLuaSig a RhsL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MLuaSig :&: p) a RhsL -> Maybe (Cxt h (Sum MLuaSig :&: p) a ExpL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MLuaSig a RhsL -> Maybe (CxtS h MLuaSig a ExpL) Source #

InjF MJSSig IdentL VarDeclBinderL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MJSSig a IdentL -> CxtS h MJSSig a VarDeclBinderL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MJSSig :&: p) a VarDeclBinderL -> Maybe (Cxt h (Sum MJSSig :&: p) a IdentL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MJSSig a VarDeclBinderL -> Maybe (CxtS h MJSSig a IdentL) Source #

InjF MJSSig IdentL LhsL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MJSSig a IdentL -> CxtS h MJSSig a LhsL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MJSSig :&: p) a LhsL -> Maybe (Cxt h (Sum MJSSig :&: p) a IdentL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MJSSig a LhsL -> Maybe (CxtS h MJSSig a IdentL) Source #

InjF MJSSig IdentL FunctionExpL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MJSSig a IdentL -> CxtS h MJSSig a FunctionExpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MJSSig :&: p) a FunctionExpL -> Maybe (Cxt h (Sum MJSSig :&: p) a IdentL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MJSSig a FunctionExpL -> Maybe (CxtS h MJSSig a IdentL) Source #

InjF MJSSig IdentL PositionalArgExpL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MJSSig a IdentL -> CxtS h MJSSig a PositionalArgExpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MJSSig :&: p) a PositionalArgExpL -> Maybe (Cxt h (Sum MJSSig :&: p) a IdentL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MJSSig a PositionalArgExpL -> Maybe (CxtS h MJSSig a IdentL) Source #

InjF MJSSig SingleLocalVarDeclL BlockItemL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MJSSig a SingleLocalVarDeclL -> CxtS h MJSSig a BlockItemL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MJSSig :&: p) a BlockItemL -> Maybe (Cxt h (Sum MJSSig :&: p) a SingleLocalVarDeclL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MJSSig a BlockItemL -> Maybe (CxtS h MJSSig a SingleLocalVarDeclL) Source #

InjF MJSSig MultiLocalVarDeclL BlockItemL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MJSSig a MultiLocalVarDeclL -> CxtS h MJSSig a BlockItemL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MJSSig :&: p) a BlockItemL -> Maybe (Cxt h (Sum MJSSig :&: p) a MultiLocalVarDeclL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MJSSig a BlockItemL -> Maybe (CxtS h MJSSig a MultiLocalVarDeclL) Source #

InjF MJSSig AssignL BlockItemL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MJSSig a AssignL -> CxtS h MJSSig a BlockItemL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MJSSig :&: p) a BlockItemL -> Maybe (Cxt h (Sum MJSSig :&: p) a AssignL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MJSSig a BlockItemL -> Maybe (CxtS h MJSSig a AssignL) Source #

InjF MJSSig AssignL JSStatementL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MJSSig a AssignL -> CxtS h MJSSig a JSStatementL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MJSSig :&: p) a JSStatementL -> Maybe (Cxt h (Sum MJSSig :&: p) a AssignL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MJSSig a JSStatementL -> Maybe (CxtS h MJSSig a AssignL) Source #

InjF MJavaSig IdentL LhsL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MJavaSig a IdentL -> CxtS h MJavaSig a LhsL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MJavaSig :&: p) a LhsL -> Maybe (Cxt h (Sum MJavaSig :&: p) a IdentL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MJavaSig a LhsL -> Maybe (CxtS h MJavaSig a IdentL) Source #

InjF MJavaSig IdentL FunctionExpL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MJavaSig a IdentL -> CxtS h MJavaSig a FunctionExpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MJavaSig :&: p) a FunctionExpL -> Maybe (Cxt h (Sum MJavaSig :&: p) a IdentL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MJavaSig a FunctionExpL -> Maybe (CxtS h MJavaSig a IdentL) Source #

InjF MJavaSig IdentL PositionalArgExpL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MJavaSig a IdentL -> CxtS h MJavaSig a PositionalArgExpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MJavaSig :&: p) a PositionalArgExpL -> Maybe (Cxt h (Sum MJavaSig :&: p) a IdentL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MJavaSig a PositionalArgExpL -> Maybe (CxtS h MJavaSig a IdentL) Source #

InjF MJavaSig IdentL ExpL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MJavaSig a IdentL -> CxtS h MJavaSig a ExpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MJavaSig :&: p) a ExpL -> Maybe (Cxt h (Sum MJavaSig :&: p) a IdentL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MJavaSig a ExpL -> Maybe (CxtS h MJavaSig a IdentL) Source #

InjF MJavaSig MultiLocalVarDeclL BlockItemL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MJavaSig a MultiLocalVarDeclL -> CxtS h MJavaSig a BlockItemL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MJavaSig :&: p) a BlockItemL -> Maybe (Cxt h (Sum MJavaSig :&: p) a MultiLocalVarDeclL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MJavaSig a BlockItemL -> Maybe (CxtS h MJavaSig a MultiLocalVarDeclL) Source #

InjF MJavaSig AssignL BlockItemL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MJavaSig a AssignL -> CxtS h MJavaSig a BlockItemL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MJavaSig :&: p) a BlockItemL -> Maybe (Cxt h (Sum MJavaSig :&: p) a AssignL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MJavaSig a BlockItemL -> Maybe (CxtS h MJavaSig a AssignL) Source #

InjF MJavaSig BlockL StmtL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MJavaSig a BlockL -> CxtS h MJavaSig a StmtL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MJavaSig :&: p) a StmtL -> Maybe (Cxt h (Sum MJavaSig :&: p) a BlockL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MJavaSig a StmtL -> Maybe (CxtS h MJavaSig a BlockL) Source #

InjF MJavaSig StmtL BlockItemL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MJavaSig a StmtL -> CxtS h MJavaSig a BlockItemL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MJavaSig :&: p) a BlockItemL -> Maybe (Cxt h (Sum MJavaSig :&: p) a StmtL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MJavaSig a BlockItemL -> Maybe (CxtS h MJavaSig a StmtL) Source #

InjF MJavaSig ExpL LocalVarInitL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MJavaSig a ExpL -> CxtS h MJavaSig a LocalVarInitL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MJavaSig :&: p) a LocalVarInitL -> Maybe (Cxt h (Sum MJavaSig :&: p) a ExpL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MJavaSig a LocalVarInitL -> Maybe (CxtS h MJavaSig a ExpL) Source #

InjF MJavaSig ExpL FunctionArgumentL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MJavaSig a ExpL -> CxtS h MJavaSig a FunctionArgumentL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MJavaSig :&: p) a FunctionArgumentL -> Maybe (Cxt h (Sum MJavaSig :&: p) a ExpL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MJavaSig a FunctionArgumentL -> Maybe (CxtS h MJavaSig a ExpL) Source #

InjF MCSig IdentL LhsL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MCSig a IdentL -> CxtS h MCSig a LhsL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MCSig :&: p) a LhsL -> Maybe (Cxt h (Sum MCSig :&: p) a IdentL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MCSig a LhsL -> Maybe (CxtS h MCSig a IdentL) Source #

InjF MCSig IdentL FunctionExpL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MCSig a IdentL -> CxtS h MCSig a FunctionExpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MCSig :&: p) a FunctionExpL -> Maybe (Cxt h (Sum MCSig :&: p) a IdentL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MCSig a FunctionExpL -> Maybe (CxtS h MCSig a IdentL) Source #

InjF MCSig IdentL PositionalArgExpL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MCSig a IdentL -> CxtS h MCSig a PositionalArgExpL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MCSig :&: p) a PositionalArgExpL -> Maybe (Cxt h (Sum MCSig :&: p) a IdentL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MCSig a PositionalArgExpL -> Maybe (CxtS h MCSig a IdentL) Source #

InjF MCSig IdentL CExpressionL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MCSig a IdentL -> CxtS h MCSig a CExpressionL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MCSig :&: p) a CExpressionL -> Maybe (Cxt h (Sum MCSig :&: p) a IdentL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MCSig a CExpressionL -> Maybe (CxtS h MCSig a IdentL) Source #

InjF MCSig MultiLocalVarDeclL BlockItemL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MCSig a MultiLocalVarDeclL -> CxtS h MCSig a BlockItemL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MCSig :&: p) a BlockItemL -> Maybe (Cxt h (Sum MCSig :&: p) a MultiLocalVarDeclL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MCSig a BlockItemL -> Maybe (CxtS h MCSig a MultiLocalVarDeclL) Source #

InjF MCSig AssignL BlockItemL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MCSig a AssignL -> CxtS h MCSig a BlockItemL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MCSig :&: p) a BlockItemL -> Maybe (Cxt h (Sum MCSig :&: p) a AssignL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MCSig a BlockItemL -> Maybe (CxtS h MCSig a AssignL) Source #

InjF MCSig CStatementL BlockItemL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MCSig a CStatementL -> CxtS h MCSig a BlockItemL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MCSig :&: p) a BlockItemL -> Maybe (Cxt h (Sum MCSig :&: p) a CStatementL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MCSig a BlockItemL -> Maybe (CxtS h MCSig a CStatementL) Source #

InjF MCSig CExpressionL LocalVarInitL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MCSig a CExpressionL -> CxtS h MCSig a LocalVarInitL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MCSig :&: p) a LocalVarInitL -> Maybe (Cxt h (Sum MCSig :&: p) a CExpressionL) Source #

projF :: forall h (a :: Type -> Type). CxtS h MCSig a LocalVarInitL -> Maybe (CxtS h MCSig a CExpressionL) Source #

(TupleBinder :-<: fs, All HFunctor fs) => InjF fs [IdentL] VarDeclBinderL Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.VarDecl

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a [IdentL] -> CxtS h fs a VarDeclBinderL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a VarDeclBinderL -> Maybe (Cxt h (Sum fs :&: p) a [IdentL]) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a VarDeclBinderL -> Maybe (CxtS h fs a [IdentL]) Source #

(CDeclarationSpecifiersIsMultiLocalVarDeclCommonAttrs :-<: fs, All HFunctor fs) => InjF fs [CDeclarationSpecifierL] MultiLocalVarDeclCommonAttrsL Source # 
Instance details

Defined in Cubix.Language.C.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h fs a [CDeclarationSpecifierL] -> CxtS h fs a MultiLocalVarDeclCommonAttrsL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum fs :&: p) a MultiLocalVarDeclCommonAttrsL -> Maybe (Cxt h (Sum fs :&: p) a [CDeclarationSpecifierL]) Source #

projF :: forall h (a :: Type -> Type). CxtS h fs a MultiLocalVarDeclCommonAttrsL -> Maybe (CxtS h fs a [CDeclarationSpecifierL]) Source #

InjF MPythonSig [PyLValueL] LhsL Source # 
Instance details

Defined in Cubix.Language.Python.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MPythonSig a [PyLValueL] -> CxtS h MPythonSig a LhsL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MPythonSig :&: p) a LhsL -> Maybe (Cxt h (Sum MPythonSig :&: p) a [PyLValueL]) Source #

projF :: forall h (a :: Type -> Type). CxtS h MPythonSig a LhsL -> Maybe (CxtS h MPythonSig a [PyLValueL]) Source #

InjF MLuaSig [VarL] LhsL Source # 
Instance details

Defined in Cubix.Language.Lua.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MLuaSig a [VarL] -> CxtS h MLuaSig a LhsL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MLuaSig :&: p) a LhsL -> Maybe (Cxt h (Sum MLuaSig :&: p) a [VarL]) Source #

projF :: forall h (a :: Type -> Type). CxtS h MLuaSig a LhsL -> Maybe (CxtS h MLuaSig a [VarL]) Source #

InjF MLuaSig [ExpL] LocalVarInitL Source # 
Instance details

Defined in Cubix.Language.Lua.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MLuaSig a [ExpL] -> CxtS h MLuaSig a LocalVarInitL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MLuaSig :&: p) a LocalVarInitL -> Maybe (Cxt h (Sum MLuaSig :&: p) a [ExpL]) Source #

projF :: forall h (a :: Type -> Type). CxtS h MLuaSig a LocalVarInitL -> Maybe (CxtS h MLuaSig a [ExpL]) Source #

InjF MLuaSig [ExpL] RhsL Source # 
Instance details

Defined in Cubix.Language.Lua.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MLuaSig a [ExpL] -> CxtS h MLuaSig a RhsL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MLuaSig :&: p) a RhsL -> Maybe (Cxt h (Sum MLuaSig :&: p) a [ExpL]) Source #

projF :: forall h (a :: Type -> Type). CxtS h MLuaSig a RhsL -> Maybe (CxtS h MLuaSig a [ExpL]) Source #

InjF MLuaSig (Maybe [ExpL]) BlockEndL Source # 
Instance details

Defined in Cubix.Language.Lua.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MLuaSig a (Maybe [ExpL]) -> CxtS h MLuaSig a BlockEndL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MLuaSig :&: p) a BlockEndL -> Maybe (Cxt h (Sum MLuaSig :&: p) a (Maybe [ExpL])) Source #

projF :: forall h (a :: Type -> Type). CxtS h MLuaSig a BlockEndL -> Maybe (CxtS h MLuaSig a (Maybe [ExpL])) Source #

InjF MJSSig (Maybe IdentL) JSIdentL Source # 
Instance details

Defined in Cubix.Language.JavaScript.Parametric.Common.Types

Methods

injF :: forall h (a :: Type -> Type). CxtS h MJSSig a (Maybe IdentL) -> CxtS h MJSSig a JSIdentL Source #

projF' :: forall h p (a :: Type -> Type). Cxt h (Sum MJSSig :&: p) a JSIdentL -> Maybe (Cxt h (Sum MJSSig :&: p) a (Maybe IdentL)) Source #

projF :: forall h (a :: Type -> Type). CxtS h MJSSig a JSIdentL -> Maybe (CxtS h MJSSig a (Maybe IdentL)) Source #

InjF MJavaSig ([ModifierL], TypeL) MultiLocalVarDeclCommonAttrsL Source # 
Instance details

Defined in Cubix.Language.Java.Parametric.Common.Types

injectF :: (g :-<: fs, InjF fs l l') => g (CxtS h fs a) l -> CxtS h fs a l' Source #

injF but for terms. Or inject, but allowing sort injections We would like this to replace the inject function outright

fromProjF :: InjF fs l l' => CxtS h fs a l' -> CxtS h fs a l Source #

labeledInjF :: (MonadAnnotater Label m, InjF fs l l', All HTraversable fs, All HFoldable fs) => TermLab fs l -> m (TermLab fs l') Source #

injectFAnnDef :: (InjF fs l l', All HTraversable fs, MonadAnnotater a (AnnotateDefault a), All HFoldable fs) => (Sum fs :&: a) (AnnTerm a fs) l -> AnnTerm a fs l' Source #

class AInjF fs l where Source #

Methods

ainjF :: MonadAnnotater Label m => TermLab fs l' -> Maybe (TermLab fs l, TermLab fs l -> m (TermLab fs l')) Source #

Instances

Instances details
AInjF' fs l (InjectableSorts fs l) => AInjF fs l Source # 
Instance details

Defined in Cubix.Language.Parametric.InjF

Methods

ainjF :: MonadAnnotater Label m => TermLab fs l' -> Maybe (TermLab fs l, TermLab fs l -> m (TermLab fs l')) Source #