cubix-0.1.0.0: A framework for multi-language transformation
Copyright(c) 2020 James Koppel
LicenseBSD3
Safe HaskellNone
LanguageHaskell2010

Cubix.Essentials

Description

This is a beginner-friendly package containing the most common functions and types needed by Cubix programs. It is built as a companion to the Cubix tutorial, though we explain many things in both places.

Guide to using this file * Strongly recommend: Click "Collapse All Instances" in the top-right corner * For newcomers: Look at the examples given, not at the types * This file is not the authoritative source for any of its exports. Some typeclasses have methods hidden here. Some functions are exported with more-specific type signatures that are easier to understand.

Synopsis

Core representation

Language fragments

The first concept is that of a language fragment and signature. Language fragments in Cubix look like this:

 data ExpL
 data StatementL

 data Statement e l where
   Assign :: String -> e ExpL             -> Statement e StatementL
   Seq    :: e StatementL -> e StatementL -> Statement e StatementL
 

This definition of Statement is called a *language fragment*. It defines the nodes Assign and Seq without any reference to the larger language they are embedded in. The *labels* StatementL and ExpL are *sorts*, categories of terms. Popular languages commonly have a sort for top-level definitions, a sort for lvalues, a sort for import statements, etc. Specifying the sort separately from the language fragment makes it possible to modularly add new statements and expressions to a language definition, which we will demonstrate shortly.

Expect to see the kind (* -> *) -> * -> * a lot, the kind of language fragments.

When you define a normal datatype (kind *) in Haskell, you might suffix it with deriving (Eq, Ord, Show). The equivalent for these higher-kinded language fragments is to derive their higher-kinded equivalents using the deriveAll Template Haskell function, e.g.:

 deriveAll [''Statement]
 

deriveAll :: [Name] -> Q [Dec] Source #

Derives instances of the following for each type in the list:

HFunctor, HTraversable, HFoldable, EqHF, ShowHF, OrdHF, DynCase

Additonally, it will create smart constructors for the data type

Signatures: Combining fragments

Language fragments let one define nodes independent of a larger language. We shall soon show how to combine them into a **signature**. But first, let us define two more language fragments, Conditional and Exp.

data Conditional e l where
   If :: e ExpL -> e StatementL -> e StatementL -> Conditional e StatementL

data Exp e l where
   VarExp :: String           -> Exp e ExpL
   Add    :: e ExpL -> e ExpL -> Exp e ExpL
   -- other cases omitted

As a preview, note how Conditional defines a new node If of sort Statement. When these fragments are combined into a language, the If node will be able to be included under a Seq node, just as easily as if was defined in the Statement fragment.

A *signature* is a collection of language fragments. They take the form of a type-level list. Here is a signature for a language containing all the nodes in the Statement, Conditional, and Exp fragments.

type LangSig = '[Statement, Conditional, Exp]

Signatures have the kind [(* -> *) -> * -> *], another kind you'll encounter frequently. Signatures are used by passing them to the Sum constructor, e.g.:

Sum LangSig

Sum LangSig has kind (* -> *) -> * -> *, the same kind as language fragments. It is conceptually a single language fragment consisting of the combined nodes of Statement, Conditional, and Exp. It could even be placed in another language signature, and nested within another Sum, although this use case is not supported.

The Sum constructor is important to Cubix, but you may not use it directly. More often, you'll use something like Term LangSig --- but note that Term is defined using Sum.

data Sum (fs :: [(Type -> Type) -> Type -> Type]) (h :: Type -> Type) e #

Data type defining a sum of signatures.

It is inspired by modular reifiable matching, as described in

  • Oliveira, Bruno C. D. S., Shin-Cheng Mu, and Shu-Hung You. "Modular reifiable matching: a list-of-functors approach to two-level types." In Haskell Symposium, 2015.

except that this definition uses value-level integers (in the Elem datatype) in place of type-level naturals. It hence uses unsafeCoerce under the hood, but is type-safe if used through the public API. The result is that values of this type take constant memory with respect to the number of summands (unlike vanilla datatypes à la carte), and constant time to dereference (unlike modular reifiable matching). The representation is the bare minimum: an int representing the alternative, and pointer to the value.

