"""Create reasoning_engine
Generated by Phi-Octopus Eden
2025-11-06 02:27:36.249916
"""

```python
from typing import List, Dict


class ReasoningEngine:
    """
    A simple reasoning engine that evaluates a set of rules on given data.
    
    Attributes:
        rules: A list of functions representing the rules to be evaluated.
    """

    def __init__(self, rules: List[callable]):
        self.rules = rules

    def evaluate(self, data: Dict[str, bool]) -> Dict[str, bool]:
        """
        Evaluate each rule against the given data and return a dictionary with results.

        Args:
            data: A dictionary containing key-value pairs where keys are variable names
                  and values are their boolean truth states.
        
        Returns:
            A dictionary indicating which rules were satisfied by the input data.
        """
        results = {}
        for rule in self.rules:
            result = rule(data)
            results[rule.__name__] = result
        return results

# Example rules
def is_daytime(data: Dict[str, bool]) -> bool:
    """Rule to check if it's daytime."""
    return data.get('sun', False) and not data.get('clouds', True)

def is_night(data: Dict[str, bool]) -> bool:
    """Rule to check if it's night time."""
    return not data.get('sun', False) or data.get('moon', False)

# Example usage
if __name__ == "__main__":
    data = {'sun': False, 'clouds': True, 'moon': True}
    rules_engine = ReasoningEngine([is_daytime, is_night])
    print(rules_engine.evaluate(data))
```