let rec logic_offset env a = function
| TNoOffset -> Data a
| TField(f,off) ->
let fieldvalue = D.acc_field (F.unwrap a) f in
logic_offset env fieldvalue off
| TIndex (t,off) ->
let i = integer_of_data (kind_of t.term_type) (!data_rec env t) in
logic_offset env (D.acc_index (F.unwrap a) i) off