Jeremy Gibbons wrote:
I haven't assimilated the forall here, but datatypes with only one shape
of data have been called "Naperian" by Peter Hancock (because they
support a notion of logarithm), and they're instances of McBride and
Paterson's "idioms" or "applicative functors".
http://sneezy.cs.nott.ac.uk/containers/blog/?p=14
http://www.cs.nott.ac.uk/~ctm/Idiom.pdf
As for uses: Bruno Oliveira and I claim an application via The Essence
of the Iterator Pattern:
http://www.comlab.ox.ac.uk/jeremy.gibbons/publications/index.html#iterator
Perhaps the key is that there exist types P and Q s.t. there's an
isomorphism
F a <=> (P -> a,Q)
This seems to be intuitively Napierian:
ln (P -> a,Q) = (P,ln a) | ln Q
I can believe that Hoistables are in fact Idioms, though I know there
are Idioms that are not Hoistables (Maybe and Either, for instance).
(Also I think "Idiom" is a better class name than "Applicative".)
--
Ashley Yakeley
Seattle WA
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe