sig   val eq_by : ('a -> 'b) -> 'a BatOrd.eq   val comp_by : ('a -> 'b) -> 'a BatOrd.comp   val ord_by : ('a -> 'b) -> 'a BatOrd.ord end