
Conal (cc'd) also has an ongoing blog series about this http://conal.net/blog/ On Tue, Jun 17, 2014 at 4:45 PM, Carter Schonwald < carter.schonwald@gmail.com> 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 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
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