let unpack (tag : 'a tag) (tag', obj) = if (dyn_tag tag) = tag' then (Obj.obj obj : 'a X.t) else raise Pack_error