module Data.Copointed ( Copointed (..)
                      ) where

class Functor p => Copointed p where
    copoint :: p a -> a

instance Copointed ((,) a) where
    copoint :: forall a. (a, a) -> a
copoint (a
_, a
y) = a
y