I feel like JetBrain's MPS should be included in the 'Similar Efforts' section:
How are you meant to implement the reverse function without a helper function? I tried defining an anonymous lambda function in a let statement, but recursion isn't allowed it seems. And interesting project though! well done