In the 1995 paper by Philip Wadler "Monads for functional programming" he gives an example of an evaluator:
data Term = Con Int | Div Term Term
What does Con Int mean in this context?
It seems like the expression data Term = Int | Div Term Term is doing exactly the same thing. I tried googling various subsets of the words "Hakell", "type", "constructor", "constant" and "integer" but could't find anything useful.
Why do we need Con?