Should probably be written in terms of a `BatGen.(--^)` function