Program before identification: Let a IntType 10 b BoolType BinOpApp a [()] Less 2 Let c IntType BinOpApp a [()] Times 10 a BoolType BinOpApp a [()] Equal 42 d IntType If a [()] 1 2 If BinOpApp a [()] And b [()] c [()] 42 Program after identification: Let a IntType 10 b BoolType BinOpApp a [(1,IntType)] Less 2 Let c IntType BinOpApp a [(1,IntType)] Times 10 a BoolType BinOpApp a [(1,IntType)] Equal 42 d IntType If a [(2,BoolType)] 1 2 If BinOpApp a [(2,BoolType)] And b [(1,BoolType)] c [(2,IntType)] 42 Error Messages: