Oh, so you're using a functional language? Cool, I have set theory in bash:

$ mkdir 0
$ function succ () { [ $# = 2 ] && cp -r "$1/." "$2/" && cp -r "$1" "$2/"; }
$ succ 0 1
$ succ 1 2
$ succ 2 3

@lcamtuf this seems like a job for FUSE
@lcamtuf Now I want to be able to cd .. even if I'm in /