"""Stateful Python callables compiled into shared DBC procedures."""

class Counter:
    def __init__(self, start):
        self.value = start

    def __call__(self, amount=1, /, *, scale=1):
        self.value += amount * scale
        return self.value

class Magnitude:
    def __init__(self):
        self.seen = [0]
        self.seen.clear()

    def __call__(self, value):
        self.seen.append(value)
        return abs(value)

if __name__ == "__main__":
    counter = Counter(7)
    saved = counter.__call__
    print("Counter:", counter(), counter(2, scale=3), saved(1))
    key = Magnitude()
    values = [-3, 1, -1, 2]
    print("Sorted:", sorted(values, key=key))
    print("Extrema:", min(values, key=key), max(values, key=key))
    print("Key calls:", key.seen)
    print("Callable:", callable(counter), callable(key), callable(values))
