prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  An exemplar Hy program
  When you have a new programming language, it really helps—for the purposes of advertising the language, of helping people learn how to use it, and of giving the language a broader and more practical test than unit tests—to have some kind of nontrivial program written in the language. I think I speak for many of us when I say that write a lot of small programs in Hy, as well as a lot of not-so-small programs that are of little general interest (in my case, code for the data analysis of specific scientific studies). What I don't have is a program that is both not small and of general interest.
  
  I propose we consider writing and maintaining an exemplar program. It doesn't have to be kept under the hylang organization and probably shouldn't be considered a responsibility of the Hy core team; it could be one person's passion project, so long as it's free software. It should be something that's useful to end users of some kind, rather than Hy programmers—we want to show something that is done in Hy, not something you can use to write other programs in Hy. It should offer something that doesn't already exist, rather than being a Hy rewrite (or stripped-down equivalent) of an existing program. And it shouldn't be too specialized. A text editor, paint program, or process manager isn't too specialized, whereas a program for managing reservations at a hotel or for designing aircraft is.
  
  One genre of program that fits a lot of these criteria is games. [Rogue TV](https://github.com/kodiologist/rogue-tv) has the potential to be a good exemplar program, although it would need considerable work to get running on the latest Hy, and it's still missing a lot of content elements to be a good game. Also, Rogue TV is arguably too big and complex to be good for this purpose. Ironically, I quit development of it largely to work on Hy itself.
  
  </issue>
  <code>
  [start of setup.py]
  1 #!/usr/bin/env python
  2 
  3 # Set both `setup_requires` and `install_requires` with our
  4 # dependencies, since we need to compile Hy files during setup. And
  5 # put this as the first statement in the file so it's easy to parse
  6 # out without executing the file.
  7 requires = [
  8     "funcparserlib ~= 1.0",
  9     'astor>=0.8 ; python_version < "3.9"',
  10 ]
  11 
  12 import os
  13 
  14 import fastentrypoints  # Monkey-patches setuptools.
  15 from get_version import __version__
  16 from setuptools import find_packages, setup
  17 from setuptools.command.install import install
  18 
  19 os.chdir(os.path.split(os.path.abspath(__file__))[0])
  20 
  21 PKG = "hy"
  22 
  23 long_description = """Hy is a Lisp dialect that's embedded in Python.
  24 Since Hy transforms its Lisp code into Python abstract syntax tree (AST)
  25 objects, you have the whole beautiful world of Python at your fingertips,
  26 in Lisp form."""
  27 
  28 
  29 class install(install):
  30     def run(self):
  31         super().run()
  32         import py_compile
  33 
  34         import hy  # for compile hooks
  35 
  36         for path in set(self.get_outputs()):
  37             if path.endswith(".hy"):
  38                 py_compile.compile(
  39                     path,
  40                     invalidation_mode=py_compile.PycInvalidationMode.CHECKED_HASH,
  41                 )
  42 
  43 setup(
  44     name=PKG,
  45     version=(
  46         None
  47         if __version__ == "unknown"
  48         else __version__
  49     ),
  50     setup_requires=["wheel"] + requires,
  51     install_requires=requires,
  52     python_requires=">= 3.8, < 3.13",
  53     entry_points={
  54         "console_scripts": [
  55             "hy = hy.cmdline:hy_main",
  56             "hyc = hy.cmdline:hyc_main",
  57             "hy2py = hy.cmdline:hy2py_main"
  58         ]
  59     },
  60     packages=find_packages(exclude=["tests*"]),
  61     package_data={
  62         "": ["*.hy"],
  63     },
  64     data_files=[("get_version", ["get_version.py"])],
  65     author="Paul Tagliamonte",
  66     author_email="tag@pault.ag",
  67     long_description=long_description,
  68     description="A Lisp dialect embedded in Python",
  69     license="Expat",
  70     url="http://hylang.org/",
  71     platforms=["any"],
  72     classifiers=[
  73         "Development Status :: 4 - Beta",
  74         "Intended Audience :: Developers",
  75         "License :: DFSG approved",
  76         "License :: OSI Approved :: MIT License",  # Really "Expat". Ugh.
  77         "Operating System :: OS Independent",
  78         "Programming Language :: Lisp",
  79         "Programming Language :: Python",
  80         "Programming Language :: Python :: 3",
  81         "Programming Language :: Python :: 3.8",
  82         "Programming Language :: Python :: 3.9",
  83         "Programming Language :: Python :: 3.10",
  84         "Programming Language :: Python :: 3.11",
  85         "Programming Language :: Python :: 3.12",
  86         "Programming Language :: Python :: Implementation :: PyPy",
  87         "Environment :: WebAssembly :: Emscripten",
  88         "Topic :: Software Development :: Code Generators",
  89         "Topic :: Software Development :: Compilers",
  90         "Topic :: Software Development :: Libraries",
  91     ],
  92     project_urls={
  93         "Documentation": "https://docs.hylang.org/",
  94         "Source": "https://github.com/hylang/hy",
  95     },
  96     cmdclass={
  97         "install": install,
  98     },
  99 )
  100
  [end of setup.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/setup.py b/setup.py
  --- a/setup.py
  +++ b/setup.py
  @@ -75,6 +75,7 @@
           "License :: DFSG approved",
           "License :: OSI Approved :: MIT License",  # Really "Expat". Ugh.
           "Operating System :: OS Independent",
  +        "Programming Language :: Hy",
           "Programming Language :: Lisp",
           "Programming Language :: Python",
           "Programming Language :: Python :: 3",
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -75,6 +75,7 @@\n         \"License :: DFSG approved\",\n         \"License :: OSI Approved :: MIT License\",  # Really \"Expat\". Ugh.\n         \"Operating System :: OS Independent\",\n+        \"Programming Language :: Hy\",\n         \"Programming Language :: Lisp\",\n         \"Programming Language :: Python\",\n         \"Programming Language :: Python :: 3\",\n", "issue": "An exemplar Hy program\nWhen you have a new programming language, it really helps\u2014for the purposes of advertising the language, of helping people learn how to use it, and of giving the language a broader and more practical test than unit tests\u2014to have some kind of nontrivial program written in the language. I think I speak for many of us when I say that write a lot of small programs in Hy, as well as a lot of not-so-small programs that are of little general interest (in my case, code for the data analysis of specific scientific studies). What I don't have is a program that is both not small and of general interest.\r\n\r\nI propose we consider writing and maintaining an exemplar program. It doesn't have to be kept under the hylang organization and probably shouldn't be considered a responsibility of the Hy core team; it could be one person's passion project, so long as it's free software. It should be something that's useful to end users of some kind, rather than Hy programmers\u2014we want to show something that is done in Hy, not something you can use to write other programs in Hy. It should offer something that doesn't already exist, rather than being a Hy rewrite (or stripped-down equivalent) of an existing program. And it shouldn't be too specialized. A text editor, paint program, or process manager isn't too specialized, whereas a program for managing reservations at a hotel or for designing aircraft is.\r\n\r\nOne genre of program that fits a lot of these criteria is games. [Rogue TV](https://github.com/kodiologist/rogue-tv) has the potential to be a good exemplar program, although it would need considerable work to get running on the latest Hy, and it's still missing a lot of content elements to be a good game. Also, Rogue TV is arguably too big and complex to be good for this purpose. Ironically, I quit development of it largely to work on Hy itself.\n", "before_files": [{"content": "#!/usr/bin/env python\n\n# Set both `setup_requires` and `install_requires` with our\n# dependencies, since we need to compile Hy files during setup. And\n# put this as the first statement in the file so it's easy to parse\n# out without executing the file.\nrequires = [\n    \"funcparserlib ~= 1.0\",\n    'astor>=0.8 ; python_version < \"3.9\"',\n]\n\nimport os\n\nimport fastentrypoints  # Monkey-patches setuptools.\nfrom get_version import __version__\nfrom setuptools import find_packages, setup\nfrom setuptools.command.install import install\n\nos.chdir(os.path.split(os.path.abspath(__file__))[0])\n\nPKG = \"hy\"\n\nlong_description = \"\"\"Hy is a Lisp dialect that's embedded in Python.\nSince Hy transforms its Lisp code into Python abstract syntax tree (AST)\nobjects, you have the whole beautiful world of Python at your fingertips,\nin Lisp form.\"\"\"\n\n\nclass install(install):\n    def run(self):\n        super().run()\n        import py_compile\n\n        import hy  # for compile hooks\n\n        for path in set(self.get_outputs()):\n            if path.endswith(\".hy\"):\n                py_compile.compile(\n                    path,\n                    invalidation_mode=py_compile.PycInvalidationMode.CHECKED_HASH,\n                )\n\nsetup(\n    name=PKG,\n    version=(\n        None\n        if __version__ == \"unknown\"\n        else __version__\n    ),\n    setup_requires=[\"wheel\"] + requires,\n    install_requires=requires,\n    python_requires=\">= 3.8, < 3.13\",\n    entry_points={\n        \"console_scripts\": [\n            \"hy = hy.cmdline:hy_main\",\n            \"hyc = hy.cmdline:hyc_main\",\n            \"hy2py = hy.cmdline:hy2py_main\"\n        ]\n    },\n    packages=find_packages(exclude=[\"tests*\"]),\n    package_data={\n        \"\": [\"*.hy\"],\n    },\n    data_files=[(\"get_version\", [\"get_version.py\"])],\n    author=\"Paul Tagliamonte\",\n    author_email=\"tag@pault.ag\",\n    long_description=long_description,\n    description=\"A Lisp dialect embedded in Python\",\n    license=\"Expat\",\n    url=\"http://hylang.org/\",\n    platforms=[\"any\"],\n    classifiers=[\n        \"Development Status :: 4 - Beta\",\n        \"Intended Audience :: Developers\",\n        \"License :: DFSG approved\",\n        \"License :: OSI Approved :: MIT License\",  # Really \"Expat\". Ugh.\n        \"Operating System :: OS Independent\",\n        \"Programming Language :: Lisp\",\n        \"Programming Language :: Python\",\n        \"Programming Language :: Python :: 3\",\n        \"Programming Language :: Python :: 3.8\",\n        \"Programming Language :: Python :: 3.9\",\n        \"Programming Language :: Python :: 3.10\",\n        \"Programming Language :: Python :: 3.11\",\n        \"Programming Language :: Python :: 3.12\",\n        \"Programming Language :: Python :: Implementation :: PyPy\",\n        \"Environment :: WebAssembly :: Emscripten\",\n        \"Topic :: Software Development :: Code Generators\",\n        \"Topic :: Software Development :: Compilers\",\n        \"Topic :: Software Development :: Libraries\",\n    ],\n    project_urls={\n        \"Documentation\": \"https://docs.hylang.org/\",\n        \"Source\": \"https://github.com/hylang/hy\",\n    },\n    cmdclass={\n        \"install\": install,\n    },\n)\n", "path": "setup.py"}]}