pub fn release_shared<K, V, Pred: InvariantPredicate<K, V>>(
    pre: State<K, V, Pred>,
    x: V
) -> State<K, V, Pred>