docs: def actual_causation():
      """The actual causation example network, consisting of an ``OR`` and
      ``AND`` gate with self-loops.
      """
      tpm = np.array([
          [1, 0, 0, 0],
          [0, 1, 0, 0],
          [0, 1, 0, 0],
          [0, 0, 0, 1]
      ])
      cm = np.array([
          [1, 1],
          [1, 1]
      ])
      return Network(tpm, cm, node_labels=('OR', 'AND'))