type equivalency

Tom Pledger Tom.Pledger@peace.com
Thu, 6 Jun 2002 08:22:24 +1200

Cagdas Ozgenc writes:
 | Greetings.
 | I know 2 special type constructors(there might be other that I do
 | not know yet) -> and ( , ) where structural type equivalency is
 | enforced and we can also create new types with an algebric type
 | constructor notation where name equivalency is enforced.
 | What is the rationale? I mean why 2 special type constructors, but
 | not 5, or 10 or N?
 | Thanks for taking time.

-> and (,) are names of type contructors, each with kind *->*->*.

Offhand, I don't see any difference in the way we'd test equivalency
involving -> or (,) or D, where:

    data D a b = MkD a b

If that doesn't help, will you please give a more concrete example of
what you mean?