Addition of structs

One test on ./driver.py fails, pointing to the main current issue with struct typing (see TODOs in resolvetyping)
return std::make_shared<..... would be shorter. And we wouldn't be calling something 'e'