Object-functional languages have a number of desirable properties and have proven very useful in practice. Unfortunately, the merger brings with it a raft of complexities, being the root of nearly all of Scala's infamous complexity. This talk will present a new framework for resolving these issue, based around the notion of statically-typed functional object prototypes.