Safe Haskell | Safe-Infered |
---|
AOP.Internal.OpenApp
- class Typeable1Monad m => OpenApp f m where
- (#) :: (PolyTypeable (f a (m b)), PolyTypeable (a -> m b)) => f a (m b) -> a -> m b
Documentation
class Typeable1Monad m => OpenApp f m where
Open function application. # is defined as a typeclass to make it extensible to different function representations.
f is a function-like type constructor that receives an argument and return types. For simplicity this does not appear in the paper.
The returned value is always a regular (woven) function.
Methods
(#) :: (PolyTypeable (f a (m b)), PolyTypeable (a -> m b)) => f a (m b) -> a -> m b
Instances
Typeable1Monad m => OpenApp (->) (AOT m) | Every regular functions is tagged with the same default tag. |
Typeable1Monad m => OpenApp Function (AOT m) | Function is a wrapper to add a notion of identity based on tags. |
Typeable1Monad (t m) => OpenApp (->) (NIAOT t m) | Open application of regular functions. |
Typeable1Monad (t m) => OpenApp Function (NIAOT t m) | Open application of tagged functions. |