objective-0.6: Extensible objects

Copyright(c) Fumiaki Kinoshita 2014
LicenseBSD3
MaintainerFumiaki Kinoshita <fumiexcel@gmail.com>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Data.Functor.Request

Description

 

Synopsis

Documentation

data Request a b r Source

'Request a b' is the type of a request that sends a to receive b.

Constructors

Request a (b -> r) 

Instances

Functor (Request a b) 
Monoid a => Applicative (Request a b) 
Monoid a => Tower (Request a b) 
Typeable (* -> * -> * -> *) Request 
type Floors (Request a b) = (:>) (* -> *) ((,) a) ((:>) (* -> *) ((->) b) ((:>) (* -> *) Identity (Empty (* -> *)))) 

request :: Elevate (Request a b) f => a -> f b Source

accept :: Functor f => (a -> f b) -> Request a b r -> f r Source

acceptM :: Monad m => (a -> m b) -> Request a b r -> m r Source