Er, what I meant was class Foo s t a b | s -> a, t -> b, s b -> t, t a -> s
That is what I get for dashing it off off the cuff. =) Then s determines some type argument for it, t determines its type argument, but Using s and the other type argument I can determine the whole containing type 't' and vice versa. instance Foo (Identity a) (Identity b) a b On Wed, May 1, 2013 at 7:02 AM, Ian Lynagh <i...@well-typed.com> wrote: > On Tue, Apr 30, 2013 at 11:35:10PM -0400, Edward Kmett wrote: > > > > I have dozens of classes of forms like > > > > class Wrapped s t a b | a -> s, b -> t, a t -> s, b s -> t > > Isn't this equivalent to just > > class Wrapped s t a b | a -> s, b -> t > > ? > > > Thanks > Ian > >
_______________________________________________ Haskell-prime mailing list Haskell-prime@haskell.org http://www.haskell.org/mailman/listinfo/haskell-prime