Introduced the 'BasicBlock' class to build the CFG so that each Basic
block can add constraints and infer bounds individually.