интерфейс он определяет сигнатуру, которая потом реализуется. Здесь всё наоборот. Сигнатур нет, потому как их попросту невозможно написать и это не имеет смысла.
А проверка производится на уровне - сформирован ли код, либо нет. Ну примерно как во всяких говноидрисах. Сам факт компиляции используется как критерий соответствия