i am hopefully gonna make a longer post about this later but
this latest two-week project was about finally getting forms (and more generally, a higher-level i/o event framework) working in haskell. this involved grappling with the reactive.banana FRP framework i'm using, and figuring out how that combines with gpipe -- they both need to be run in an IO monad wrapper, so they can both lift pure IO into their own wrapper but they can't lift each other, which adds some wrinkles as to when which code can run -- and how to structure these things overall so that the handlers i write automate away the most tedious parts of event management (mainly individually checking click volumes) while still being flexible enough to do useful things
basically this entire two weeks was spent trying to get this framework to the point where i can hit tab to open a menu and hit tab again to close it. it's like 90% of the way there (closing a ui element doesn't wipe its used render indices, so it remains floating, uninteractable, on screen) so i'm calling it a success.
this latest two-week project was about finally getting forms (and more generally, a higher-level i/o event framework) working in haskell. this involved grappling with the reactive.banana FRP framework i'm using, and figuring out how that combines with gpipe -- they both need to be run in an IO monad wrapper, so they can both lift pure IO into their own wrapper but they can't lift each other, which adds some wrinkles as to when which code can run -- and how to structure these things overall so that the handlers i write automate away the most tedious parts of event management (mainly individually checking click volumes) while still being flexible enough to do useful things
basically this entire two weeks was spent trying to get this framework to the point where i can hit tab to open a menu and hit tab again to close it. it's like 90% of the way there (closing a ui element doesn't wipe its used render indices, so it remains floating, uninteractable, on screen) so i'm calling it a success.