public override Type VisitBasicType(BasicType node) { if (node.IsBool) { ReturnResult(PrimitiveType.CreateBoolType()); } else if (node.IsInt) { ReturnResult(PrimitiveType.CreateIntType()); } else { throw new ProofGenUnexpectedStateException("unexpected pure basic type"); } return(node); }