<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def load_boolean_mask(path: Union[str, Path], predicate: Callable[[np.ndarray], np.ndarray] = None ) -> np.ndarray: """Load boolean nibabel.SpatialImage mask. Parameters path Mask path. predicate Callable used to create boolean values, e.g. a threshold function ``lambda x: x > 50``. Returns ------- np.ndarray Boolean array corresponding to mask. """

    if not isinstance(path, str):
        path = str(path)
    data = nib.load(path).get_data()
    if predicate is not None:
        mask = predicate(data)
    else:
        mask = data.astype(np.bool)
    return mask