Allow to specify alternative types for properties

This effectively replaces broken `OrElse`.