Can you please try with this comprehension:
for\
<<red::8, green::8, blue::8 <- b>>,
into: "",
do: <<div(blue, 2),::8, div(green, 2),::8, div(red, 2),::8>>
We treat those as filters and I assume yours do not, which may cause differences. Just for a more apples to apples comparison. Thanks!