Watching https://youtu.be/KWB-gDVuy_I and I'm struck by how weird constructors are as an API. * They promote total functions, making it hard to do validation. * They're hard to split up, because they have special access to unfinished data. * They're like a framework: you get called.