Brian,

I read the easy parts of the "Associated Types with Class" and "Associated Type Synonyms" papers. An associated type synonym seems to kind of work similarly to a restricted form of class. In what way are the two following examples different?

    -- define a class with a type synonym, and a set of operations
    class A a where
        type B b
        foo :: a -> B b

    instance A Int where
        type B = Bool
        foo = (==0)

    -- define two classes, and an function that .
    class A a, B b where
        foo :: a -> b

     instance A Int, B Bool where
          foo = (==0)

It is more like -- using multi-parameter type classed with functional dependencies (as found, for example, in GHC):

  class A a b | a -> b where
    foo :: a -> b

  instance A Int Bool where
    foo = (== 0)

Cheers,

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

Reply via email to