15 lines
348 B
Plaintext
15 lines
348 B
Plaintext
|
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
|