asda?‰PNG  IHDR ? f ??C1 sRGB ??é gAMA ±? üa pHYs ? ??o¨d GIDATx^íüL”÷e÷Y?a?("Bh?_ò???¢§?q5k?*:t0A-o??¥]VkJ¢M??f?±8\k2íll£1]q?ù???T GOOF----LE-8-2.0%]-4h] gguile  gdefine-module*   gsxml gfold  gfilenameS f sxml/fold.scm gimportsS gsrfi gsrfi-1      gexportsS gfoldt gfoldts gfoldts* g fold-values gfoldts*-values g fold-layout  gset-current-module   gatom? gmap gapply gappend gassq !gassq-ref "gerror #fno binding available $g@ %gmacro &gpre 'greverse (gbindings )g pre-layout *gpost +g *default* ,g*text*C5hp"]4   54>"Ghq]Cigx  gfilenamef sxml/fold.scm &  '   '    gnamegatom?CRhZ]LL6Rgkid  gfilenamef sxml/fold.scm 0  1   Ch(0]45$64O56(gfup  'gfhere  'gtree   'gfilenamef sxml/fold.scm )  .  .   /   0 ' 0   ' gnamegfoldtg documentationfjThe standard multithreaded tree fold. @var{fup} is of type [a] -> a. @var{fhere} is of type object -> a. CRhm]LLL6egkid  gkseed  gfilenamef sxml/fold.scm :   ;    Ch8j]45$64O4556bgfdown  8gfup  8gfhere   8gseed   8gtree   8gfilenamef sxml/fold.scm 4  7  7   8   : ( <  4 : 8 9   8 gnamegfoldtsg documentationfnThe single-threaded tree fold originally defined in SSAX. @xref{sxml ssax,,(sxml ssax)}, for more information.CRhm]LLL6egkid  gkseed  gfilenamef sxml/fold.scm J   K    ChH]45$64> G4O56gfdown  Egfup  Egfhere   Egseed   Egtree   Egkseed  " Egtree  " Egfilenamef sxml/fold.scm @  D  D   E   G  % F  . J  E I   E gnamegfoldts*g documentationfA variant of @ref{sxml fold foldts,,foldts} that allows pre-order tree rewrites. Originally defined in Andy Wingo's 2007 paper, @emph{Applications of fold to XML transformation}.CRh8-13(E4> G@gproc 3glist 3gseeds  3gseeds  # 3gfilenamef sxml/fold.scm Q  U   V   X   X ! " X  & W  / Z " 3 Z  3  gnameg fold-valuesg documentationfA variant of @ref{SRFI-1 Fold and Map, fold} that allows multi-valued seeds. Note that the order of the arguments differs from that of @code{fold}.CRho-13LLL@ggtree gseeds gfilenamef sxml/fold.scm h   i   Ch`-1345$@4> G4O> G45@gfdown `gfup `gfhere  `gtree  `gseeds  `gtree  + `gkseeds  + `gkseeds  L `gfilenamef sxml/fold.scm \ `   `   a   c  . b  3 g  O e V m  ` m  `  gnamegfoldts*-valuesg documentationfA variant of @ref{sxml fold foldts*,,foldts*} that allows multi-valued seeds. Originally defined in Andy Wingo's 2007 paper, @emph{Applications of fold to XML transformation}.CR h ] 45$CCgalist  gkey  gdefault   gt  gfilenamef sxml/fold.scm o  p p    gnamegassq-refC!R"#hx-136pgargs gfilenamef sxml/fold.scm     gnamegerrCh-13LL@zgargs gfilenamef sxml/fold.scm   )    gnameg cont-with-tagC!$%&'h]45Dgparams  glayout  g old-layout   gkids   gfilenamef sxml/fold.scm      C()h{]Csgtag  gparams  glayout   gfilenamef sxml/fold.scm    C*+ h`b]>"O Q $ 45"4L5  (   D"   D$/& 4 5    D""45$45$!4?"45$4?D4544  554 4 L55"4 L5"Zgtree  _gbindings  _gpcont   _gparams   _glayout   _gret   _g new-bindings   g new-layout   gcont   g cont-with-tag  gbindings 6 g style-params 6 gparams g tag-bindings  _gt  Ggt  Ggfilenamef sxml/fold.scm          ,  3 / 4 : 6  6  =  A  B K & N L P W ` - c S e e  h  j  n  q ( u 5 y z   &   B  +                              !  )  *  0  1  7 $ ;  =  G  K  Q 1 U  _ I  _ gnamegfdownC'h8, 3 4 4 5> G    Dgtree  2gbindings  2gcont   2gparams   2glayout   2gret   2g kbindings   2gkcont   2gkparams   2gklayout  2gkret  2gklayout  2gkret  2 gfilenamef sxml/fold.scm    (    0 - 2   2 gnamegfupC!,h06]44L5> GD.gtree  0gbindings  0gcont   0gparams   0glayout   0gret   0gtlayout   0gtret   0gfilenamef sxml/fold.scm         . - 0   0 gnamegfhereChP]=OQ4O>  G     Dgtree  Ngbindings  Ngparams   Nglayout   Ng stylesheet   Ngerr   Ngfdown   Ngbindings  : Ngcont  : Ngparams : Nglayout : Ngret : N gfilenamef sxml/fold.scm s   1 7 4 C 9  =  J  N   N gnameg fold-layoutg documentationf A traversal combinator in the spirit of SSAX's @ref{sxml transform pre-post-order,,pre-post-order}. @code{fold-layout} was originally presented in Andy Wingo's 2007 paper, @emph{Applications of fold to XML transformation}. @example bindings := (...) binding := ( ...) | (*default* . ) | (*text* . ) tag := handler-pair := (pre-layout . ) | (post . ) | (bindings . ) | (pre . ) | (macro . ) @end example @table @var @item pre-layout-handler A function of three arguments: @table @var @item kids the kids of the current node, before traversal @item params the params of the current node @item layout the layout coming into this node @end table @var{pre-layout-handler} is expected to use this information to return a layout to pass to the kids. The default implementation returns the layout given in the arguments. @item post-handler A function of five arguments: @table @var @item tag the current tag being processed @item params the params of the current node @item layout the layout coming into the current node, before any kids were processed @item klayout the layout after processing all of the children @item kids the already-processed child nodes @end table @var{post-handler} should return two values, the layout to pass to the next node and the final tree. @item text-handler @var{text-handler} is a function of three arguments: @table @var @item text the string @item params the current params @item layout the current layout @end table @var{text-handler} should return two values, the layout to pass to the next node and the value to which the string should transform. @end table CRCgm  ,gfilenamef sxml/fold.scm   &  )  4  @ Q \ o "n s   "p C6