Functional Programming, Formal Methods.
dependent types”, which, if I understand correctly, allow arguments of multi-arg dependent functions to depend on each other indiscriminately (not only to previous ones), and is very powerful. Almost sounds too good to be true, but Aaron, amazingly, managed to develop a semantics for it. This is,