How to infer data type of <class 'tvm.relay.expr.Call'>

Hi, I am working on mxnet parser and adding qnn ops to it. One of the problem I am facing is how to deduce the data type of the input to an op. for example the input to my qnn.dense is

....
%38 = qnn.requantize(%37, input_scale=0.0128316f, input_zero_point=0, output_scale=2.804f, output_zero_point=0, out_dtype="uint8");
%39 = nn.relu(%38);
free_var %hybridsequential1_ringbufferblock1_buffer
%40 = nn.fifo_buffer(%39, %hybridsequential1_ringbufferblock1_buffer, axis=2);
nn.batch_flatten(%40)

I want to deduce the datatype of nn.batch_flatten which is the input to the Qnn FullyConnected. So I used infer_type, but I am getting the following error

 [bt] (0) /home/ANT.AMAZON.COM/shoubhik/workspace/DLC_MXNet_ring_buffer/python/mxnet/../../build/libmxnet.so(+0x7515a9) [0x7fa37d1775a9]
  [bt] (1) /lib/x86_64-linux-gnu/libc.so.6(+0x3ef20) [0x7fa3bc54ff20]
  [bt] (2) /home/ANT.AMAZON.COM/shoubhik/.local/lib/python3.6/site-packages/tvm-0.6.0-py3.6-linux-x86_64.egg/tvm/libtvm.so(tvm::relay::qnn::RequantizeRel(tvm::Array<tvm::relay::Type, void> const&, int, tvm::Attrs const&, tvm::relay::TypeReporter const&)+0x15f) [0x7fa392a3bcff]
  [bt] (3) /home/ANT.AMAZON.COM/shoubhik/.local/lib/python3.6/site-packages/tvm-0.6.0-py3.6-linux-x86_64.egg/tvm/libtvm.so(void tvm::runtime::detail::unpack_call_dispatcher<bool, 0, 4, bool (*)(tvm::Array<tvm::relay::Type, void> const&, int, tvm::Attrs const&, tvm::relay::TypeReporter const&)>::run<tvm::runtime::TVMArgValue, tvm::runtime::TVMArgValue, tvm::runtime::TVMArgValue, tvm::runtime::TVMArgValue>(bool (* const&)(tvm::Array<tvm::relay::Type, void> const&, int, tvm::Attrs const&, tvm::relay::TypeReporter const&), tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*, tvm::runtime::TVMArgValue&&, tvm::runtime::TVMArgValue&&, tvm::runtime::TVMArgValue&&, tvm::runtime::TVMArgValue&&)+0xc6) [0x7fa3924d2ba9]
  [bt] (4) /home/ANT.AMAZON.COM/shoubhik/.local/lib/python3.6/site-packages/tvm-0.6.0-py3.6-linux-x86_64.egg/tvm/libtvm.so(void tvm::runtime::detail::unpack_call_dispatcher<bool, 1, 3, bool (*)(tvm::Array<tvm::relay::Type, void> const&, int, tvm::Attrs const&, tvm::relay::TypeReporter const&)>::run<tvm::runtime::TVMArgValue, tvm::runtime::TVMArgValue, tvm::runtime::TVMArgValue>(bool (* const&)(tvm::Array<tvm::relay::Type, void> const&, int, tvm::Attrs const&, tvm::relay::TypeReporter const&), tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*, tvm::runtime::TVMArgValue&&, tvm::runtime::TVMArgValue&&, tvm::runtime::TVMArgValue&&)+0x9e) [0x7fa3924d272e]
  [bt] (5) /home/ANT.AMAZON.COM/shoubhik/.local/lib/python3.6/site-packages/tvm-0.6.0-py3.6-linux-x86_64.egg/tvm/libtvm.so(void tvm::runtime::detail::unpack_call_dispatcher<bool, 2, 2, bool (*)(tvm::Array<tvm::relay::Type, void> const&, int, tvm::Attrs const&, tvm::relay::TypeReporter const&)>::run<tvm::runtime::TVMArgValue, tvm::runtime::TVMArgValue>(bool (* const&)(tvm::Array<tvm::relay::Type, void> const&, int, tvm::Attrs const&, tvm::relay::TypeReporter const&), tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*, tvm::runtime::TVMArgValue&&, tvm::runtime::TVMArgValue&&)+0x84) [0x7fa3924d21bc]
  [bt] (6) /home/ANT.AMAZON.COM/shoubhik/.local/lib/python3.6/site-packages/tvm-0.6.0-py3.6-linux-x86_64.egg/tvm/libtvm.so(void tvm::runtime::detail::unpack_call_dispatcher<bool, 3, 1, bool (*)(tvm::Array<tvm::relay::Type, void> const&, int, tvm::Attrs const&, tvm::relay::TypeReporter const&)>::run<tvm::runtime::TVMArgValue>(bool (* const&)(tvm::Array<tvm::relay::Type, void> const&, int, tvm::Attrs const&, tvm::relay::TypeReporter const&), tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*, tvm::runtime::TVMArgValue&&)+0x6d) [0x7fa3924d15b3]
  [bt] (7) /home/ANT.AMAZON.COM/shoubhik/.local/lib/python3.6/site-packages/tvm-0.6.0-py3.6-linux-x86_64.egg/tvm/libtvm.so(void tvm::runtime::detail::unpack_call_dispatcher<bool, 4, 0, bool (*)(tvm::Array<tvm::relay::Type, void> const&, int, tvm::Attrs const&, tvm::relay::TypeReporter const&)>::run<>(bool (* const&)(tvm::Array<tvm::relay::Type, void> const&, int, tvm::Attrs const&, tvm::relay::TypeReporter const&), tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*)+0x54) [0x7fa3924d0492]
  [bt] (8) /home/ANT.AMAZON.COM/shoubhik/.local/lib/python3.6/site-packages/tvm-0.6.0-py3.6-linux-x86_64.egg/tvm/libtvm.so(void tvm::runtime::detail::unpack_call<bool, 4, bool (*)(tvm::Array<tvm::relay::Type, void> const&, int, tvm::Attrs const&, tvm::relay::TypeReporter const&)>(bool (* const&)(tvm::Array<tvm::relay::Type, void> const&, int, tvm::Attrs const&, tvm::relay::TypeReporter const&), tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*)+0x2b) [0x7fa3924cfadc]

What is the correct way of inferring the data type here?