pub fn deserialize<'de, D, T, Seed, Seed2>(
    seed: &mut Seed,
    deserializer: D
) -> Result<T, D::Error>
where D: Deserializer<'de>, T: DeserializeState<'de, Seed2>, Seed: BorrowMut<Seed2>,