vague idea of how this will be, but actually we probably want to fold
to the right, and also arrgh.
is this what we want? I don't even know any more
This approach might work if it compiled.
Will start allowing non-leaf components later.
Why doesn't this compile?