module Existsential where import Prelude import Unsafe.Coerce (unsafeCoerce) foreign import data Test :: forall k. (k -> Type) -> Type foreign import data Exists :: forall a b. (a -> b) -> b mkExists :: forall f a. f a -> Exists f mkExists = unsafeCoerce runExists :: forall f r. (forall a. f a -> r) -> Exists f -> r runExists = unsafeCoerce