It'd be good to explain the high level "philosophy" of this project in the README. I think this can be boiled down to the idea that chat bots and the servers they speak to are dynamical systems, and can be fruitfully modeled using coalgebras.
This library aims to provide a number of tools for working with bots-and-servers-as-coalgebras:
composition operations for building up bots and servers
mapping operations for adjusting the input/output interfaces of bots and servers
serialization disciplines that allow bots to cooperate when interacting with a textual server
a testing framework for validating interaction sequences with composite bots
a generic state serialization mechanism for bots
(eventually) "focusing" combinators that use optics to lift simple-to-write bots which are fixated on some tiny input/output language into broader conversations
(eventually) a typed wire protocol and packaging format for bots themselves, so that they can be implemented language-agnostically and distributed, and nevertheless composed and adapted in the ways we currently support
It'd be good to explain the high level "philosophy" of this project in the README. I think this can be boiled down to the idea that chat bots and the servers they speak to are dynamical systems, and can be fruitfully modeled using coalgebras.
This library aims to provide a number of tools for working with bots-and-servers-as-coalgebras: