It should be: ```rust fn from_read<R, T>(rd: R) -> Result<T, Error> where R: Read, T: DeserializeOwned ``` The current signature lets you try to deserialize `&str` and other borrow types and it fails at runtime instead of catching it at compile time.