Fix visibility of constructors and add missing preconditions
(WIP) ASTMaker