packages feed

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"