public static S FoldT <A, B, C, D, S, V>(this HMap <A, HMap <B, HMap <C, HMap <D, V> > > > map, S state, Func <S, V, S> folder) { return(map.Fold(state, (s, x) => x.FoldT(s, folder))); }