
On Sep 28, 2006, at 00:38, Jeremy Gibbons wrote:
Perhaps the key is that there exist types P and Q s.t. there's an isomorphism
F a <=> (P -> a,Q)
F is Naperian iff there's a P with F a = P -> a; but what's the Q for?
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).
That's right. Every Monad is an Idiom. So are constant functors (F a = Int) - which I guess a Naperian anyway.
Hoistables are not always Idioms, it turns out. I think this can be made a Hoistable, but not an Idiom (because it has a "Q"): type WithInt = (,) Int -- i.e. WithInt a = (Int,a) I don't know if that counts as Napierian or not.
(Also I think "Idiom" is a better class name than "Applicative".)
Me too! Can you tell Ross and Conor? I've tried...
Hey Ross, Conor, "Idiom" is a better name than "Applicative". Pretty much everyone thinks so.
*
I don't subscribe to haskell-cafe, so apparently I can't post. Feel free to post my reply there, if you think it is useful.
-- Ashley Yakeley