type K = enum
ka,kb
type A = object
case kind: K
of ka: adata:int
of kb: bdata:string
proc a():A = A(kind:ka)
var an = a()
an.adata = 5
echo an.kind, an.adata
#an.kind = kb
#an.bdata = "6" #Causes exception!
reset(an)
an.kind = kb
an.bdata = "6"
echo an.kind, an.bdata