Inlining Exprs in `Sentence`s without Expr data constructors
Resulting as a subtask from #2893, which has a bit of discussion of the context
I think the trick would be to have
Sentencehave a parameter or two. Or at leastSentenceFwould, and thenSentencefor external consumption would "close over" particular parameters ofSentenceF.
Originally posted by @JacquesCarette in https://github.com/JacquesCarette/Drasil/issues/2893#issuecomment-968295439
The point would be that there would be a 'hole' in SentenceF that could be filled by anything. That way SentenceF would be parametric in that, and would not depend on Expr. When we create Sentence, which could be in an entirely different package, it can fill the hole of SentenceF with Expr.
That should let us decouple various things (and reveal bad assumptions too).