On 18/01/2012, Gábor Lehel <illiss...@gmail.com> wrote: > (I *am*, however, uncomfortable with using straight-up type level > strings, without consideration for any particular alternative. If > nothing else they should at least be opaque symbols which can be > passed around and used in the supported contexts but not manipulated > as strings. String-based hackery should be left to Template Haskell, > and out of the type system. I can't really express at the moment why > in particular I think it would be bad, but it feels like it would be > bad.) >
I strongly agree; plus, it's awkward (and ugly) that a selector be desugarred to a type-level string of its key identifier, as if it were some perverse quasiliteral. The trouble is, if they were opaque, then how could a function be polymorphic over all records with a certain member, with defined semantics? How could one tell the compiler that the semantics of all such members are the same? One must define a name, and then the problem of namespace non-interoperability that is now a great bother would be a greater bother yet. _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users