One option is to modify the syntax to make it easier to implement in Fortran. I created a separate topic for just that:
Based on the use cases, it seems the main reason we use fypp is due to the lack of generics in Fortran, both for any integer/real/complex type and kind, and also any array rank. If we design a pre-processor to handle just that, that might take care of almost all of the use cases in stdlib.