Can't you use traits and type member to simulate open classes? At least, this used to be possible, but then the compiler stopped letting us define type member bounds recursively around the time I left the project.
Implicit conversions are a poor substitute to real open classes.
Implicit conversions are a poor substitute to real open classes.