fn calc_light<V: RectRasterableVol<Vox = Block> + ReadVol + Debug, L: Iterator<Item = (Vec3<i32>, u8)>>(
is_sunlight: bool,
default_light: u8,
bounds: Aabb<i32>,
vol: &VolGrid2d<V>,
lit_blocks: L,
) -> impl Fn(Vec3<i32>) -> f32 + 'static + Send + Sync + use<V, L>