Cast is not only for value conversion. When deal with inheritance relationship
of object, it usually need to cast an object to it's subclass. For example:
if obj of Child:
let child = cast[Child](obj)
RunIn this case, I think use obj[Child] is more clear. However, this is just my opinion, any one can decide use it or not.
