%template(mkConst) CVC4::ExprManager::mkConst< CVC4::Rational >;
+
+%template(mkConst) CVC4::ExprManager::mkConst<CVC4::TypeConstant>;
+%template(mkConst) CVC4::ExprManager::mkConst<CVC4::ArrayStoreAll>;
+%template(mkConst) CVC4::ExprManager::mkConst<CVC4::BitVectorSize>;
+%template(mkConst) CVC4::ExprManager::mkConst<CVC4::AscriptionType>;
+%template(mkConst) CVC4::ExprManager::mkConst<CVC4::BitVectorBitOf>;
+%template(mkConst) CVC4::ExprManager::mkConst<CVC4::SubrangeBounds>;
+%template(mkConst) CVC4::ExprManager::mkConst<CVC4::BitVectorRepeat>;
+%template(mkConst) CVC4::ExprManager::mkConst<CVC4::BitVectorExtract>;
+%template(mkConst) CVC4::ExprManager::mkConst<CVC4::BitVectorRotateLeft>;
+%template(mkConst) CVC4::ExprManager::mkConst<CVC4::BitVectorSignExtend>;
+%template(mkConst) CVC4::ExprManager::mkConst<CVC4::BitVectorZeroExtend>;
+%template(mkConst) CVC4::ExprManager::mkConst<CVC4::BitVectorRotateRight>;
+%template(mkConst) CVC4::ExprManager::mkConst<CVC4::UninterpretedConstant>;
+%template(mkConst) CVC4::ExprManager::mkConst<CVC4::kind::Kind_t>;
+%template(mkConst) CVC4::ExprManager::mkConst<CVC4::Datatype>;
+%template(mkConst) CVC4::ExprManager::mkConst<CVC4::Rational>;
+%template(mkConst) CVC4::ExprManager::mkConst<CVC4::BitVector>;
+%template(mkConst) CVC4::ExprManager::mkConst<CVC4::Predicate>;
+%template(mkConst) CVC4::ExprManager::mkConst<std::string>;
+%template(mkConst) CVC4::ExprManager::mkConst<bool>;
+
%include "expr/expr_manager.h"
%ignore CVC4::operator<<(std::ostream&, const Exception&) throw();
%ignore CVC4::Exception::Exception(const char*) throw();
+%typemap(javabase) CVC4::Exception "java.lang.RuntimeException";
%include "util/exception.h"