Type checking of partial programs