On 07/12/12 02:19, Edward Kmett wrote:
I am happy to announce the release of version 3.7 of the lens package,
which provides "Lenses, Folds, and Traversals" for working with
arbitrary data types.
Do you use types to index the fields of tuples? It's a good general
mechanism to represent the "tupleness" of certain types. I had a quick
look and it didn't seem you were doing this.
For instance, consider this type:
data P = MkP Int Bool Char
If one wants to consider the three fields as separate items, one can
construct a type that's an index to them:
data PInd :: * -> * where
PFirst :: PInd Int
PSecond :: PInd Bool
PThird :: PInd Char
It's then straightforward to construct an isomorphism between P and
"forall a. PInd a -> a". You can also use it to build lenses for the
fields, etc.
-- Ashley
_______________________________________________
Haskell mailing list
Haskell@haskell.org
http://www.haskell.org/mailman/listinfo/haskell