`std::function<Boxed_Value (const std::map<std::string, Boxed_Value>)>`

which would give you the most flexibility. However, an even more generic option would be to just store `Boxed_Value`

, then unpack it as a generic function or strongly typed function later when/if necessary