A Type-Based HFL Model Checking Algorithm