Module

Control.Biapply

#(<<$>>)

Operator alias for Control.Category.identity (left-associative / precedence 4)

A convenience operator which can be used to apply the result of bipure in the style of Applicative:

bipure f g <<$>> x <<*>> y

#Biapply

class Biapply :: (Type -> Type -> Type) -> Constraintclass (Bifunctor w) <= Biapply w  where

Biapply captures type constructors of two arguments which support lifting of functions of one or more arguments, in the sense of Apply.

Members

  • biapply :: forall a b c d. w (a -> b) (c -> d) -> w a c -> w b d

Instances

#(<<*>>)

Operator alias for Control.Biapply.biapply (left-associative / precedence 4)

#biapplyFirst

biapplyFirst :: forall w a b c d. Biapply w => w a b -> w c d -> w c d

Keep the results of the second computation.

#(*>>)

Operator alias for Control.Biapply.biapplyFirst (left-associative / precedence 4)

#biapplySecond

biapplySecond :: forall w a b c d. Biapply w => w a b -> w c d -> w a b

Keep the results of the first computation.

#(<<*)

Operator alias for Control.Biapply.biapplySecond (left-associative / precedence 4)

#bilift2

bilift2 :: forall w a b c d e f. Biapply w => (a -> b -> c) -> (d -> e -> f) -> w a d -> w b e -> w c f

Lift a function of two arguments.

#bilift3

bilift3 :: forall w a b c d e f g h. Biapply w => (a -> b -> c -> d) -> (e -> f -> g -> h) -> w a e -> w b f -> w c g -> w d h

Lift a function of three arguments.

Modules