Why are you creating Byte Ptr variables at all if you want to be strict about things? Shouldn't you use Object or something?
Because I'm not using them as I demonstrated above, it's simplified for demonstration purposes ;)
BytePtr are for external usage
I'm using them for external usage. It doesn't change the problem because the implicit cast happens with Externs too. As I say, this is to demonstrate the problem, not my reason for using them.