data-function-meld-0.1.0.0: Map the arguments and return value of functions.

Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Function.Meld

Description

Map the arguments and return value of functions.

General use:

  • f $* g1 $$ g2 … $$ gn *$ h = \x1 … xn -> h (f (g1 x1) (g2 x2) … (gn xn))

Examples:

  • on f g = f $* g $$ g *$ id
  • comparing f = compare $* f $$ f *$ id
  • f . g = f $* g *$ id

Work based on Semantic Editor Combinators (Conal Elliot, 20160519).

Synopsis

Documentation

($*) :: (b -> c) -> (a -> b) -> (c -> d) -> a -> d infixl 8

Begin melding.

f $* g1 $$ g2 … $$ gn *$ h = \x1 … xn -> h (f (g1 x1) (g2 x2) … (gn xn))

($$) :: (((b -> c) -> a -> d) -> e) -> (a -> b) -> (c -> d) -> e infixl 7

Continue melding.

f $* g1 $$ g2 … $$ gn *$ h = \x1 … xn -> h (f (g1 x1) (g2 x2) … (gn xn))

(*$) :: (a -> b) -> a -> b infixl 6

Finish melding.

f $* g1 $$ g2 … $$ gn *$ h = \x1 … xn -> h (f (g1 x1) (g2 x2) … (gn xn))