code: def enumeration_ask(X, e, bn):
      
      assert X not in e, "Query variable must be distinct from evidence"
      Q = ProbDist(X)
      for xi in bn.variable_values(X):
          Q[xi] = enumerate_all(bn.vars, extend(e, X, xi), bn)
      return Q.normalize()
docs: Return the conditional probability distribution of variable X
      given evidence e, from BayesNet bn. [Fig. 14.9]
      >>> enumeration_ask('Burglary', dict(JohnCalls=T, MaryCalls=T), burglary
      ...  ).show_approx()
      'False: 0.716, True: 0.284