pandora-0.4.1: A box of patterns and paradigms
Safe HaskellSafe-Inferred
LanguageHaskell2010

Pandora.Paradigm.Primary.Functor.Function

Documentation

(!) :: a -> b -> a infixr 2 Source #

(!!) :: a -> b -> c -> a Source #

(!!!) :: a -> b -> c -> d -> a Source #

(%) :: (a -> b -> c) -> b -> a -> c infixr 9 Source #

(&) :: a -> (a -> b) -> b infixl 1 Source #

fix :: (a -> a) -> a Source #

Orphan instances

Category ((->) :: Type -> Type -> Type) Source # 
Instance details

Methods

identity :: a -> a Source #

(.) :: (b -> c) -> (a -> b) -> a -> c Source #

($) :: (a -> b) -> (a -> b) Source #

(#) :: (a -> b) -> (a -> b) Source #

Divariant ((->) :: Type -> Type -> Type) Source # 
Instance details

Methods

(>->) :: (a -> b) -> (c -> d) -> (b -> c) -> a -> d Source #

dimap :: (a -> b) -> (c -> d) -> (b -> c) -> a -> d Source #

Semigroup r => Semigroup (e -> r) Source # 
Instance details

Methods

(+) :: (e -> r) -> (e -> r) -> e -> r Source #

Ringoid r => Ringoid (e -> r) Source # 
Instance details

Methods

(*) :: (e -> r) -> (e -> r) -> e -> r Source #

Covariant ((->) a :: Type -> Type) Source # 
Instance details

Methods

(<$>) :: (a0 -> b) -> (a -> a0) -> a -> b Source #

comap :: (a0 -> b) -> (a -> a0) -> a -> b Source #

(<$) :: a0 -> (a -> b) -> a -> a0 Source #

($>) :: (a -> a0) -> b -> a -> b Source #

void :: (a -> a0) -> a -> () Source #

loeb :: (a -> (a0 <:= (->) a)) -> a -> a0 Source #

(<&>) :: (a -> a0) -> (a0 -> b) -> a -> b Source #

(<$$>) :: Covariant u => (a0 -> b) -> (((->) a :. u) := a0) -> ((->) a :. u) := b Source #

(<$$$>) :: (Covariant u, Covariant v) => (a0 -> b) -> (((->) a :. (u :. v)) := a0) -> ((->) a :. (u :. v)) := b Source #

(<$$$$>) :: (Covariant u, Covariant v, Covariant w) => (a0 -> b) -> (((->) a :. (u :. (v :. w))) := a0) -> ((->) a :. (u :. (v :. w))) := b Source #

(<&&>) :: Covariant u => (((->) a :. u) := a0) -> (a0 -> b) -> ((->) a :. u) := b Source #

(<&&&>) :: (Covariant u, Covariant v) => (((->) a :. (u :. v)) := a0) -> (a0 -> b) -> ((->) a :. (u :. v)) := b Source #

(<&&&&>) :: (Covariant u, Covariant v, Covariant w) => (((->) a :. (u :. (v :. w))) := a0) -> (a0 -> b) -> ((->) a :. (u :. (v :. w))) := b Source #

(.#..) :: ((->) a ~ v a0, Category v) => v c d -> ((v a0 :. v b) := c) -> (v a0 :. v b) := d Source #

(.#...) :: ((->) a ~ v a0, (->) a ~ v b, Category v, Covariant (v a0), Covariant (v b)) => v d e -> ((v a0 :. (v b :. v c)) := d) -> (v a0 :. (v b :. v c)) := e Source #

(.#....) :: ((->) a ~ v a0, (->) a ~ v b, (->) a ~ v c, Category v, Covariant (v a0), Covariant (v b), Covariant (v c)) => v e f -> ((v a0 :. (v b :. (v c :. v d))) := e) -> (v a0 :. (v b :. (v c :. v d))) := f Source #

(<$$) :: Covariant u => b -> (((->) a :. u) := a0) -> ((->) a :. u) := b Source #

(<$$$) :: (Covariant u, Covariant v) => b -> (((->) a :. (u :. v)) := a0) -> ((->) a :. (u :. v)) := b Source #

(<$$$$) :: (Covariant u, Covariant v, Covariant w) => b -> (((->) a :. (u :. (v :. w))) := a0) -> ((->) a :. (u :. (v :. w))) := b Source #

($$>) :: Covariant u => (((->) a :. u) := a0) -> b -> ((->) a :. u) := b Source #

($$$>) :: (Covariant u, Covariant v) => (((->) a :. (u :. v)) := a0) -> b -> ((->) a :. (u :. v)) := b Source #

($$$$>) :: (Covariant u, Covariant v, Covariant w) => (((->) a :. (u :. (v :. w))) := a0) -> b -> ((->) a :. (u :. (v :. w))) := b Source #

Bindable ((->) e :: Type -> Type) Source # 
Instance details

Methods

(>>=) :: (e -> a) -> (a -> e -> b) -> e -> b Source #

(=<<) :: (a -> e -> b) -> (e -> a) -> e -> b Source #

bind :: (a -> e -> b) -> (e -> a) -> e -> b Source #

join :: (((->) e :. (->) e) := a) -> e -> a Source #

(>=>) :: (a -> e -> b) -> (b -> e -> c) -> a -> e -> c Source #

(<=<) :: (b -> e -> c) -> (a -> e -> b) -> a -> e -> c Source #

($>>=) :: Covariant u => ((u :. (->) e) := a) -> (a -> e -> b) -> (u :. (->) e) := b Source #

Applicative ((->) e :: Type -> Type) Source # 
Instance details

Methods

(<*>) :: (e -> (a -> b)) -> (e -> a) -> e -> b Source #

apply :: (e -> (a -> b)) -> (e -> a) -> e -> b Source #

(*>) :: (e -> a) -> (e -> b) -> e -> b Source #

(<*) :: (e -> a) -> (e -> b) -> e -> a Source #

forever :: (e -> a) -> e -> b Source #

(<%>) :: (e -> a) -> (e -> (a -> b)) -> e -> b Source #

(<**>) :: Applicative u => (((->) e :. u) := (a -> b)) -> (((->) e :. u) := a) -> ((->) e :. u) := b Source #

(<***>) :: (Applicative u, Applicative v) => (((->) e :. (u :. v)) := (a -> b)) -> (((->) e :. (u :. v)) := a) -> ((->) e :. (u :. v)) := b Source #

(<****>) :: (Applicative u, Applicative v, Applicative w) => (((->) e :. (u :. (v :. w))) := (a -> b)) -> (((->) e :. (u :. (v :. w))) := a) -> ((->) e :. (u :. (v :. w))) := b Source #

Distributive ((->) e :: Type -> Type) Source # 
Instance details

Methods

(>>-) :: Covariant u => u a -> (a -> e -> b) -> ((->) e :. u) := b Source #

collect :: Covariant u => (a -> e -> b) -> u a -> ((->) e :. u) := b Source #

distribute :: Covariant u => ((u :. (->) e) := a) -> ((->) e :. u) := a Source #

(>>>-) :: (Covariant u, Covariant v) => ((u :. v) := a) -> (a -> e -> b) -> ((->) e :. (u :. v)) := b Source #

(>>>>-) :: (Covariant u, Covariant v, Covariant w) => ((u :. (v :. w)) := a) -> (a -> e -> b) -> ((->) e :. (u :. (v :. w))) := b Source #

(>>>>>-) :: (Covariant u, Covariant v, Covariant w, Covariant j) => ((u :. (v :. (w :. j))) := a) -> (a -> e -> b) -> ((->) e :. (u :. (v :. (w :. j)))) := b Source #

Pointable ((->) e :: Type -> Type) Source # 
Instance details

Methods

point :: a :=> (->) e Source #

pass :: e -> () Source #

Representable ((->) e :: Type -> Type) Source # 
Instance details

Associated Types

type Representation ((->) e) Source #

Methods

(<#>) :: Representation ((->) e) -> a <:= (->) e Source #

tabulate :: (Representation ((->) e) -> a) -> e -> a Source #

index :: (e -> a) -> Representation ((->) e) -> a Source #