I don't know if this is exactly what you were expecting as a dummy argument,
but I solve this kind of issues like this:

_L = undefined

class C a where
    type TT a
    val :: a -> TT a

instance C () where
    type TT () = ()
    val _ = ()

instance (C a, C b) => C (a, b) where
    type TT (a,b) = (TT a, TT b)
    val _ = (val (_L :: a),val (_L :: b))

Why normal unification (val :: TT a) does not work I can't say why, but this
kind of behavior is not solely for type families.

Cheers,
hugo
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to