auto-ensure sub => typ