[Haskell-cafe] Pointed, but not Applicative
roconnor at theorem.ca
roconnor at theorem.ca
Wed Aug 31 16:48:02 CEST 2011
On Wed, 31 Aug 2011, roconnor at theorem.ca wrote:
> On Sat, 27 Aug 2011, Sönke Hahn wrote:
>
>> Hi!
>>
>> I was reading through the Typeclassopedia ([1]) and I was wondering which
>> type could be an instance of Pointed, but not of Applicative. But I can't
>> think of one. Any ideas?
>
> (Identity :+: Store s) is a comonad that is also instance of Pointed, but I
> do not believe it is an instance Applicative.
>
> newtype SemiStore s a = (Identity :+: Store s) a
>
> instance Pointed (SemiStore s) where
> pure a = Inl (Identity a)
>
> Coalgebras of the (Identity :+: Store s) comonad form the type of partial
> lenses so this isn't just an academic functor.
Sorry I left out the newtype wrappers:
newtype SemiStore s a = SemiStore ((Identity :+: Store s) a)
instance Pointed (SemiStore s) where
pure = SemiStore . Inl . Identity
--
Russell O'Connor <http://r6.ca/>
``All talk about `theft,''' the general counsel of the American Graphophone
Company wrote, ``is the merest claptrap, for there exists no property in
ideas musical, literary or artistic, except as defined by statute.''
More information about the Haskell-Cafe
mailing list