Functor => Pointed => Applicative => Monad

wren ng thornton wren at freegeek.org
Sat Dec 4 06:36:21 CET 2010


On 12/2/10 4:38 PM, Tyson Whitehead wrote:
> On November 30, 2010 00:32:18 wren ng thornton wrote:
>> Not all functors are pointed therefore Pointed=>Functor is invalid.
>
> but, as I think your email argued, this may be equally pedantic to not all
> pointed things are functors as so Functor=>Pointed must also be invalid?

Some folks on this thread have argued for that interpretation. 
Personally, I question whether the "pointed" notion of functors should 
really be conflated with the "canonical value" notion of non-functors. 
But then I don't particularly care whether the new hierarchy has 
Functor=>Pointed so long as it does have (Functor,Pointed)=>Applicative 
and Applicative=>Monad.

> Personally, I think something like an embedded DSL might have reason to want
> to let embed values (i.e., be pointed) but not lift functions to functions
> over embed values (i.e., be functorial).  I think these should be separate.

That does seem like a good reason to ban Functor=>Pointed. Far better 
than the bloomfilter argument.

-- 
Live well,
~wren



More information about the Libraries mailing list