1. A method of encoding data for transmission from a source to a destination over a communications channel that is expected to perform as an erasure channel at least partially, the method comprising: obtaining an ordered set of input symbols representing the data to be encoded; selecting a plurality of field arrays of values, wherein each field array is derived from a finite field array and at least two different finite field arrays are represented; generating a data structure that represents a coefficient matrix that represents at least two of the plurality of field arrays, wherein at least two of those field arrays are derived from finite field arrays different from each other; generating output symbols as linear combinations of input symbols, wherein the particular combinations are according to the data structure that represents the coefficient matrix; and using the generated output symbols and an encoding for the data.