nodeSpecificInformation :: (Floating prob, Ord prob, Ord a)
                           => [String]
                           -> [a]
                           -> [String]
                           -> ModelDistribution prob a
                           -> prob
nodeSpecificInformation sv s av m =
  let p_s = (extract $ marginalize sv m) ?= s
      p_ags = (extractC $ conditionalize av sv m) s
      p_sga = (extractC $ conditionalize sv av m)
  in expected p_ags (\a-> log2 ((p_sga a) ?= s / p_s))
nodeSpecificInformation :: (Floating prob, Ord prob, Ord a)
                           => [String]
                           -> [a]
                           -> [String]
                           -> ModelDistribution prob a
                           -> prob
nodeSpecificInformation sv s av m =
  let p_s = (extract $ marginalize sv m) ?= s
      p_ags = (extractC $ conditionalize av sv m) s
      p_sga = (extractC $ conditionalize sv av m)
  in expected p_ags (\a-> log2 ((p_sga a) ?= s / p_s))
nodeSpecificInformation sv s av m =
  let p_s = (extract $ marginalize sv m) ?= s
      p_ags = (extractC $ conditionalize av sv m) s
      p_sga = (extractC $ conditionalize sv av m)
  in expected p_ags (\a-> log2 ((p_sga a) ?= s / p_s))