Idris is a purely-functional programming language with dependent types, optional lazy evaluation, and features such as a totality checker. Idris may be used as a proof assistant, but it is designed to be a general-purpose programming language similar to Haskell. Idris is named after a singing dragon from the 1970s UK children's television program Ivor the Engine.