atl-15310.92: Control/Arrow/Reader/Class.hs
{-# LANGUAGE FunctionalDependencies #-}
module Control.Arrow.Reader.Class where
import Control.Arrow;
import Control.Arrow.Trans;
class Arrow s => ArrowReader r s | s -> r where {
ask :: s () r;
local :: (r -> r) -> s a b -> s a b;
};
asks :: (ArrowReader r s) => (r -> a) -> s () a;
asks x = ask >>> arr x;