[Haskell-cafe] "Rebox Package" or "To Hackage or not to Hackage"

Vitaliy Akimov vitaliy.akimov at gmail.com
Tue Dec 8 16:25:03 EST 2009

Hi John,

I don't know if this is useful for you, but these are instances of
Cofunctor's comap. For example if we use TypeCompose package we have:

rebox f = unFlip . cofmap f . Flip

The rest are also Cofunctors. There are a few options. You can either
specify instances or use type combinators from category-extras or
TypeCompose packages. Basically (a -> a -> b) is curried composition
of diagonal Functor from Bifunctor (,) and Cofunctor (Flip (->) a)

It's interesting to know more about usage of the pattern for AST reduction.


On Tue, Dec 8, 2009 at 9:37 PM, John Van Enk <vanenkj at gmail.com> wrote:
> Hi List,
> I've recently had a situation where I used the same pattern quite a bit
>  while reducing and evaluating an AST. I quickly wrapped the operation in a
> package and stuck it on github.
> http://github.com/sw17ch/rebox/blob/master/src/Data/Rebox.hs
> I'm wondering two things:
> 1) Does any one recognize the pattern I'm using here as something with a
> different name?
> 2) Is this worth sticking on Hackage? It's trivial, but we have plenty of
> trivial concepts on Hackage (and it's not a bad thing).
> Any feedback would be great.
> /jve
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe

More information about the Haskell-Cafe mailing list