struct
  type t = Measurement_collection.t ref
  let serialize t = serialize !t
  let deserialize_exn t = ref (deserialize_exn t)

  let create () = ref [Item.create `Creation]
  let add collection log = 
    collection := log :: !collection
  let clear c = c := [Item.create `Creation]

  let concat cl : t =
    List.concat_map cl ~f:(fun c -> !c) |> ref

  let to_list c : Item.t list = !c

end