Deep embeddings and Arrows Re: Uniquable RdrName instance

Carter Schonwald carter.schonwald at
Tue Jun 17 19:10:14 UTC 2014

to clarify: having bind would be equivalent to having arr for the purposes
of my question (assuming its the standard monadic bind).

having arr :: (b -> c) -> a b c

is tantamount to assuming that any haskell function can be embedded in an
arrow instance
which prevents a lot of interesting deep embedding uses of the Arrow
abstraction/ or at least makes it a bit tricker. (eg things like writing
circuits or certain types of compiled FRP models).

On Tue, Jun 17, 2014 at 4:06 AM, Jan Stolarek <jan.stolarek at>

> > FYI it's #7828, not #7282.
> Of course, yes.
> > would making arrow remindable involve dropping the arr == haksell
> functions assumption or doing
> > something that would allow generalized arrows?
> Not sure if I fully understand what you mean. There's an idea to give up
> on current desugaring
> that heavily uses arr, >>> etc. in favor of desugaring based on bind
> equivalents for arrows. Is
> this what you wanted to know? There's some discussion on the Trac you
> might want to follow.
> Janek
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the ghc-devs mailing list