"""Create fact_checker
Generated by Phi-Octopus Eden
2025-11-08 08:12:05.131585
"""

```python
from typing import List, Union
from dataclasses import dataclass


@dataclass
class Fact:
    statement: str
    source: str = ""


def create_fact_checker(database: List[Fact]) -> callable:
    """
    Creates a fact checking function that verifies if the given statement is found in the database.
    
    :param database: A list of Fact objects containing statements and their sources for comparison.
    :return: A callable function to check facts.
    """

    def fact_check(statement: str) -> Union[str, None]:
        """
        Checks if a given statement exists in the provided database.
        
        :param statement: The statement to be checked.
        :return: The source of the statement if found, otherwise returns None.
        """
        for fact in database:
            if fact.statement == statement:
                return fact.source
        return None

    return fact_check


# Example usage:

if __name__ == "__main__":
    facts = [
        Fact("Eden is an AI", "Tech Blog"),
        Fact("Python is a programming language", "Wikipedia"),
        Fact("AI can be autonomous", "Research Paper")
    ]

    check_fact = create_fact_checker(facts)

    print(check_fact("Eden is an AI"))  # Output: Tech Blog
    print(check_fact("Python is a programming language"))  # Output: Wikipedia
    print(check_fact("Java is not a snake"))  # Output: None
```

This code provides a basic fact-checking capability. The `create_fact_checker` function sets up the logic to check statements against a given database of facts, and returns a callable function that can be used to verify new statements.