Applied late static bindings to static Hal methods

This is so that classes extending Hal can create Hal objects of its own type.