def isnull(val):
    """Return True if `val` is null.

    Null values are None, the empty string and any False instance of
    `xotl.tools.symbols.boolean`:class:.

    Notice that 0, the empty list and other false values in Python are not
    considered null.  This allows that the CSV null (the empty string) is
    correctly treated while other sources that provide numbers (and 0 is a
    valid number) are not misinterpreted as null.

    """
    from xotl.tools.symbols import boolean
    return val in (None, '') or isinstance(val, boolean) and not val
