type
BaseT = ref object of RootObj
a, b: int
SubT = ref object of BaseT
c: int
proc createBase(base: BaseT) =
base.a = 1
base.b = 2
proc createSub: SubT =
result = SubT(c: 1)
procCall createBase(BaseT(result))
echo repr(createSub())
dHlwZQogIEJhc2VUID0gcmVmIG9iamVjdCBvZiBSb290T2JqCiAgICBhLCBiOiBpbnQKICBTdWJUICA9IHJlZiBvYmplY3Qgb2YgQmFzZVQKICAgIGM6IGludAogICAgCnByb2MgY3JlYXRlQmFzZShiYXNlOiBCYXNlVCkgPQogIGJhc2UuYSA9IDEKICBiYXNlLmIgPSAyCiAgCnByb2MgY3JlYXRlU3ViOiBTdWJUID0KICByZXN1bHQgPSBTdWJUKGM6IDEpCiAgcHJvY0NhbGwgY3JlYXRlQmFzZShCYXNlVChyZXN1bHQpKQoKZWNobyByZXByKGNyZWF0ZVN1YigpKQogIA==