public S Fold <S>(S state, Func <S, A, S> f) => ms.Fold(state, (s, x) => x.Fold(s, f));
public static S fold <S, T>(Seq <T> list, S state, Func <S, T, S> folder) => list.Fold(state, folder);