Generic way to create repeating tiled views?

LinearAlgebra implements Symmetric, which returns a mirrored view of the upper/lower triangle of a matrix.

If I wanted to do something more simple and generic, is it possible using view() or manipulation of ::SubArray ?

For instance, if I have a 3x3 parent Array, could I generate a 2D subarray view of dimensions 9x9 that displays the parent array tiled 3 times vertical/horizontally?

Applying repeat() to a SubArray returns a collected version of the view (i.e. allocates), but it represents the type of transform I am thinking of. e.g. repeat(array, outer=(3,3)) => SubArray

Here’s one way:

julia> mat = rand(1:20, 3,3)
3×3 Array{Int64,2}:
 5  19   4
 3  13   9
 2  12  13

julia> using LazyArrays, FillArrays

julia> Kron(Fill(1, 3,3), mat)
9×9 Kron{Int64,2,Tuple{Fill{Int64,2,Tuple{Base.OneTo{Int64},Base.OneTo{Int64}}},Array{Int64,2}}}:
 5  19   4  5  19   4  5  19   4
 3  13   9  3  13   9  3  13   9
 2  12  13  2  12  13  2  12  13
 ...