applicative-extras-0.1: Control/Applicative/State.hs
module Control.Applicative.State (module Control.Monad.State) where
import Control.Applicative
import Control.Monad.State
{- A state idiom. -}
-- the freedom in reordering the effectful part of the computation comes
-- in that we can pass the state first to f and then to v or first to v and
-- then to s. With monads we must first pass the state to f because
-- of the type of >>=.
instance Applicative (State a) where
pure = return
(<*>) = ap