крч типы не пораждают код, типы ограничивают возможные значения в коде, типы в компайлтайме ограничат значения возможные в рантайме, если посчитать тот же факториал на типах и ограничить что от инта останется только инт с 1 значением и выведешь в рантайме, то получишь вычисления/бизнес-логику в компайлтайме на типах