Is there a way of exploiting functional dependencies in the following fashion?

class Foo a b | a -> b where...

data Foo a b => Bar a = B a b

This is not ambiguous, because the functional dependency ensures a unique b if one exists.  Can this be done without mentioning b as a type variable in Bar?

Louis Wasserman
wasserman.louis@gmail.com