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