Partial Algebras, Subsorting, and Dependent Types: Prerequisites of Error Handling in Algebraic Specifications