rewrite range constraint interface