module Main where

{-# LANGUAGE FunctionalDependencies #-}

-- | Something.
class Foo a b | a -> b

class Bar a b | a -> b, b -> a where bar :: a

-- | Something else.
class Baz a b c d
    | a b -> c d -- Foo
    , b c -> a d  -- Bar
    , a c -> b d-- Baz
    , a c d -> b
    , a b d -> a b c d
  where
    baz :: a -> b
