pub fn constrain_set<R, V, F>(f: F) -> Fwhere F: for<'b> Fn(&'b mut R) -> Option<&'b mut V>,
Forces the compiler to treat a closure as for<'b> Fn(&'b mut R) -> Option<&'b mut V>.
for<'b> Fn(&'b mut R) -> Option<&'b mut V>