pub fn reference_trie_root<T: TrieLayout, I, A, B>(
    input: I
) -> <T::Hash as Hasher>::Out where
    I: IntoIterator<Item = (A, B)>,
    A: AsRef<[u8]> + Ord + Debug,
    B: AsRef<[u8]> + Debug