return obsStates.Scan((IDictionary<S, Tuple<P, S>>)null, (v…
return obsStates.Scan((IDictionary<S, Tuple<P, S>>)null, (v, o) => o.Item2.ToDictionary(target => target, target => v == null ? Tuple.Create(mul(startingProb(target), emissionProb(target, o.Item1)), target) : v.Select(source =>