code: def _MakeModelFn(self):
      Root = (
          jdc.JointDistributionCoroutine.Root
      )  # pylint: disable=invalid-name
  
      def model_fn():
          yield Root(normal.Normal(self._input(0.0), self._input(1.0)))
          yield Root(
              independent.Independent(
                  normal.Normal(
                      self._input(tf.zeros(2)), self._input(tf.ones(2))
                  ),
                  1,
              )
          )
  
      return model_fn
  
imports: from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import blockwise
  from tensorflow_probability.python.distributions import exponential
  from tensorflow_probability.python.distributions import gamma
  from tensorflow_probability.python.distributions import independent
  from tensorflow_probability.python.distributions import joint_distribution_coroutine
  from tensorflow_probability.python.distributions import joint_distribution_named
  from tensorflow_probability.python.distributions import joint_distribution_sequential
  from tensorflow_probability.python.distributions import kullback_leibler
  from tensorflow_probability.python.distributions import mvn_linear_operator
  from tensorflow_probability.python.distributions import mvn_tril
  from tensorflow_probability.python.distributions import normal
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 3 for calling the BlockwiseTestStaticParams obj's underlying member method code with example usage: obj._MakeModelFn() and returns: model_fn