Talk:Generalized algebraic data type

From Wikipedia, the free encyclopedia
Jump to: navigation, search
WikiProject Computer science (Rated C-class, Low-importance)
WikiProject icon This article is within the scope of WikiProject Computer science, a collaborative effort to improve the coverage of Computer science related articles on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
C-Class article C  This article has been rated as C-Class on the project's quality scale.
 Low  This article has been rated as Low-importance on the project's importance scale.
edit·history·watch·refresh Stock post message.svg To-do list for Generalized algebraic data type:

Here are some tasks awaiting attention:
  • Expand : * Add the full list of publications on GADTs
    • Examples: no principle type
    • Sections on type inference, System FC
    • Lexically scoped type annotations and pattern annotations
    • Applications: expressions (without existnetials as the HOAS application does)
    • Comparision: ADT, families of inductive data types
    • Concepts: type equality, existential, constraints, local assumptions
  • Fix inaccuracy w.r.t. inductive families: no dependent types or expressions allowed; strict positivity requirement
  • Split : **Create separate article on phantom types

Phantom type[edit]

Why does phantom types redirect here? It is quite possible to use phantom types without using GADTs. (talk) 16:23, 29 June 2009 (UTC)

Actually, Phantom types should probably not exist (WP:SINGULAR), but Phantom type can always be written as an article and not redirect here; since it has not been, there is no harm it being a redirect right now (unless its target is seen as misleading). Si Trew (talk) 12:26, 5 April 2011 (UTC)
GADTs where initially named "first-class phantom types" by Hinze et al. Phantom type should be a separate article, though. (talk) 12:14, 1 June 2011 (UTC)

What is the a in (Fix a)? — Preceding unsigned comment added by (talk) 16:47, 17 January 2012 (UTC)

I have no idea what I was thinking when I wrote that. Clearly there is no 'a' in scope. I've fixed the example. —Ruud 18:55, 17 January 2012 (UTC)

Difficult to understand[edit]

This article is *extremely* difficult to understand. It really needs work from the perspective of introducing the subject to somebody who is unfamiliar with it. As I read it, it seems clear that it is saying something that ought to be meaningful, but the actual meaning of it remains beyond my grasp - and I say this as someone who ought to be able to understand a topic like this with relative ease, holding as I do a BSc in CS with a good grade from a top-10 university in the UK.

I think mostly the problem is that the example is unclear. That I'm not familiar with Haskell doesn't help, I imagine, but I have used other similar languages (albeit ones that lack this particular feature), so ought to be able to make some sense of it... but I don't see how the declarations work exactly, and the example of how they would be used is too complex to be informative.

Additionally, some contrast with the features offered by traditional ADTs would be helpful. The text describing the example simply states that trying to implement it using ADTs would run into problems, but doesn't say what those problems would be. JulesH (talk) 18:52, 19 February 2015 (UTC)

+1 The lede is incomprehensible, as written. (talk) 18:25, 12 January 2016 (UTC)