purescript-0.5.4.1: examples/passing/CheckTypeClass.purs
module Main where
data Bar a = Bar
data Baz
class Foo a where
foo :: Bar a -> Baz
foo_ :: forall a. (Foo a) => a -> Baz
foo_ x = foo ((mkBar :: forall a. (Foo a) => a -> Bar a) x)
mkBar :: forall a. a -> Bar a
mkBar _ = Bar
main = Debug.Trace.trace "Done"