Only a tiny part of ZPT (basically, what is needed in the above example) is mirrored so far. While I will bring more of it in, since it is obviously well designed, this will not be a port, partly because Erlang is not Python and there might be other good design choices around the corner, partly because I spent some time generating XHTML in Erlang the usual way ({body, [], [{p, [], [...]}], gen_table(...)}) and while it might not be the most familiar thing in the world, dealing with XML generation as function composition is fascinating and it would be nice to bring that into the picture.

Update 17/01: The <attr> tag á la Nevow has been added (it affects attributes of the parent element). A project page is also available at http://hyperstruct.net/projects/seethrough, please see that for an updated example of template processing.

80> tt:test().
** exception error: no function clause matching
proplists:lookup_all(address,{tt,get_crew,[]})
in function env:lookup/3
in call from seethrough:lookup/3
in call from seethrough:’-compile/2-fun-0-‘/5
in call from seethrough:’-exec/2-lc$^0/1-0-‘/2
in call from seethrough:’-exec/2-lc$^0/1-0-‘/2
in call from seethrough:exec/2
in call from seethrough:’-compile/2-fun-9-‘/4