def safe_to_bool(input):
    """ Safely convert user input to a boolean, throwing exception if not boolean or boolean-appropriate string
      For flexibility, we allow case insensitive string matching to false/true values
      If it's not a boolean or string that matches 'false' or 'true' when ignoring case, throws an exception """
    if isinstance(input, bool):
        return input
    elif isinstance(input, str) and input.lower() == 'false':
        return False
    elif isinstance(input, str) and input.lower() == 'true':
        return True
    else:
        raise TypeError(
            'Input Object is not a boolean or string form of boolean!')