MicroHs-0.9.5.0: tests/Quant.hs
module Quant(main) where
import Prelude
{-
data Rose (f :: Type -> Type) a = Branch a (f (Rose f a))
instance forall a (f :: Type -> Type) .
(Eq a, forall b. (Eq b) => Eq (f b)) => Eq (Rose f a) where
(Branch x1 c1) == (Branch x2 c2) = x1==x2 && c1==c2
t1 :: Rose [] Int
t1 = Branch 1 [Branch 2 [], Branch 3 []]
main :: IO ()
main = do
print $ t1 == t1
-}
data T (f :: Type -> Type) a = C (f a)
eq :: forall a (f :: Type -> Type) .
(Eq a, forall b. (Eq b) => Eq (f b)) => T f a -> T f a -> Bool
eq (C xxx) (C yyy) = xxx == yyy