let rec offset_list = function | NoOffset -> [] | Field (fi,off) -> (Field (fi, NoOffset)) :: offset_list off | Index (e,off) -> (Index (e, NoOffset)) :: offset_list off