Andrew Coppin wrote:
> In my book, if it's difficult to explain what a feature even *does*, you
> have to wonder if that feature is really necessary...

Well, difficulty is in the eye of the beholder. For the one familiar
with formal logic, ∀ and ∃ are as basic as apples and eggplants. Nobody
can stop you to become familiar as well.

> GADTs (um... why?)

GADTs are awesome. They're the basic tool to derive data structures from
their specification and they bring dependent types in reach.

  http://haskell.org/haskellwiki/GADT

  R. Hinze. Fun with Phantom Types.
  http://www.informatik.uni-bonn.de/~ralf/publications/With.pdf

  K. Claessen. Parallel Parsing Processes.
  http://www.cs.chalmers.se/~koen/pubs/entry-jfp04-parser.html
  (This paper is not about GADTs but about deriving data structures
  from their specification)

> rank-N polymorphism (er... what?)

Actually, rank-N polymorphism came first and has been cut down to form
the basis of Haskell. You may want to look for "System F", perhaps in
the book

   Girard, Lafont, Taylor. Proofs and Types.
   http://www.cs.man.ac.uk/~pt/stable/prot.pdf

> MPTC, functional dependencies

  Mark P. Jones. Type Classes with Functional Dependencies.
  http://web.cecs.pdx.edu/~mpj/pubs/fundeps.html

Regards,
apfelmus

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to