compiler friends: is there a name for this technique of lowering a language that supports higher order functions into one that does not? the idea is to embed function arguments into the bodies of HOFs, basically turn the program on the left into the one on the right (F#)
i feel like ive seen this in some places but i cant recall where. i tried poking around using keywords "monomorphize", "specialize", "defunctionalization", "lambda lifting" "closure conversion" etc and theyre all related but not quite this