implementation module sem import StdMisc semanticAnalysis :: AST -> Either Error AST semanticAnalysis a =