anchor.diff:  
   [source,c++]
   ----
  -constexpr auto make_lock(int key, int value)
  +constexpr auto make_lock(int key, int value) // -> (fn(int) -> optional<int>)
   {
  -    return [key,value](auto _key) -> pair<bool,int>
  +    return [key,value](auto _key) -> optional<int>
       {
  -        if(_key == key) return {true, value};
  -	return {false, 0};
  +	return key == _key ? std::make_optional(value) : std::nullopt;
       };
   };
   ----
  
positive.code: === ...
  image::art/tree-2649411_1920.jpg[canvas]
  
  [source,c+]
  ----
  constexpr auto make_branch(auto left, auto right)
  {
      return [left,right](int key) -> pair<bool,int>
      {
          if(const auto [success, value] = left(key); success) {
  	    return {true, value};
          }
          return right(key);
      };
  
negative.code: [source,c++]
  ----
  constexpr auto key = 42;
  constexpr auto value = 1337;
  constexpr auto my_lock = make_lock(key, value);
  ----
  
  [state=dimbg]
  