I have a source file that refers to stuff like HAL_Init() and SPI_HandleTypeDef and so on, that compiles fine yet its including no STM header files! How can it do that? OK Ignore this, all my fault!