    {- applicative stuff
     -
     - Copyright 2012 Joey Hess <id@joeyh.name>
     -
     - License: BSD-2-clause
     -}

    module Utility.Applicative where

    {- Like <$> , but supports one level of currying.
     -
     - foo v = bar <$> action v  ==  foo = bar <$$> action
     -}
    (<$$>) :: Functor f => (a -> b) -> (c -> f a) -> c -> f b
    a -> b
    f <$$> :: forall (f :: * -> *) a b c.
    Functor f =>
    (a -> b) -> (c -> f a) -> c -> f b
    <$$> c -> f a
    v = (a -> b) -> f a -> f b
    forall a b. (a -> b) -> f a -> f b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap a -> b
    f (f a -> f b) -> (c -> f a) -> c -> f b
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . c -> f a
    v
    infixr 4 <$$>