Composing error types