Result type — either success with data or failure with error.