Type Theory And Functional Programming Concepts