On 2/5/20 8:17 AM, Carter Schonwald wrote:
Applicative do notation ?

Probably not. See below.



Doesn’t recent ghc also have source plugins ? I’m admittedly unfamiliar with those ?

Have you looked at how stuff like the ivory/tower edsl libraries do their embedding? 

I'm unaware of these. Thanks for the pointer.


Do you have enough examples for them to treat getting started as a “use your cookbook” and then go from there ?

Haskell is already a stretch. Doing things like this:

a <- (b `and`) =<< not c

Is just never going to work.

Keeping it in ANF:

nc <- not c

a <- b `and` nc

Is easier to explain, but it is very hard to justify why you can only put the result of a single operation in a variable, and why sometimes it is "let" and other times it is that arrow.

Basically I'm asking people to give up expressions while they work just fine in C or Verilog. It's a step down. I really don't blame them.