Jz sparse

@jz10 
// ??? Where is the class template parameter specialized to ValueObjects? It looks like all the logic is general
// ??? and mostly uses Lattice methods. Further, the return types are all Lattice types. However, there are occasional
// ??? typecasts into ValueObjects. What do they do? What would break about the code if the typecasts were removed?