<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def marshal_bson( obj, types=BSON_TYPES, fields=None, ):
 """ Recursively marshal a Python object to a BSON-compatible dict Args: obj: object, It's members can be nested Python objects which will be converted to dictionaries types: tuple-of-types, The BSON primitive types, typically you would not change this fields: None-list-of-str, Explicitly marshal only these fields Returns: dict """

    return marshal_dict(
        obj,
        types,
        fields=fields,
    )