How to roll a fast BVH representation in Haskell How to roll a fast BVH representation in Haskell arrays arrays