Currently we prevent recording instances of types that are not final or have subtypes. Theoretically we should be able to open it up. As long as the type hierarchy doesn't span package boundaries. For now, this is low prio.