Not quite. The type of a variable in your code is indeed Console but the type
of b is ViewportConsole. It's a subtle difference: in the seq exemple it's a
variable of a type Console which stores a value of ViewportConsole. The
difference is:
# in seq example:
consoles[0] of Console # true
consoles[1] of ViewportConsole # true, it is ViewportConsole type value
consoles[0] is Console # true
consoles[1] is ViewportConsole # false, it is Console type variable
# in var example:
a of Console # true
a of ViewportConsole # true
a is Console # true
a is ViewportConsole # true
It's similar to many other languages, some of which reflect the difference
using very explicit syntax:
* Ada -- Console vs Console'class
* Fortran -- type(Console) vs class(Console)