type checker for LLVM IR I