The rule of thumb of how i personally handle laziness is "lazy in the large, strict in the small". That is, I compose systems in a lazy way, and my inner loops are strict!
Its not a perfect approach, but its a default approach that avoids a lot of style gotchas from being too strict or too lazy globally. I also spend way too much time thinking about how to make the perfect mutable multi dim array libraries for haskell, so I also tend to have a funny perspective :)
Its not a perfect approach, but its a default approach that avoids a lot of style gotchas from being too strict or too lazy globally. I also spend way too much time thinking about how to make the perfect mutable multi dim array libraries for haskell, so I also tend to have a funny perspective :)