The role of a decoder is to infer an error given a syndrome. This requires the presence of the dual lattice (where the syndromes are stored), the primal lattice (where the real error is stored)
Uses self.algorithm to update the error on the primal_lattice, given the syndromes on the dual lattice.