1 2 3 4 5 6 7 8 9 10
{-# LANGUAGE ImplicitParams #-} module ImplicitParams where data X c :: (?x :: X) => X c = ?x d :: (?x :: X, ?y :: X) => (X, X) d = (?x, ?y)