1) Created AssignmentSeekerVisitor, Driver Pass for TypeChecking that traverses
function bodies and calls the type checker on the relevant assignments
(the typechecker can then call  itself or the driver in the case of
subexpressions that need checking).

2) Created StmtVisitorInvoker, a Wrapper Traverser to call StmtVisitor
classes such as the typechecker driver or the effects checker on function
bodies

3) Trying to abstract the common interface of my stmt visitors in a base class
(ASaPStmtVisitorBase), but unsuccessfully so far...