Error Annotating Target

I am trying to add custom codegen to Relay using this guide: How to Bring Your Own Codegen to TVM. Right now I am working on create a new target. I have written some simple rules to register functions. However, when I run the following

annotated = relay.transform.AnnotateTarget("myTarget")
annotated = annotated(mod)

I get the following error from the second line: File “…python3.7/site-packages/tvm/ir/transform.py”, line 160, in call return _ffi_transform_api.RunPass(self, mod) File “tvm/_ffi/_cython/./packed_func.pxi”, line 331, in tvm._ffi._cy3.core.PackedFuncBase.call File “tvm/_ffi/_cython/./packed_func.pxi”, line 262, in tvm._ffi._cy3.core.FuncCall File “tvm/_ffi/_cython/./packed_func.pxi”, line 251, in tvm._ffi._cy3.core.FuncCall3 File “tvm/_ffi/_cython/./base.pxi”, line 181, in tvm._ffi._cy3.core.CHECK_CALL TypeError: Traceback (most recent call last): 22: TVMFuncCall 21: tvm::runtime::PackedFuncObj::Extractor<tvm::runtime::PackedFuncSubObj<tvm::runtime::TypedPackedFunc<tvm::IRModule (tvm::transform::Pass, tvm::IRModule)>::AssignTypedLambda<tvm::transform::{lambda(tvm::transform::Pass, tvm::IRModule)#7}>(tvm::transform::{lambda(tvm::transform::Pass, tvm::IRModule)#7}, std::__cxx11::basic_string<char, std::char_traits, std::allocator >)::{lambda(tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*)#1}> >::Call(tvm::runtime::PackedFuncObj const*, std::__cxx11::basic_string<char, std::char_traits, std::allocator >, tvm::runtime::TVMRetValue) 20: tvm::transform::Pass::operator()(tvm::IRModule) const 19: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const 18: tvm::transform::SequentialNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const 17: tvm::transform::Pass::operator()(tvm::IRModule, tvm::transform::PassContext const&) const 16: tvm::relay::transform::FunctionPassNode::operator()(tvm::IRModule, tvm::transform::PassContext const&) const 15: ZN3tvm7runtime13PackedFuncObj9ExtractorINS0_16PackedFuncSubObjIZNS0_15TypedPackedFuncIFNS_5relay8FunctionES6_NS_8IRModuleENS_9transform11PassContextEEE17AssignTypedLambdaIZNS5_9transform14AnnotateTargetERKNS0_5ArrayINS0_6StringEvEEbEUlS6_S7_S9_E_EEvT_EUlRKNS0_7TVMArgsEPNS0_11TVMRetValueEE_EEE4CallEPKS1_SL_SP 14: tvm::relay::annotate_target::AnnotateTarget(tvm::RelayExpr const&, tvm::runtime::Array<tvm::runtime::String, void> const&, bool) 13: tvm::relay::PostOrderRewrite(tvm::RelayExpr const&, tvm::relay::ExprRewriter*) 12: tvm::relay::MixedModeMutator::VisitExpr(tvm::RelayExpr const&) 11: tvm::relay::MixedModeMutator::VisitLeaf(tvm::RelayExpr const&) 10: tvm::relay::PostOrderRewriter::DispatchVisitExpr(tvm::RelayExpr const&) 9: tvm::relay::ExprFunctor<tvm::RelayExpr (tvm::RelayExpr const&)>::VisitExpr(tvm::RelayExpr const&) 8: ZZN3tvm5relay11ExprFunctorIFNS_9RelayExprERKS2_EE10InitVTableEvENUlR 7: tvm::relay::ExprMutator::VisitExpr(tvm::relay::FunctionNode const*) 6: tvm::relay::MixedModeMutator::VisitExpr(tvm::RelayExpr const&) 5: tvm::relay::MixedModeMutator::VisitLeaf(tvm::RelayExpr const&) 4: tvm::relay::PostOrderRewriter::DispatchVisitExpr(tvm::RelayExpr const&) 3: tvm::relay::ExprRewriter::Rewrite(tvm::RelayExpr const&, tvm::RelayExpr const&) 2: ZZN3tvm5relay12ExprRewriter10InitVTableEvENUlRKNS_7runtime9ObjectRefE 1: tvm::relay::annotate_target::AnnotateTargetRewriter::Rewrite(tvm::relay::CallNode const*, tvm::RelayExpr const&) 0: tvm::runtime::PackedFuncObj::Extractor<tvm::runtime::PackedFuncSubObj<TVMFuncCreateFromCFunc::{lambda(tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*)#2}> >::Call(tvm::runtime::PackedFuncObj const*, tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*) File “tvm/_ffi/_cython/./packed_func.pxi”, line 56, in tvm._ffi._cy3.core.tvm_callback

Is there a reason for this?