Epigram — functional programming language with dependent types