------------------------------------------------------------------------------------------- -- | -- Module : Control.Functor.Pointed.Parameterized -- Copyright : 2008 Edward Kmett -- License : BSD -- -- Maintainer : Edward Kmett -- Stability : experimental -- Portability : non-portable (functional-dependencies) -- ------------------------------------------------------------------------------------------- module Control.Functor.Pointed.Parameterized where import Control.Bifunctor class Bifunctor f => PPointed f where preturn :: a -> f a c class Bifunctor f => PCopointed f where pextract :: f a c -> a {-# RULES "preturn/pextract" preturn . pextract = id "pextract/preturn" pextract. preturn = id #-}