Instances

Instances details
(All (InsertAt' gs l) fs, DynCase (Term gs) l) => InsertAt' gs l (Sum fs) Source # 
Instance details

Defined in Cubix.Language.Parametric.Semantics.SemanticProperties

Methods

insertAt' :: MonadAnnotater a m => NodeEvaluationPoint -> AnnTerm a gs l -> (Sum fs :&: a) (AnnTerm a gs) i -> m (AnnTerm a gs i) Source #

canInsertAt' :: NodeEvaluationPoint -> Proxy l -> (Sum fs :&: a) (AnnTerm a gs) i -> Bool Source #

All (ConstructCfg g s) fs => ConstructCfg g s (Sum fs) Source # 
Instance details

Defined in Cubix.Language.Parametric.Semantics.Cfg.CfgConstruction

Mem f fs => f :<: (Sum fs) 
Instance details

Defined in Data.Comp.Multi.Ops

Methods

inj :: forall (a :: Type -> Type). f a :-> Sum fs a #

proj :: forall (a :: Type -> Type). NatM Maybe (Sum fs a) (f a) #

All (KExtractF3' f) gs => KExtractF3' f (Sum gs) Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Functor

Methods

kextractF3' :: Sum gs e (f l l' l'') -> f (e l) (e l') (e l'') Source #

All (KExtractF3 f) gs => KExtractF3 f (Sum gs) Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Functor

Methods

kextractF3 :: ExtractF3 f e => Sum gs e (f l l' l'') -> f (e l) (e l') (e l'') Source #

All (KExtractF2' f) gs => KExtractF2' f (Sum gs) Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Functor

Methods

kextractF2' :: Sum gs e (f l l') -> f (e l) (e l') Source #

All (KExtractF2 f) gs => KExtractF2 f (Sum gs) Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Functor

Methods

kextractF2 :: ExtractF2 f e => Sum gs e (f l l') -> f (e l) (e l') Source #

All (KExtractF' f) gs => KExtractF' f (Sum gs) Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Functor

Methods

kextractF' :: Sum gs e (f l) -> f (e l) Source #

All (KExtractF f) gs => KExtractF f (Sum gs) Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Functor

Methods

kextractF :: ExtractF f e => Sum gs e (f l) -> f (e l) Source #

All (GetStrictness' gs) fs => GetStrictness' gs (Sum fs) Source # 
Instance details

Defined in Cubix.Language.Parametric.Semantics.SemanticProperties

Methods

getStrictness' :: Sum fs (Term gs) l -> [Strictness] Source #

(All OrdHF fs, EqHF (Sum fs)) => OrdHF (Sum fs)

OrdHF is propagated through sums.

Instance details

Defined in Data.Comp.Multi.Ordering

Methods

compareHF :: forall (a :: Type -> Type) i j. KOrd a => Sum fs a i -> Sum fs a j -> Ordering #

All EqHF fs => EqHF (Sum fs)

EqF is propagated through sums.

Instance details

Defined in Data.Comp.Multi.Equality

Methods

eqHF :: forall (g :: Type -> Type) i j. KEq g => Sum fs g i -> Sum fs g j -> Bool #

(All HTraversable fs, All HFoldable fs, All HFunctor fs) => HTraversable (Sum fs) 
Instance details

Defined in Data.Comp.Multi.Ops

Methods

hmapM :: forall (m :: Type -> Type) (a :: Type -> Type) (b :: Type -> Type). Monad m => NatM m a b -> NatM m (Sum fs a) (Sum fs b) #

htraverse :: forall (f :: Type -> Type) (a :: Type -> Type) (b :: Type -> Type). Applicative f => NatM f a b -> NatM f (Sum fs a) (Sum fs b) #

(All HFoldable fs, All HFunctor fs) => HFoldable (Sum fs) 
Instance details

Defined in Data.Comp.Multi.Ops

Methods

hfold :: Monoid m => Sum fs (K m) :=> m #

hfoldMap :: forall m (a :: Type -> Type). Monoid m => (a :=> m) -> Sum fs a :=> m #

hfoldr :: forall (a :: Type -> Type) b. (a :=> (b -> b)) -> b -> Sum fs a :=> b #

hfoldl :: forall b (a :: Type -> Type). (b -> a :=> b) -> b -> Sum fs a :=> b #

hfoldr1 :: (a -> a -> a) -> Sum fs (K a) :=> a #

hfoldl1 :: (a -> a -> a) -> Sum fs (K a) :=> a #

All HFunctor fs => HFunctor (Sum fs) 
Instance details

Defined in Data.Comp.Multi.Ops

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Sum fs f :-> Sum fs g #

All (KDynCaseFlip l) fs => KDynCase (Sum fs) l 
Instance details

Defined in Data.Comp.Multi.Strategy.Classification

Methods

kdyncase :: forall (e :: Type -> Type) b. Sum fs e b -> Maybe (b :~: l) #

(Annotated f a, Annotated (Sum fs) a) => Annotated (Sum (f ': fs)) a Source # 
Instance details

Defined in Cubix.Sin.Compdata.Annotation

Methods

getAnn' :: forall (e :: Type -> Type) l. Sum (f ': fs) e l -> a Source #

(RemA f g, RemA (Sum fs) (Sum gs)) => RemA (Sum (f ': fs)) (Sum (g ': gs)) 
Instance details

Defined in Data.Comp.Multi.Ops

Methods

remA :: forall (a :: Type -> Type). Sum (f ': fs) a :-> Sum (g ': gs) a #

type Rep (Sum (f ': fs) e l) 
Instance details

Defined in Data.Comp.Multi.Derive.Generic

type Rep (Sum (f ': fs) e l) = Rep (f e l) :+: Rep (Sum fs e l)
type Rep (Sum ('[] :: [(Type -> Type) -> Type -> Type]) e l) 
Instance details

Defined in Data.Comp.Multi.Derive.Generic

type Rep (Sum ('[] :: [(Type -> Type) -> Type -> Type]) e l) = V1 :: Type -> Type

Terms

Terms are how we put stuff together

type Term fs = HFix (Sum fs) Source #

inject :: g :-<: fs => g (Term fs) l -> Term fs l Source #

Dealing with sums

class f :<: Sum fs => (f :: (Type -> Type) -> Type -> Type) :-<: (fs :: [(Type -> Type) -> Type -> Type]) #

Instances

Instances details
f :<: Sum fs => f :-<: fs 
Instance details

Defined in Data.Comp.Multi.Ops

class All (c :: k -> Constraint) (fs :: [k]) #

An instance of All c fs holds if c f holds for all f in fs.

Example: All HFunctor '[Add, Mul] holds if there are HFunctor instances for signatures Add and Mul.

The primary way to consume an All instance is with the caseCxt function. E.g.:

class Pretty f where
  pretty :: f e l -> String

instance (All Pretty fs) => Pretty (Sum fs) where
  pretty x = caseCxt (Proxy @Pretty) pretty x

Minimal complete definition

dicts

Instances

Instances details
All (c :: k -> Constraint) ('[] :: [k]) 
Instance details

Defined in Data.Comp.Dict

Methods

dicts :: Proxy# '[] -> [E (Dict c)]

(All c fs, c f) => All (c :: a -> Constraint) (f ': fs :: [a]) 
Instance details

Defined in Data.Comp.Dict

Methods

dicts :: Proxy# (f ': fs) -> [E (Dict c)]

caseCxt :: All cxt fs => Proxy cxt -> (forall f. cxt f => f a e -> b) -> Sum fs a e -> b Source #

For full documentaton, see original declaration: caseCxt

Higher topics involving sums/tems

Sort injections

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 :: 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

Labeled nodes

data Label Source #

Provides unique labels for AST nodes

Instances

Instances details
Eq Label Source # 
Instance details

Defined in Cubix.Language.Info

Methods

(==) :: Label -> Label -> Bool #

(/=) :: Label -> Label -> Bool #

Data Label Source # 
Instance details

Defined in Cubix.Language.Info

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Label -> c Label #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Label #

toConstr :: Label -> Constr #

dataTypeOf :: Label -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Label) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Label) #

gmapT :: (forall b. Data b => b -> b) -> Label -> Label #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Label -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Label -> r #

gmapQ :: (forall d. Data d => d -> u) -> Label -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Label -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Label -> m Label #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Label -> m Label #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Label -> m Label #

Ord Label Source # 
Instance details

Defined in Cubix.Language.Info

Methods

compare :: Label -> Label -> Ordering #

(<) :: Label -> Label -> Bool #

(<=) :: Label -> Label -> Bool #

(>) :: Label -> Label -> Bool #

(>=) :: Label -> Label -> Bool #

max :: Label -> Label -> Label #

min :: Label -> Label -> Label #

Read Label Source # 
Instance details

Defined in Cubix.Language.Info

Show Label Source # 
Instance details

Defined in Cubix.Language.Info

Methods

showsPrec :: Int -> Label -> ShowS #

show :: Label -> String #

showList :: [Label] -> ShowS #

Generic Label Source # 
Instance details

Defined in Cubix.Language.Info

Associated Types

type Rep Label :: Type -> Type #

Methods

from :: Label -> Rep Label x #

to :: Rep Label x -> Label #

NFData Label Source # 
Instance details

Defined in Cubix.Language.Info

Methods

rnf :: Label -> () #

HasLabel Label Source # 
Instance details

Defined in Cubix.Language.Info

Methods

label :: Lens' Label Label Source #

(Monad m, MonadLabeler s m) => MonadAnnotater Label m Source # 
Instance details

Defined in Cubix.Language.Info

Methods

annM :: forall f (e :: Type -> Type) l. f e l -> m ((f :&: Label) e l) Source #

type Rep Label Source # 
Instance details

Defined in Cubix.Language.Info

type Rep Label = D1 ('MetaData "Label" "Cubix.Language.Info" "cubix-0.1.0.0-GE3qzSJT6A0CUj1veI8jGO" 'True) (C1 ('MetaCons "Label" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))

Common typeclassess

These are analogues of standard typeclasses, but for sorted unfixed datatypes. You are unlikely to use methods in these classes directly, but you may frequently invoke functions that require them. You may wind up writing many constraints that use these, likely combined with the All constructor.

class HFunctor (h :: (Type -> Type) -> Type -> Type) #

This class represents higher-order functors (Johann, Ghani, POPL '08) which are endofunctors on the category of endofunctors.

Minimal complete definition

hfmap

Instances

Instances details
HFunctor EitherF Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Functor

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> EitherF f :-> EitherF g #

HFunctor TripleF Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Functor

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> TripleF f :-> TripleF g #

HFunctor PairF Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Functor

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PairF f :-> PairF g #

HFunctor ListF Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Functor

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> ListF f :-> ListF g #

HFunctor MaybeF Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Functor

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> MaybeF f :-> MaybeF g #

HFunctor Ident Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.VarDecl

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Ident f :-> Ident g #

HFunctor OptLocalVarInit Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.VarDecl

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> OptLocalVarInit f :-> OptLocalVarInit g #

HFunctor EmptyLocalVarDeclAttrs Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.VarDecl

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> EmptyLocalVarDeclAttrs f :-> EmptyLocalVarDeclAttrs g #

HFunctor TupleBinder Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.VarDecl

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> TupleBinder f :-> TupleBinder g #

HFunctor IdentIsVarDeclBinder Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.VarDecl

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> IdentIsVarDeclBinder f :-> IdentIsVarDeclBinder g #

HFunctor SingleLocalVarDecl Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.VarDecl

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> SingleLocalVarDecl f :-> SingleLocalVarDecl g #

HFunctor EmptyMultiLocalVarDeclCommonAttrs Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.VarDecl

HFunctor MultiLocalVarDecl Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.VarDecl

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> MultiLocalVarDecl f :-> MultiLocalVarDecl g #

HFunctor AssignOpEquals Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.VarDecl

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> AssignOpEquals f :-> AssignOpEquals g #

HFunctor Assign Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.VarDecl

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Assign f :-> Assign g #

HFunctor EmptyBlockEnd Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.VarDecl

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> EmptyBlockEnd f :-> EmptyBlockEnd g #

HFunctor Block Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.VarDecl

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Block f :-> Block g #

HFunctor EmptyBlockItem Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.VarDecl

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> EmptyBlockItem f :-> EmptyBlockItem g #

HFunctor FunctionCall Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Function

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> FunctionCall f :-> FunctionCall g #

HFunctor EmptyFunctionCallAttrs Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Function

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> EmptyFunctionCallAttrs f :-> EmptyFunctionCallAttrs g #

HFunctor FunctionIdent Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Function

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> FunctionIdent f :-> FunctionIdent g #

HFunctor FunctionArgumentList Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Function

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> FunctionArgumentList f :-> FunctionArgumentList g #

HFunctor ReceiverArg Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Function

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> ReceiverArg f :-> ReceiverArg g #

HFunctor PositionalArgument Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Function

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PositionalArgument f :-> PositionalArgument g #

HFunctor FunctionDecl Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Function

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> FunctionDecl f :-> FunctionDecl g #

HFunctor EmptyFunctionDeclAttrs Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Function

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> EmptyFunctionDeclAttrs f :-> EmptyFunctionDeclAttrs g #

HFunctor SelfParameterDecl Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Function

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> SelfParameterDecl f :-> SelfParameterDecl g #

HFunctor PositionalParameterDeclOptionalIdent Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Function

HFunctor PositionalParameterDeclWithIdent Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Function

HFunctor FunctionDef Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Function

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> FunctionDef f :-> FunctionDef g #

HFunctor EmptyFunctionDefAttrs Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Function

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> EmptyFunctionDefAttrs f :-> EmptyFunctionDefAttrs g #

HFunctor SelfParameter Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Function

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> SelfParameter f :-> SelfParameter g #

HFunctor PositionalParameter Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Function

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PositionalParameter f :-> PositionalParameter g #

HFunctor EmptyParameterAttrs Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Function

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> EmptyParameterAttrs f :-> EmptyParameterAttrs g #

HFunctor UnitF Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Base

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> UnitF f :-> UnitF g #

HFunctor CharF Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Base

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> CharF f :-> CharF g #

HFunctor IntegerF Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Base

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> IntegerF f :-> IntegerF g #

HFunctor IntF Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Base

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> IntF f :-> IntF g #

HFunctor BoolF Source # 
Instance details

Defined in Cubix.Language.Parametric.Syntax.Base

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> BoolF f :-> BoolF g #

HFunctor YieldArg Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> YieldArg f :-> YieldArg g #

HFunctor Statement Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Statement f :-> Statement g #

HFunctor Slice Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Slice f :-> Slice g #

HFunctor RaiseExpr Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> RaiseExpr f :-> RaiseExpr g #

HFunctor Parameter Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Parameter f :-> Parameter g #

HFunctor ParamTuple Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> ParamTuple f :-> ParamTuple g #

HFunctor Op Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Op f :-> Op g #

HFunctor Module Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Module f :-> Module g #

HFunctor ImportRelative Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> ImportRelative f :-> ImportRelative g #

HFunctor ImportItem Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> ImportItem f :-> ImportItem g #

HFunctor Handler Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Handler f :-> Handler g #

HFunctor FromItems Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> FromItems f :-> FromItems g #

HFunctor FromItem Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> FromItem f :-> FromItem g #

HFunctor Expr Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Expr f :-> Expr g #

HFunctor ExceptClause Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> ExceptClause f :-> ExceptClause g #

HFunctor DictKeyDatumList Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> DictKeyDatumList f :-> DictKeyDatumList g #

HFunctor Decorator Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Decorator f :-> Decorator g #

HFunctor ComprehensionExpr Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> ComprehensionExpr f :-> ComprehensionExpr g #

HFunctor Comprehension Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Comprehension f :-> Comprehension g #

HFunctor CompIter Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> CompIter f :-> CompIter g #

HFunctor CompIf Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> CompIf f :-> CompIf g #

HFunctor CompFor Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> CompFor f :-> CompFor g #

HFunctor Argument Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Argument f :-> Argument g #

HFunctor ParenLValue Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> ParenLValue f :-> ParenLValue g #

HFunctor SliceLValue Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> SliceLValue f :-> SliceLValue g #

HFunctor SubscriptLValue Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> SubscriptLValue f :-> SubscriptLValue g #

HFunctor StarLValue Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> StarLValue f :-> StarLValue g #

HFunctor DotLValue Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> DotLValue f :-> DotLValue g #

HFunctor ListLValue Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> ListLValue f :-> ListLValue g #

HFunctor TupleLValue Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> TupleLValue f :-> TupleLValue g #

HFunctor PyLhs Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PyLhs f :-> PyLhs g #

HFunctor PyComprehension Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PyComprehension f :-> PyComprehension g #

HFunctor PyComprehensionExpr Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PyComprehensionExpr f :-> PyComprehensionExpr g #

HFunctor PyCondExpr Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PyCondExpr f :-> PyCondExpr g #

HFunctor PyComp Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PyComp f :-> PyComp g #

HFunctor PyClass Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PyClass f :-> PyClass g #

HFunctor PyBlock Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PyBlock f :-> PyBlock g #

HFunctor PyStringLit Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PyStringLit f :-> PyStringLit g #

HFunctor PyWithBinder Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PyWithBinder f :-> PyWithBinder g #

HFunctor PyWith Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PyWith f :-> PyWith g #

HFunctor PyClassIsStatement Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PyClassIsStatement f :-> PyClassIsStatement g #

HFunctor IdentIsPyLValue Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> IdentIsPyLValue f :-> IdentIsPyLValue g #

HFunctor PyCompIsExpr Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PyCompIsExpr f :-> PyCompIsExpr g #

HFunctor StatementIsBlockItem Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> StatementIsBlockItem f :-> StatementIsBlockItem g #

HFunctor ExprIsRhs Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> ExprIsRhs f :-> ExprIsRhs g #

HFunctor AssignIsStatement Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> AssignIsStatement f :-> AssignIsStatement g #

HFunctor IdentIsIdent Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> IdentIsIdent f :-> IdentIsIdent g #

HFunctor PythonArg Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PythonArg f :-> PythonArg g #

HFunctor PythonParam Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PythonParam f :-> PythonParam g #

HFunctor PyParamAttrs Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PyParamAttrs f :-> PyParamAttrs g #

HFunctor PyFunDefAttrs Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PyFunDefAttrs f :-> PyFunDefAttrs g #

HFunctor PyBlockIsFunctionBody Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PyBlockIsFunctionBody f :-> PyBlockIsFunctionBody g #

HFunctor FunctionDefIsStatement Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> FunctionDefIsStatement f :-> FunctionDefIsStatement g #

HFunctor ExprIsReceiver Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> ExprIsReceiver f :-> ExprIsReceiver g #

HFunctor ExprIsPositionalArgExp Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> ExprIsPositionalArgExp f :-> ExprIsPositionalArgExp g #

HFunctor ExprIsFunctionExp Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> ExprIsFunctionExp f :-> ExprIsFunctionExp g #

HFunctor FunctionCallIsExpr Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> FunctionCallIsExpr f :-> FunctionCallIsExpr g #

HFunctor NumberType Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> NumberType f :-> NumberType g #

HFunctor Var Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Var f :-> Var g #

HFunctor Unop Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Unop f :-> Unop g #

HFunctor TableField Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> TableField f :-> TableField g #

HFunctor Table Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Table f :-> Table g #

HFunctor Stat Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Stat f :-> Stat g #

HFunctor PrefixExp Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PrefixExp f :-> PrefixExp g #

HFunctor FunName Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> FunName f :-> FunName g #

HFunctor FunDef Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> FunDef f :-> FunDef g #

HFunctor FunCall Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> FunCall f :-> FunCall g #

HFunctor FunArg Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> FunArg f :-> FunArg g #

HFunctor Exp Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Exp f :-> Exp g #

HFunctor Binop Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Binop f :-> Binop g #

HFunctor FunBody Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> FunBody f :-> FunBody g #

HFunctor LuaSpecialFunArg Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> LuaSpecialFunArg f :-> LuaSpecialFunArg g #

HFunctor LuaBlockEnd Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> LuaBlockEnd f :-> LuaBlockEnd g #

HFunctor LuaRhs Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> LuaRhs f :-> LuaRhs g #

HFunctor LuaLhs Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> LuaLhs f :-> LuaLhs g #

HFunctor LuaLocalVarInit Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> LuaLocalVarInit f :-> LuaLocalVarInit g #

HFunctor PrefixExpIsReceiver Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PrefixExpIsReceiver f :-> PrefixExpIsReceiver g #

HFunctor PrefixExpIsFunctionExp Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PrefixExpIsFunctionExp f :-> PrefixExpIsFunctionExp g #

HFunctor ExpIsPositionalArgExp Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> ExpIsPositionalArgExp f :-> ExpIsPositionalArgExp g #

HFunctor FunctionCallIsFunCall Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> FunctionCallIsFunCall f :-> FunctionCallIsFunCall g #

HFunctor SingleLocalVarDeclIsStat Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> SingleLocalVarDeclIsStat f :-> SingleLocalVarDeclIsStat g #

HFunctor StatIsBlockItem Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> StatIsBlockItem f :-> StatIsBlockItem g #

HFunctor BlockIsBlock Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> BlockIsBlock f :-> BlockIsBlock g #

HFunctor AssignIsStat Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> AssignIsStat f :-> AssignIsStat g #

HFunctor IdentIsName Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> IdentIsName f :-> IdentIsName g #

HFunctor LuaFunctionDefinedObj Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> LuaFunctionDefinedObj f :-> LuaFunctionDefinedObj g #

HFunctor LuaFunctionAttrs Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> LuaFunctionAttrs f :-> LuaFunctionAttrs g #

HFunctor LuaVarArgsParam Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> LuaVarArgsParam f :-> LuaVarArgsParam g #

HFunctor BlockIsFunctionBody Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> BlockIsFunctionBody f :-> BlockIsFunctionBody g #

HFunctor FunctionDefIsStat Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> FunctionDefIsStat f :-> FunctionDefIsStat g #

HFunctor JSCommaTrailingListF Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSCommaTrailingListF f :-> JSCommaTrailingListF g #

HFunctor JSCommaListF Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSCommaListF f :-> JSCommaListF g #

HFunctor CommentAnnotation Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> CommentAnnotation f :-> CommentAnnotation g #

HFunctor TokenPosn Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> TokenPosn f :-> TokenPosn g #

HFunctor JSUnaryOp Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSUnaryOp f :-> JSUnaryOp g #

HFunctor JSTryFinally Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSTryFinally f :-> JSTryFinally g #

HFunctor JSTryCatch Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSTryCatch f :-> JSTryCatch g #

HFunctor JSSwitchParts Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSSwitchParts f :-> JSSwitchParts g #

HFunctor JSStatement Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSStatement f :-> JSStatement g #

HFunctor JSSemi Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSSemi f :-> JSSemi g #

HFunctor JSPropertyName Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSPropertyName f :-> JSPropertyName g #

HFunctor JSObjectProperty Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSObjectProperty f :-> JSObjectProperty g #

HFunctor JSExpression Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSExpression f :-> JSExpression g #

HFunctor JSBlock Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSBlock f :-> JSBlock g #

HFunctor JSBinOp Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSBinOp f :-> JSBinOp g #

HFunctor JSAssignOp Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSAssignOp f :-> JSAssignOp g #

HFunctor JSArrayElement Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSArrayElement f :-> JSArrayElement g #

HFunctor JSAnnot Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSAnnot f :-> JSAnnot g #

HFunctor JSAccessor Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSAccessor f :-> JSAccessor g #

HFunctor JSAST Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSAST f :-> JSAST g #

HFunctor JSBlockIsJSAST Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSBlockIsJSAST f :-> JSBlockIsJSAST g #

HFunctor JSStatementIsBlockItem Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSStatementIsBlockItem f :-> JSStatementIsBlockItem g #

HFunctor BlockIsJSStatement Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> BlockIsJSStatement f :-> BlockIsJSStatement g #

HFunctor AssignIsJSExpression Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> AssignIsJSExpression f :-> AssignIsJSExpression g #

HFunctor JSAssignOpIsAssignOp Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSAssignOpIsAssignOp f :-> JSAssignOpIsAssignOp g #

HFunctor JSExpressionIsLhs Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSExpressionIsLhs f :-> JSExpressionIsLhs g #

HFunctor JSExpressionIsRhs Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSExpressionIsRhs f :-> JSExpressionIsRhs g #

HFunctor MultiLocalVarDeclIsJSStatement Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> MultiLocalVarDeclIsJSStatement f :-> MultiLocalVarDeclIsJSStatement g #

HFunctor JSExpressionIsVarDeclBinder Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSExpressionIsVarDeclBinder f :-> JSExpressionIsVarDeclBinder g #

HFunctor JSExpressionIsLocalVarInit Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSExpressionIsLocalVarInit f :-> JSExpressionIsLocalVarInit g #

HFunctor IdentIsJSExpression Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> IdentIsJSExpression f :-> IdentIsJSExpression g #

HFunctor MaybeIdentIsJSIdent Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> MaybeIdentIsJSIdent f :-> MaybeIdentIsJSIdent g #

HFunctor JSFor Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSFor f :-> JSFor g #

HFunctor BlockWithPrelude Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> BlockWithPrelude f :-> BlockWithPrelude g #

HFunctor JSBlockIsFunctionBody Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSBlockIsFunctionBody f :-> JSBlockIsFunctionBody g #

HFunctor FunctionDefIsJSStatement Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> FunctionDefIsJSStatement f :-> FunctionDefIsJSStatement g #

HFunctor JSExpressionIsFunctionExp Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSExpressionIsFunctionExp f :-> JSExpressionIsFunctionExp g #

HFunctor JSExpressionIsPositionalArgExp Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> JSExpressionIsPositionalArgExp f :-> JSExpressionIsPositionalArgExp g #

HFunctor FunctionCallIsJSExpression Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> FunctionCallIsJSExpression f :-> FunctionCallIsJSExpression g #

HFunctor WildcardBound Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> WildcardBound f :-> WildcardBound g #

HFunctor TypeParam Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> TypeParam f :-> TypeParam g #

HFunctor TypeDeclSpecifier Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> TypeDeclSpecifier f :-> TypeDeclSpecifier g #

HFunctor TypeArgument Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> TypeArgument f :-> TypeArgument g #

HFunctor Type Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type0 -> Type0) (g :: Type0 -> Type0). (f :-> g) -> Type f :-> Type g #

HFunctor RefType Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> RefType f :-> RefType g #

HFunctor PrimType Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PrimType f :-> PrimType g #

HFunctor Name Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Name f :-> Name g #

HFunctor Diamond Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Diamond f :-> Diamond g #

HFunctor ClassType Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> ClassType f :-> ClassType g #

HFunctor Op Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Op f :-> Op g #

HFunctor Literal Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Literal f :-> Literal g #

HFunctor AssignOp Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> AssignOp f :-> AssignOp g #

HFunctor VarInit Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> VarInit f :-> VarInit g #

HFunctor VarDeclId Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> VarDeclId f :-> VarDeclId g #

HFunctor VarDecl Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> VarDecl f :-> VarDecl g #

HFunctor TypeDecl Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> TypeDecl f :-> TypeDecl g #

HFunctor SwitchLabel Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> SwitchLabel f :-> SwitchLabel g #

HFunctor SwitchBlock Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> SwitchBlock f :-> SwitchBlock g #

HFunctor Stmt Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Stmt f :-> Stmt g #

HFunctor PackageDecl Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> PackageDecl f :-> PackageDecl g #

HFunctor Modifier Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> Modifier f :-> Modifier g #

HFunctor MethodInvocation Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> MethodInvocation f :-> MethodInvocation g #

HFunctor MethodBody Source # 
Instance details

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

Methods

hfmap :: forall (f :: Type -> Type) (g :: Type -> Type). (f :-> g) -> MethodBody f :-> MethodBody g #