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