Charity is a categorical programming language currently being developed by The Charity Development Group in The Department of Computer Science at The University of Calgary, Canada. Charity is functional in style. That is, programmers familiar with declarative paradigms (functional and logic programmers) should find Charity easy to grasp. Charity is based on the theory of strong categorical datatypes. These are divided into two subclasses: the inductive datatypes (built up by constructors in the familiar way) and the coinductive datatypes (broken down by destructors).
You can download latest version of Charity Compiler click here