def bind(x, f):
    """
    A monadic bind operation similar to Haskell's Maybe type. Used to enable function
    composition where a function returning None indicates failure.

    :param x: The input value passed to callable f is not None.
    :param f: A callable which is passed 'x'
    :return: If 'x' is None on input, None otherwise the result of calling f(x).
    """

    if x is None:
        return None
    return f(x)