refined ADT definition, added more comments.

Now ADT constructor accepts n-arguments, instead of one tuple.
This makes ADT notation a proper subset of many languages, including
Javascript, Ruby, OCaml, Swift or whatever.