Type inferencing now uses sets for the types and can also handle if statements.