packages feed

ghc-magic-dict-compat-0.0.0.0: test/GHC/Magic/Dict/Defs.hs

{-# LANGUAGE MultiParamTypeClasses #-}

module GHC.Magic.Dict.Defs (
  MyEq (..),
  Related (..),
  BadClass1 (..),
  BadClass2 (),
  badeq2,
  Inhabited (..),
  Given (..),
) where

class MyEq a where
  eq :: a -> a -> Bool

class Related a b where
  related :: a -> b -> Bool

class BadClass1 a where
  pos :: a -> a
  neg :: a -> a

class (MyEq a) => BadClass2 a

badeq2 :: (BadClass2 a) => a -> a -> Bool
badeq2 = eq

class Inhabited a where
  inhibitant :: a

class Given a where
  given :: a