Like many programming languages, in Mojo users can declare new types using the struct keyword. Broadly speaking, Mojo’s object model is perhaps closest to that of C++. However, that’s an imperfect analogy. In this article, I want to drill into one particular aspect of Mojo’s object model: how an object’s initialization status is treated by the Mojo compiler throughout its lifecycle.