Most languages played with ideas of types. MetaLevel programming is still a very small niche. I should be happy in fact, I just realized, whatever the vessel as long as the idea goes on.
Perl 5 has a long history of metaprogramming (obviously not as long as Lisp). This became much easier with WRT objects when Class::MOP[1] was introduced. Perl 6 doubled down.