let ref_flatten (l : supermapping list) : state list =
let filter_pairs acc (l1,_,l2) = List.rev_append (snd !(!l1))
(List.rev_append (snd !(!l2)) acc) in
let pairs = List.fold_left filter_pairs [] l in
List.fold_left (fun acc (x,y) -> x::y::acc) [] pairs