packages feed

profunctors-4.1: src/Data/Profunctor/Monad.hs

{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE TypeOperators #-}
module Data.Profunctor.Monad where

import Data.Profunctor

class ProfunctorMonad t where
  proreturn :: Profunctor p => p -/-> t p
  projoin   :: Profunctor p => t (t p) -/-> t p

class ProfunctorComonad t where
  proextract :: Profunctor p => t p -/-> p
  produplicate :: Profunctor p => t p -/-> t (t p)