
6 Mar
2008
6 Mar
'08
1:08 p.m.
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