Deep embeddings and Arrows Re: Uniquable RdrName instance

Carter Schonwald carter.schonwald at
Tue Jun 17 20:46:34 UTC 2014

Conal (cc'd) also has an ongoing blog series about this

On Tue, Jun 17, 2014 at 4:45 PM, Carter Schonwald <
carter.schonwald at> wrote:

> ok, so one example of this design, albeit implemented in a funky way
> (compiler passes written in coq), was
> Adam Megacz's Garrows project
> 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 (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>
> 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: <>

More information about the ghc-devs mailing list