This interface is used to indicate a type will behave as a runtime table.
Runtime tables are used to implement arrays whose elements can only be
manipulated by the the get and set methods of the table. Every runtime table
will have a static allocate method and implement the methods below.