packages feed

scroll-1.20250228: TODO

scroll fails to build from source on Debian because
https://hackage.haskell.org/package/ncurses fails to 
build. The workaround is to patch that library with
this patch:

--- ncurses-0.2.16.orig/lib/UI/NCurses/Enums.chs	2016-08-28 21:09:37.000000000 -0400
+++ ncurses-0.2.16/lib/UI/NCurses/Enums.chs	2025-02-28 15:18:09.215809399 -0400
@@ -195,7 +195,6 @@
 , hsncurses_KEY_UNDO = KEY_UNDO
 , hsncurses_KEY_MOUSE = KEY_MOUSE
 , hsncurses_KEY_RESIZE = KEY_RESIZE
-, hsncurses_KEY_EVENT = KEY_EVENT
 };
 #endc

I have informed its author about the problem and he did not want to fix it.
So, it would probably be best to migrate away from ncurses. A start has
been made in commit 4b5a597a5de090d1418b96aedd37bf044e3c05e9. Another
reason to do this is to get scroll running compiled to WASM in a web
browser.

Add a bonus level with:
Front side, a NanoGenMo generated novel. (It's possible that some of
the current levels would qualify, if I'd only written them in November!) 
Back side, my joeywiki/code/scroll/thoughts.mdwn. (This contains
a spoiler for scroll, which fits very thematically with scroll's first
level containing its license..)

For spells with only 1 component, add a letter frequency table, and make
the charmap be constructed by picking a letter with the desired frequency
that is not otherwise used. This adds a different sort of randomness to the
game.

I've had 2 reports of it crashing after winning the game, with:

scroll: ./Data/Vector/Generic/Mutable.hs:590 (read): index out of bounds (6,6)

The typescript fileG0A3Np on clam should show this happening.
as should filecobD95 and fileOlHEMR on elephant.

"Game exploded when I maximized the terminal window." -- tmp/fileBQE03e

"I think I went into a dream while stunned, and came out permenantly
stunned." -- tmp/filehgwH0C on clam

Casting a spell should only use 1 of each spell component even when
multiple are swallowed. This would allow stacking spells (eg, "new new x")