Dive into a comprehensive 12-hour video course designed for programmers familiar with imperative languages to learn Haskell, a purely functional programming language. Begin with the basics and progress through advanced topics including functions, recursion, higher-order functions, datatypes, typeclasses, monads, concurrency, parallelism, and formal verification. Explore key concepts such as list manipulation, partial function application, currying, and function composition. Gain hands-on experience with exercises in list folding and advanced problem-solving. Delve into practical aspects like compiling binaries, handling exceptions, and using software transactional memory. Discover theoretical foundations in category theory and learn to apply tools like QuickCheck and QuickSpec. Conclude with an introduction to Cabal, Haskell's package manager and build system.