Basic syntax and extremely minimal typechecker