pub fn deserialize<'de, S, T, U, D>(
    seed: &mut S,
    deserializer: D
) -> Result<T, D::Error>
where D: Deserializer<'de>, T: Extend<U> + Default + Any, U: DeserializeState<'de, S> + Clone + Any,