{-# LANGUAGE TypeFamilies #-} {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE MultiParamTypeClasses #-} module Main (main) where class Foo a data Bar a type Bazable a b = (Bar a ~ Maybe b) baz :: Bazable a b => a -> a baz = id