src/basilisp/lang/runtime.py
def deref(o, timeout_s=None, timeout_val=None):
    """Dereference a Deref object and return its contents.

    If o is an object implementing IBlockingDeref and timeout_s and
    timeout_val are supplied, deref will wait at most timeout_s seconds,
    returning timeout_val if timeout_s seconds elapse and o has not
    returned."""
    if isinstance(o, IDeref):
        return o.deref()
    elif isinstance(o, IBlockingDeref):
        return o.deref(timeout_s, timeout_val)
    raise TypeError(f"Object of type {type(o)} cannot be dereferenced")
def deref(o, timeout_s=None, timeout_val=None):
    """Dereference a Deref object and return its contents.

    If o is an object implementing IBlockingDeref and timeout_s and
    timeout_val are supplied, deref will wait at most timeout_s seconds,
    returning timeout_val if timeout_s seconds elapse and o has not
    returned."""
    if isinstance(o, IDeref):
        return o.deref()
    elif isinstance(o, IBlockingDeref):
        return o.deref(timeout_s, timeout_val)
    raise TypeError(f"Object of type {type(o)} cannot be dereferenced")
Dereference a Deref object and return its contents.

    If o is an object implementing IBlockingDeref and timeout_s and
    timeout_val are supplied, deref will wait at most timeout_s seconds,
    returning timeout_val if timeout_s seconds elapse and o has not
    returned.