packages feed

category-extras-0.44.2: src/Control/Functor/Pointed/Parameterized.hs

-------------------------------------------------------------------------------------------
-- |
-- Module	: Control.Functor.Pointed.Parameterized
-- Copyright 	: 2008 Edward Kmett
-- License	: BSD
--
-- Maintainer	: Edward Kmett <ekmett@gmail.com>
-- 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
 #-}