[Haskell] ANNNOUNCE: lens 3.7 released
Ashley Yakeley
ashley at semantic.org
Mon Dec 10 04:14:46 CET 2012
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
More information about the Haskell
mailing list