Dependent types (of this language) also provide a not-forgetful concept of '''views''' (already mentioned in the Haskell [[Future of Haskell#Extensions of Haskell]];

Dependent types (of this language) also provide a not-forgetful concept of '''views''' (already mentioned in the Haskell [[Future of Haskell#Extensions of Haskell]];

Line 49:

Line 49:

People who are interested also in theorem proving may see the [[Libraries and tools/Theorem provers|theorem provers]] page.

People who are interested also in theorem proving may see the [[Libraries and tools/Theorem provers|theorem provers]] page.

+

+

=== Idris ===

+

+

[http://idris-lang.org/ Idris] is a general purpose pure functional programming language with dependent types, eager evaluation, and optional lazy evaluation via laziness annotations. It has a very Haskell-like syntax and is available on [http://hackage.haskell.org/package/idris Hackage].

+

+

Idris is actively developed by [http://edwinb.wordpress.com/ Edwin Brady] at the [http://www.cs.st-andrews.ac.uk/ University of St. Andrews].

=== Cayenne ===

=== Cayenne ===

−

[http://www.cs.chalmers.se/~augustss/cayenne/index.html Cayenne] is influenced also by constructive type theory (see its page).

+

[http://www.augustsson.net/Darcs/Cayenne/html/ Cayenne] is influenced also by [http://en.wikipedia.org/wiki/Constructive_type_theory constructive type theory].

Dependent types make it possible not to have a separate module language and a core language. This idea may concern Haskell too, see [[First-class module]] page.

Dependent types make it possible not to have a separate module language and a core language. This idea may concern Haskell too, see [[First-class module]] page.

−

Depandent types make it useful also as a [[Libraries and tools/Theorem provers|theorem prover]].

+

Dependent types make it useful also as a [[Applications and libraries/Theorem provers|theorem prover]].

== Dependent types in Haskell programming ==

== Dependent types in Haskell programming ==

Line 70:

Line 76:

=== Library ===

=== Library ===

−

[http://www.dcs.st-and.ac.uk/~eb/ivor.php Ivor] is type theory based theorem proving library -- written by [http://www.dcs.st-and.ac.uk/~eb/index.php Edwin Brady] (see also the author's homepage, there are a lot of materials concerning dependent type theory there).

+

[http://www.cs.st-and.ac.uk/~eb/ivor.php Ivor] is type theory based theorem proving library -- written by [http://www.dcs.st-and.ac.uk/~eb/index.php Edwin Brady] (see also the author's homepage, there are a lot of materials concerning dependent type theory there).

2.1 Epigram

Dependent types (of this language) also provide a not-forgetful concept of views (already mentioned in the Haskell Future of Haskell#Extensions of Haskell;
the connection between these concepts is described in p. 32 of Epigram Tutorial (section 4.6 Patterns Forget; Matching Is Remembering).

2.2 Agda

Agda is a system for incrementally developing proofs and programs. Agda is also a functional language with dependent types. This language is similar to Epigram but has a more Haskell-like syntax.

People who are interested also in theorem proving may see the theorem provers page.

2.3 Idris

Idris is a general purpose pure functional programming language with dependent types, eager evaluation, and optional lazy evaluation via laziness annotations. It has a very Haskell-like syntax and is available on Hackage.