minimalist polymorphic scheme-(co)monads, written to avoid use of any advanced language features except hygienic macros