[Haskell-cafe] is it possible to implement Functor for ByteString and Text
Niklas Haas
haskell at nand.wakku.to
Sun Mar 1 02:58:15 UTC 2015
I think it's more realistic to use lens style Setters where possible.
Essentially:
type Setter s t a b = (a -> b) -> s -> t
type Setter' s a = Setter s s a a
bytes :: Setter ByteString Word8
bytes = BS.map
fmapped :: Functor f => Setter (f a) (f b) a b
fmapped = fmap
In this framework, you could write a function that can abstract over any
setter, eg.
changeSomething :: Setter s t Foo Bar -> s -> t
changeSomething s = s fooBar
where fooBar :: Foo -> Bar
It's not quite the same thing as making ByteString or Text an instance
of Functor, but for some tasks, it can be a good replacement.
On Sun, 01 Mar 2015 02:08:40 +0100, silvio <silvio.frischi at gmail.com> wrote:
> Wow ConstraintKinds. There's always a new extension to be learned :)
> Anyway, if changing the Functor declaration were allowed, it would
> probably make more sense to use something like MonoFunctor.
> Unfortunately, MPTC or type family stuff is never going to make it into
> Prelude.
>
> Silvio
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
More information about the Haskell-Cafe
mailing list