так еще раз:
У математиков чтото не складывалось с теорией множеств, и пацаны придумали некуд "теорию типов". это работало строго как разрешение противоречий в терках математиков относительно теории множеств в вопросах "считать ли пустое множество членом пустого множества"
потом почему то ктото приплел туда лямбда исчисление и теорию категорий(теория категорий кстати слеплена из абстрактной алгебры которую я понял лучше все кукаретики в интернете говорят "ну оно похоже но просто теоркат звучит солиднее и хомячки ведутся лучше")
далее просто интуитивной понятной вещи типа map придается какой то сокральный смысл и на основе похожести того что он делает на "морфизм" все эти раковые теории приплетаются как обязательные, на чем строится все программирование.
но программирование строится не на этом.
Объект науки - те явления, которые она изучает. Предмет - то, что интересует данную науку в конкретном объекте.
обьектом любой науки о кодочмырении будет то как человеку удобно писать код: том что считать типом а что значением, как можно использовать конструкторы в качестве фильтров для типов, и прочего прочего