code: def get_normal_draws(num_mixers,
                       num_draws,
                       num_vars,
                       seed=None):
      
      # Check the validity of the input arguments
      assert all([isinstance(x, int) for x in [num_mixers, num_draws, num_vars]])
      assert all([x > 0 for x in [num_mixers, num_draws, num_vars]])
      if seed is not None:
          assert isinstance(seed, int) and seed > 0
  
      normal_dist = scipy.stats.norm(loc=0.0, scale=1.0)
      all_draws = []
      if seed:
          np.random.seed(seed)
      for i in xrange(num_vars):
          all_draws.append(normal_dist.rvs(size=(num_mixers, num_draws)))
      return all_draws
docs: Parameters
      ----------
      num_mixers : int.
          Should be greater than zero. Denotes the number of observations for
          which we are making draws from a normal distribution for. I.e. the
          number of observations with randomly distributed coefficients.
      num_draws : int.
          Should be greater than zero. Denotes the number of draws that are to be
          made from each normal distribution.
      num_vars : int.
          Should be greater than zero. Denotes the number of variables for which
          we need to take draws from the normal distribution.
      seed : int or None, optional.
          If an int is passed, it should be greater than zero. Denotes the value
          to be used in seeding the random generator used to generate the draws
          from the normal distribution. Default == None.
  
      Returns
      -------
      all_draws : list of 2D ndarrays.
          The list will have num_vars elements. Each element will be a num_obs by
          num_draws numpy array of draws from a normal distribution with mean
          zero and standard deviation of one.