17 lines
391 B
Plaintext
17 lines
391 B
Plaintext
|
module Exists where
|
||
|
|
||
|
|
||
|
import Prelude
|
||
|
|
||
|
import Data.Exists (Exists, mkExists)
|
||
|
|
||
|
-- type Exists f = forall result. (forall a. f a (a -> result)) -> result
|
||
|
|
||
|
type Forall :: forall k. (k -> Type) -> Type -> Type
|
||
|
type Forall f r = forall a. f a -> r
|
||
|
|
||
|
{- type Showable a f = Show a => f
|
||
|
type EConstructor f = forall a. f a (a -> Exists f)
|
||
|
|
||
|
mkShowable :: EConstructor Showable
|
||
|
mkShowable a f = f a -}
|