028 - using cached generator functions for diagonal values