Functional Programming: What type to return?

That's right, currently you need to state auxiliary structs. I had the same issue a few weeks ago:

How to curry more than one argument?