Metaclass programming in Julia

Question: Since Julia types are objects with a singleton type that you can add any number of methods to, and the constructor is just the call operator implemented on that type, does that mean that metaclass programming as in Smalltalk is possible in Julia?

For example, is it possible to implement something similar to Python’s abstract base class metaclass which enforces inheritance constraints down the inheritance hierarchy by decorating the constructors to make the constructor throw an exception if the type doesn’t implement the correct methods?