packages feed

pandora-0.5.6: Pandora/Paradigm/Primary/Functor/Proxy.hs

module Pandora.Paradigm.Primary.Functor.Proxy where

import Pandora.Pattern.Functor.Covariant (Covariant ((<-|-)))
import Pandora.Pattern.Functor.Contravariant (Contravariant ((>-|-)))
import Pandora.Pattern.Functor.Distributive (Distributive ((-<<)))
import Pandora.Pattern.Functor.Bindable (Bindable ((=<<)))
import Pandora.Pattern.Functor.Extendable (Extendable ((<<=)))
--import Pandora.Pattern.Functor.Monad (Monad)
import Pandora.Pattern.Operation.Exponential ()

data Proxy a = Proxy

instance Covariant (->) (->) Proxy where
	_ <-|- Proxy = Proxy

instance Contravariant (->) (->) Proxy where
	_ >-|- _ = Proxy

instance Distributive (->) (->) Proxy where
	_ -<< _ = Proxy

instance Bindable (->) Proxy where
	_ =<< _ = Proxy

--instance Monad Proxy

instance Extendable (->) Proxy where
	_ <<= _ = Proxy