removed print statements (oops) and added comments to document the fail-fast macro detecting heuristic