added (failing) test for distinct leaves in recursive models
switched to warnings from logging
using pymbolic for expr trees
new implementation using pymbolic/pyll
cleanup