blob: 855e96a8f578c5735c4bb83c97ea331f164ef169 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
{-# LANGUAGE Haskell2010 #-}
{-# Language RankNTypes #-}
{-# Language DerivingVia #-}
{-# Language DeriveFunctor #-}
-- import Control.Monad.Codensity
import Data.Kind
newtype Codensity f a = Codensity (forall xx. (a -> f xx) -> f xx)
deriving
(Functor)
newtype GEndo m a = GEndo (m a -> m a)
newtype LogicT m a = LogicT (forall xx. (a -> (m xx -> m xx)) -> (m xx -> m xx))
deriving
(Functor)
via
(Codensity GEndo)
|