(;module: lux (lux (data [text] (text format ["l" lexer "l/" Monad]) (coll [list "L/" Functor])))) (type: #export Signal Text) (do-template [ ] [(def: #export Signal )] [cons-signal "\u0005"] [nil-signal "\u0006"] [stop-signal "\u0007"] ) (do-template [ ] [(def: #export Signal )] [ident-separator ";"] ) (def: #export (encode-list encode-elem types) (All [a] (-> (-> a Text) (List a) Text)) (format (|> (L/map encode-elem types) (text;join-with cons-signal)) nil-signal)) (def: #export (decode-list decode-elem) (All [a] (-> (l;Lexer a) (l;Lexer (List a)))) (l;alt (<| (l;after (l;text nil-signal)) (l/wrap [])) (<| (l;seq decode-elem) (l;after (l;text cons-signal)) (decode-list decode-elem))))