started working on the bidirectional typechecker