Great! I liked your philosophical approach to coding! Even though my background is in math and CS, your approach reminds me my own: I always tend to work with as generic things as possible. I do not like the verb "generalizing" because I believe "generic" is the root in itself, so English term does not reflect it the direction correctly.
As for coding paradoxes, I found it interesting to learn and (sometimes) use proof assistant languages like Coq or Idres2: Their types (and sorts) are probably exactly there to avoid this and many more logical paradoxes, which otherwise would make type theories unsuitable to prove anything. THanks to Curre-Howard correspondence, proof can be seen as programs and the other way around.
Of course, your way here is more comprehensible to programmers as many do not necessarily are versed in the type theory.
(shameless plug) Here I am trying to convince that software programmers are really mathematicians ( https://medium.com/the-innovation/good-software-developer-uses-math-9954b46e50a1 ), and I agree with you, that it also includes being a logician and philosopher... My sad observation is however that not many people are delighted to be a philosopher. At my university course ~30 years age sometimes only 4 (!) students from about 60 participated in the philosophy lectures... Perhaps, there less "philosophers" among programmers than "mathematicians"! (by quotes I mean "those who like/understand", not education, and I do not mean the history of philosophy)