Deep embeddings and Arrows Re: Uniquable RdrName instance

Carter Schonwald carter.schonwald at gmail.com
Tue Jun 17 20:45:45 UTC 2014


ok, so one example of this design, albeit implemented in a funky way
(compiler passes written in coq), was
Adam Megacz's Garrows project http://www.megacz.com/berkeley/garrows/

a more concrete example of a haskell lib that enjoys a deep embedding and
doesn't let you inject arbitrary (f:: a-> b )
would be Accelerate hackage.haskell.org/package/accelerate (the expression
language there could be made into an "*arr* free Arrow" but not an Arrow
that  has *arr*)

basically not having *arr* or the monadic equiv *bind*, gives you a way to
write libs where you can get a program as a first order AST  when you "run
it" and be able to analyze/compile it in user land at runtime



On Tue, Jun 17, 2014 at 4:37 PM, Jan Stolarek <jan.stolarek at p.lodz.pl>
wrote:

> > assuming that any haskell function can be embedded in an
> > arrow instance (...) prevents a lot of interesting deep embedding uses
> of the Arrow
> > abstraction
> Could you point me to some specific examples? I'm new to arrows and
> definitely far from groking
> all the arcana of their usage.
>
> Janek
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20140617/b015c8fc/attachment.html>


More information about the ghc-devs mailing list