<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def save_generic(obj, fn):
 """Save Python objects, including msmbuilder Estimators. This is a convenience wrapper around Python's ``pickle`` serialization scheme. This protocol is backwards-compatible among Python versions, but may not be "forwards-compatible". A file saved with Python 3 won't be able to be opened under Python 2. Please read the pickle docs (specifically related to the ``protocol`` parameter) to specify broader compatibility. If a file already exists at the given filename, it will be backed up. Parameters obj : object A Python object to serialize (save to disk) fn : str Filename to save the object. We recommend using the '.pickl' extension, but don't do anything to enforce that convention. """

    backup(fn)
    with open(fn, 'wb') as f:
        pickle.dump(obj, f)