private object ReadRecord(object reuse, Decoder decoder, RecordAccess recordAccess, IEnumerable <FieldReader> readSteps)
        {
            var rec = recordAccess.CreateRecord(reuse);

            foreach (FieldReader fr in readSteps)
            {
                fr(rec, decoder);
                // TODO: on exception, report offending field
            }
            return(rec);
        }