Confident patterns: use built-in conversion protocols