[Haskell-cafe] Applicative but not Monad
conor at strictlypositive.org
Sun Nov 1 19:17:48 EST 2009
On 2 Nov 2009, at 00:11, Ross Paterson wrote:
> On Sun, Nov 01, 2009 at 04:20:18PM +0000, Conor McBride wrote:
>> On 31 Oct 2009, at 10:39, Conor McBride wrote:
>>> I have an example, perhaps not a datatype:
>> Elaborating, one day later,
>> if you know something today, you can arrange to know it tomorrow
>> if will know a function tomorrow and its argument tomorrow, you
>> can apply them tomorrow
>> but if you will know tomorrow that you will know something the
>> day after, that does not tell you how to know the thing tomorrow
> Yes, but if you will know tomorrow that you will know something
> tomorrow, then you will know that thing tomorrow.
That depends on what "tomorrow" means tomorrow.
> The applicative does coincide with a monad, just not the one you first
> thought of (or/max rather than plus).
True, but it's not the notion I need to analyse circular programs.
I'm looking for something with a fixpoint operator
fix :: (Tomorrow x -> x) -> x
which I can hopefully use to define things like
repmin :: Tree Int -> (Int, Tomorrow (Tree Int))
so that the fixpoint operator gives me a Tomorrow Int which I
can use to build the second component, but ensures that the
black-hole-tastic Tomorrow (Tomorrow (Tree Int)) I also receive
is too late to be a serious temptation.
All the best
More information about the Haskell-Cafe