Add contract system and `cast` expression

Description

Add a contract system a la racket/contract.

WIP PR: 74
Commit: 7250d32d

Environment

None
Completed
Your pinned fields
Click on the next to a field label to start pinning.

Assignee

Ambrose Bonnaire-Sergeant

Reporter

Ambrose Bonnaire-Sergeant