 : parse-farkup ( string -- string' )
     farkup parse parse-result-ast
     [ [ dup string? [ write ] [ drop ] if ] deep-each ] with-string-writer ;
-
-! paragraph
-    ! [
-        ! line ,
-        ! "\n" token ,
-    ! ] choice* repeat1

DEFER: line
MEMO: list-item ( -- parser )
    [
        "-" token hide ,
        line ,
    ] seq*
    [ "li" <foo> swap "li" </foo> 3array ] action ;

MEMO: list ( -- parser )
    list-item "\n" token hide list-of
    [ "ul" <foo> swap "ul" </foo> 3array ] action ;

MEMO: code ( -- parser )
    [

            [ any-char , "}]" token hide , ] seq* optional [ >string ] action ,
        ] seq* [ concat ] action ,
    ] seq* [ first2 swap render-code ] action ;

MEMO: line ( -- parser )
    [
