Hoopl and Arrows
jgbailey at gmail.com
Mon Mar 2 22:43:15 UTC 2015
I did some stuff with Hoopl a few years ago as part of my Master's
thesis ("Using Dataflow Optimization Techniques with a Monadic
Intermediate Language"). In Chapter 3 ("The Hoopl Library"), I wrote
up an overview of Hoopl and work through a new example (new at the
time, at least).
You can download my thesis from http://mil.codeslower.com. The example
code from that chapter is available at
guarantees that it still compiles, but I'm glad to try and help needed
On Mon, Mar 2, 2015 at 1:34 PM, Simon Peyton Jones
<simonpj at microsoft.com> wrote:
> Hoopl works on control flow graphs, whereas Core is lambda calculus. I
> really don’t think Hoopl is going to be any good for optimising Core.
> Ask the ghc-devs mailing list too. Someone there has been writing about
> arrows recently (take a look at the archive).
> From: Thomas Bereknyei [mailto:tomberek at gmail.com]
> Sent: 02 March 2015 17:07
> To: nr at cs.tufts.edu; Simon Peyton Jones
> Subject: Hoopl and Arrows
> I've been interested in Arrows and their optimization recently. I've run
> into problems during basic tooling so I built a quasiquoter for proc
> notation (still working on rec and let statements, but the rest of it works)
> that converts from haskell-src-exts into a desugarred TH format. My original
> goal was to implement "Casual Commutative Arrows"  but to make it more
> user friendly and to include arrows with effects. I came across Hoopl and at
> first glance I would think it can help with Arrow optimization, especially
> with the tuple shuffling from desuggared proc-do notation. In spite of the
> slogan of "Hoopl: Dataflow Optimization made Simple" and the git repo's
> testing folder, I'm not 100% clear on Hoopl usage. I would be interested in
> anything that can get me started or even a thought or two whether it would
> be worth looking into for Arrows.
> Simon, regarding , my quasiquoter can be rewritten to take `bind`,
> `bind_`, `fixA`, and `ifThenElseA` from scope rather than being built in.
> Would that help with #7828? I am not very familiar with GHC internals at
> the moment, and I am confused about the complexity of dsArrows.hs in
> contrast with my own parser. It seems I have a good start on it in the
> Parser module at , WARNING: untested and rough draft code, though
> suggestions and pointers are welcome. I was thinking of sending some of my
> code to haskell-src-meta because they can't yet translate their version of
> Exp into TH's ExpQ.
>  (https://hackage.haskell.org/package/CCA)
>  (https://ghc.haskell.org/trac/ghc/ticket/7828#comment:54)
>  (https://www.fpcomplete.com/user/tomberek/rulestesting)
> ghc-devs mailing list
> ghc-devs at haskell.org
More information about the ghc-devs