Refactored for updates to metaprogram and type inference interface.