fn rem<T>(left: Value, right: Value) -> Result<Value, EvalError>where T: TryFrom<Value, Error = Error> + Num, <T as TryFrom<Value>>::Error: Debug, Value: From<T>,