{-# OPTIONS_GHC -fno-warn-redundant-constraints #-}
{-# LANGUAGE TypeFamilies #-}

module InstEqContext  where


{- encoding of
 -      class C a | -> a
 - with extra indirection
 -}
class a ~ Int => D a
instance D Int

class D a => C a
instance C Int

unC :: (C a) => a -> Int
unC i = undefined

test :: Int
test = unC undefined
