Or at the very least, if nobody owns it (as some people seem to believe), then content creators shouldn't be deceived into thinking that they own it and that society won't just pass it around. Whether or not IP exists, society at large needs to mostly agree one way or another, or a lot of people will put a lot of effort into something they wouldn't otherwise, and they won't be reimbursed in the way that convinced them to put in the effort in the first place.
Compiler writing isn't the easiest thing in the world by any stretch, but it's something that we manage to achieve all the time, unlike the mythical "program to do my programming" we are so quick to imagine.
How easy is it to get ahold of a list of Tor exit nodes? In a nightmare scenario, would wikimedia's list of blocked IPs be something an oppressive government might covet?
As you most likely realize, f base needs to equal the identity function. After that, it looks like t is your iterator and g is the function you want to fold. It looks like f is an iterator-friendly fold function.
I write my LISP the way I write my JavaScript: I use one space for indentation, I break up my lines a lot, I nest deeply, and I tend to have a line break after the open and before the close, if the nesting is more than a layer or two deep and two broad. I'd prefer to use a tab for indentation, but I often find myself typing my code into an "eval box" (a textarea on a web page tied to a button that calls eval on the contents of the box).