There are a number of powerful design concepts and constructs available in programming languages like Lisp, Smalltalk, Haskell, ML, Standard C++, and others for many, many years. Historically, these powers had been available only for few blessed programmers.