Note that data-reify will only find *some* common/equal sub-expressions,
namely the pointer-equal ones. In all of my code-generating ("deep") DSLs,
it's been very important for efficiency to also pull out
equal-but-pointer-unequal expressions.

   - Conal

On Thu, Aug 11, 2011 at 4:41 AM, Vo Minh Thu <[email protected]> wrote:

> I guess you refer to data-reify:
> http://hackage.haskell.org/package/data-reify
>
> 2011/8/11 Stephen Tetley <[email protected]>:
> > Strafunski and its successors (Uniplate, SYB, KURE) are really for
> > working on trees. If you want to work on graphs you would probably be
> > better of with something else.
> >
> > I think I overlooked that you want common sub-expression
> > _elimination_, rather than expression simplification. There are
> > libraries for observable sharing (Andy Gill's recent one is the
> > state-of-the-art, its on Hackage but I've forgotten its name) - that
> > are pertinent where you have built the expressions as an embedded DSL
> > in Haskell and you want sharing in code you generate from the Haskell
> > DSL.
> >
> >
> >
> > On 11 August 2011 08:57, Anton Kholomiov <[email protected]>
> wrote:
> >> Thank you for the reference to Strafunski libraries, I read
> >> HaskellWiki, but I don't have a permission to visit their site.
> >> All links are forbidden.
> >>
> >> Can it be a function:
> >>
> >> fun :: Eq a => Tree a -> [(Int, (a, [Int]))]
> >>
> >> where tuple codes nodes, and Int's code edges.
> >>
> >> 2011/8/11 Stephen Tetley <[email protected]>
> >>>
> >>> Wouldn't this be dependent upon your AST and thus not readily
> >>> "package-able" as a library?
> >>>
> >>> Expression simplification has been a prime example for Strafunski
> >>> style traversal libraries. You might be able to find examples that you
> >>> can adapt to your own AST written with Uniplate or similar library.
> >>>
> >>> On 11 August 2011 05:00, Anton Kholomiov <[email protected]>
> >>> wrote:
> >>> > Is there a library on common sub-expression elimination?
> >>> >
> >>>
> >>> _______________________________________________
> >>> Haskell-Cafe mailing list
> >>> [email protected]
> >>> http://www.haskell.org/mailman/listinfo/haskell-cafe
> >>
> >>
> >> _______________________________________________
> >> Haskell-Cafe mailing list
> >> [email protected]
> >> http://www.haskell.org/mailman/listinfo/haskell-cafe
> >>
> >>
> >
> > _______________________________________________
> > Haskell-Cafe mailing list
> > [email protected]
> > http://www.haskell.org/mailman/listinfo/haskell-cafe
> >
>
> _______________________________________________
> Haskell-Cafe mailing list
> [email protected]
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to