For full-fat type checking of arbitrary length containers, instead of providing wrapped built in types that must be imported, wrap them at runtime and swap them out in place. Maybe this is only possible in cpython and relies on implementation details?