
On Wed, 31 Aug 2011, roconnor@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.''