#include "env.hpp" type_ptr type_env::lookup(const std::string& name) const { auto it = names.find(name); if(it != names.end()) return it->second; if(parent) return parent->lookup(name); return nullptr; } void type_env::bind(const std::string& name, type_ptr t) { names[name] = t; } type_env type_env::scope() const { return type_env(this); }