1. A method of demodulating multiple data streams implemented in one demodulation stage of a multi-stage receiver, said method comprising: receiving input symbols corresponding to multiple data streams; generating a set of candidate sequences from symbols in a symbol constellation, and a finite set of unresolved signals obtained by modulating the set of candidate sequences and subtracting the modulated candidate sequences from the input symbols; computing a likelihood metric for each candidate sequence based on the input symbols and a probability mass function for the unresolved signals; and selecting, based on the likelihood metrics, one of said candidate sequences as output symbol estimates to be summed with output symbol estimates from one or more other demodulation stages to generate final estimates of the multiple data streams.