symantic-lib-0.0.5.20190614: Symantics for common types.

Safe HaskellNone
LanguageHaskell2010

Language.Symantic.Lib.Functor

Contents

Description

Symantic for Functor.

Synopsis

Class Sym_Functor

class Sym_Functor term where Source #

Minimal complete definition

Nothing

Methods

fmap :: Functor f => term (a -> b) -> term (f a) -> term (f b) Source #

fmap :: Sym_Functor (UnT term) => Trans term => Functor f => term (a -> b) -> term (f a) -> term (f b) Source #

(<$>) :: (Sym_Functor term, Functor f) => term (a -> b) -> term (f a) -> term (f b) infixl 4 Source #

(<$) :: Functor f => term a -> term (f b) -> term (f a) infixl 4 Source #

(<$) :: Sym_Lambda term => Functor f => term a -> term (f b) -> term (f a) infixl 4 Source #

Instances
Sym_Functor View Source # 
Instance details

Defined in Language.Symantic.Lib.Functor

Methods

fmap :: Functor f => View (a -> b) -> View (f a) -> View (f b) Source #

(<$>) :: (Sym_Functor View, Functor f) => View (a -> b) -> View (f a) -> View (f b) Source #

(<$) :: Functor f => View a -> View (f b) -> View (f a) Source #

Sym_Functor Eval Source # 
Instance details

Defined in Language.Symantic.Lib.Functor

Methods

fmap :: Functor f => Eval (a -> b) -> Eval (f a) -> Eval (f b) Source #

(<$>) :: (Sym_Functor Eval, Functor f) => Eval (a -> b) -> Eval (f a) -> Eval (f b) Source #

(<$) :: Functor f => Eval a -> Eval (f b) -> Eval (f a) Source #

(Sym_Functor term, Sym_Lambda term) => Sym_Functor (BetaT term) Source # 
Instance details

Defined in Language.Symantic.Lib.Functor

Methods

fmap :: Functor f => BetaT term (a -> b) -> BetaT term (f a) -> BetaT term (f b) Source #

(<$>) :: (Sym_Functor (BetaT term), Functor f) => BetaT term (a -> b) -> BetaT term (f a) -> BetaT term (f b) Source #

(<$) :: Functor f => BetaT term a -> BetaT term (f b) -> BetaT term (f a) Source #

(Sym_Functor r1, Sym_Functor r2) => Sym_Functor (Dup r1 r2) Source # 
Instance details

Defined in Language.Symantic.Lib.Functor

Methods

fmap :: Functor f => Dup r1 r2 (a -> b) -> Dup r1 r2 (f a) -> Dup r1 r2 (f b) Source #

(<$>) :: (Sym_Functor (Dup r1 r2), Functor f) => Dup r1 r2 (a -> b) -> Dup r1 r2 (f a) -> Dup r1 r2 (f b) Source #

(<$) :: Functor f => Dup r1 r2 a -> Dup r1 r2 (f b) -> Dup r1 r2 (f a) Source #

Types

tyFunctor :: Source src => Type src vs a -> Type src vs (Functor a) Source #

f1 :: Source src => LenInj vs => KindInj (K f) => Type src (a ': (Proxy f ': vs)) f Source #

f2 :: Source src => LenInj vs => KindInj (K f) => Type src (a ': (b ': (Proxy f ': vs))) f Source #

Terms

teFunctor_fmap :: TermDef Functor '[Proxy a, Proxy b, Proxy f] (Functor f #> ((a -> b) -> f a -> f b)) Source #

teFunctor_fmap_infix :: TermDef Functor '[Proxy a, Proxy b, Proxy f] (Functor f #> ((a -> b) -> f a -> f b)) Source #

teFunctor_const :: TermDef Functor '[Proxy a, Proxy b, Proxy f] (Functor f #> (a -> f b -> f a)) Source #

Orphan instances

ClassInstancesFor Functor Source # 
Instance details

Methods

proveConstraintFor :: Source src => proxy Functor -> Type src vs q -> Maybe (Qual q) #

TypeInstancesFor Functor Source # 
Instance details

Methods

expandFamFor :: Source src => proxy Functor -> Len vs -> Const src fam -> Types src vs ts -> Maybe (Type src vs (Fam fam ts)) #

NameTyOf Functor Source # 
Instance details

Methods

nameTyOf :: proxy Functor -> Mod NameTy #

isNameTyOp :: proxy Functor -> Bool #

FixityOf Functor Source # 
Instance details

Methods

fixityOf :: proxy Functor -> Maybe Fixity #

(Source src, SymInj ss Functor) => ModuleFor src ss Functor Source # 
Instance details

Methods

moduleFor :: (PathMod, Module src ss) #

Gram_Term_AtomsFor src ss g Functor Source # 
Instance details

Methods

g_term_atomsFor :: [CF g (AST_Term src ss)] #