Just discovered that type function bounds are never checked. doh
So we're getting a shiny new kinds system, and type applications that actually check the bounds of the type function xD