Module 02: Algebraic data types and pattern matching

For this module, the person whose birthday is latest in the year should start out as the driver. The person sitting to their left (wrapping around if necessary) is the reporter. The module will indicate points when you should rotate roles (each role rotates left).

Remember, you should make sure that everyone on your team is understanding everything, regardless of their prior amount of Haskell experience.

The above {-# LANGUAGE #-} thingy turns on a Haskell language extension called “GADTSyntax” (GADT stands for “Generalized Algebraic Data Type”). You need not worry about what that means for now; it will enable us to use some nice syntax.

Enumerations

When you reach this point, STOP and let Dr. Yorgey know.

More general ADTs

ROTATE ROLES

When you reach this point, STOP and let Dr. Yorgey know.

Recursive ADTs

ROTATE ROLES

Feedback