Ian said....

>    class Has (r :: *) (ft :: *) (f :: ft) (t :: *) where
> (where ft stands for field type)?
>

class Has (r :: *) (f :: ft) (t :: *) where

would be my understanding of how it would be phrased under the current
polymorphic kind system.

This could also solve the representation-hiding problem:
>
> foo.field would use the string "field" as the field name, as in the
> proposal on the wiki page.
>
> But foo.Field (capital first letter) would use the constructor Field
> that is in scope. If you don't want to export the field getter then
> capitalise the first letter and don't export the constructor.
>

I like it. Between that and using Proxy rather than type application
perhaps everyone can be made happy.

-Edward
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to