public override CtorType VisitCtorType(CtorType node)
        {
            var argTypes = node.Arguments.Select(t => Translate(t)).ToList();

            ReturnResult(IsaBoogieType.TConType(node.Decl.Name, argTypes, usedClosedConstructors));
            return(node);
        }
        public override Type VisitBasicType(BasicType node)
        {
            if (node.IsBool)
            {
                ReturnResult(IsaBoogieType.PrimType(IsaBoogieType.BoolType(), usedClosedConstructors));
            }
            else if (node.IsInt)
            {
                ReturnResult(IsaBoogieType.PrimType(IsaBoogieType.IntType(), usedClosedConstructors));
            }
            else
            {
                //TODO: change to actual reals once formalization has been updated
                Console.Error.WriteLine("Representing reals as integers");
                ReturnResult(IsaBoogieType.PrimType(IsaBoogieType.IntType(), usedClosedConstructors));
            }

            return(node);
        }