--           -> (k -> j -> (i, i)) -> ((k -> j -> i -> e) -> k -> j -> i -> e)
--            -> k -> j -> i -> e
-- flexible3 bounds1 bounds2 bounds3 f = (!) flex where
--     flex = A.listArray bounds1
--         [ down2 (bounds2 i) (bounds3 i) (f (flex !) i)