from typing import Protocol

class Animal(Protocol):

    def walk(self) -> None:
        ...

    def speak(self) -> None:
        ...

        
class Dog:

    def walk(self):
        print("This is a dog walking")

    def speak(self):
        print("Woof!")


def make_animal_speak(animal: Animal):
    animal.speak()


def main():
    dog = Dog()
    make_animal_speak(dog)


if __name__ == '__main__':
    main()