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.