Preordered categories and predicate transformers (programming languages)