Automatically generating types by running tests

Type Checking