You can instead cache the value when `do_turn` is called (use `cata::optional`).    ```  cata::optional<book_type> bktype;  ```    ```  if( !bktype.has_value() ) {      bktype = book->type->use_methods.count( "MA_MANUAL" ) ? book_type::martial_art : book_type::normal;  }  ```