The SMT2 format allows polymorphic datatypes to be defined recursively, but the only API exposed allows defining just one polymorphic data type. It would be nice to expose the most generic form of this API. Happy to volunteer a PR if this sounds good.