Possible source of UB due to const
Special care must be taken when binding functions with the following criteria:
1.) Overloaded by 'const'ness
2.) Overloaded with identical parameter types as another overloaded definition, except for 'const'ness (ie, void foo(string) and void foo(const string)
3.) Functions returning const& (see pybind issue here: https://github.com/pybind/pybind11/issues/717)
All of these issues stem from the lack of 'const'ness in python. More information here: https://pybind11.readthedocs.io/en/stable/limitations.html?highlight=const#limitations