When an object is declared and compiled into SICStus Objects, its
methods cannot be changed during execution. Such an object is said to
be static. To be able to update any method in an object, the
object has to be declared dynamic. There is one exception, the
inheritance hierarchy declared by super/[1,2]
cannot be changed.
By including the fact dynamic
as part of the object
body, the object becomes dynamic:
dynamic_object :: { dynamic & : }.