"""Create fact_checker
Generated by Phi-Octopus Eden
2025-11-08 13:52:17.679217
"""

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

@dataclass
class FactCheckResult:
    is_factual: bool
    reasons: List[str]

def create_fact_checker(statements: List[str], knowledge_base: dict) -> callable:
    """
    Creates a fact checker function that evaluates the factual correctness of given statements.

    Args:
        statements (List[str]): A list of statements to be checked for factual correctness.
        knowledge_base (dict): A dictionary containing key-value pairs where keys are topics and values are facts.

    Returns:
        callable: A function that takes a statement and returns a FactCheckResult object with boolean and reasons.
    """

    def check_statement(statement: str) -> FactCheckResult:
        """
        Checks the factual correctness of a single statement based on the provided knowledge base.

        Args:
            statement (str): The statement to be checked.

        Returns:
            FactCheckResult: An object containing whether the statement is factual and reasons.
        """
        reasons = []
        topic = statement.split()[0]  # Simplistic approach, assumes first word as topic
        if topic in knowledge_base:
            fact = knowledge_base[topic]
            is_factual = statement == fact
            if not is_factual:
                reasons.append(f"Provided fact '{statement}' does not match known fact '{fact}'")
            return FactCheckResult(is_factual, reasons)
        else:
            return FactCheckResult(False, [f"No information available for topic: {topic}"])

    return check_statement

# Example usage
knowledge_base = {
    "Earth": "The Earth is the third planet from the Sun.",
    "Apollo11": "The Apollo 11 mission landed humans on the moon in 1969."
}

fact_checker = create_fact_checker(["Earth", "Lunar Landing"], knowledge_base)

for statement in ["Earth is a planet", "Moon landing occurred in 1960"]:
    result = fact_checker(statement)
    print(f"Statement: {statement} - Factual: {result.is_factual}, Reasons: {result.reasons}")
```
```