added the notion that typechecking is not guaranteed to be decidable