static Result_Type cast(const Boxed_Value &ob, const Type_Conversions *)
 {
   if (ob.is_ref())
   {
     return &(ob.get().cast<std::reference_wrapper<Result> >()).get();
   } else {
     return (ob.get().cast<std::shared_ptr<Result> >()).get();
   }
 }