branch: externals/emacs-lisp-intro-nl
commit 77b3d86c76b95ecd0c777d9db89ef60693f8eb1b
Author: matto <[email protected]>
Commit: matto <[email protected]>

    some art and chapter 9
---
 cons-1-nl.eps          | 578 +++++++++++++++++++++++++++++++++++++++++
 cons-1-nl.pdf          | Bin 0 -> 4906 bytes
 cons-2-nl.eps          | 600 +++++++++++++++++++++++++++++++++++++++++++
 cons-2-nl.pdf          | Bin 0 -> 5031 bytes
 cons-2a-nl.eps         | 595 +++++++++++++++++++++++++++++++++++++++++++
 cons-2a-nl.pdf         | Bin 0 -> 5497 bytes
 cons-3-nl.eps          | 624 +++++++++++++++++++++++++++++++++++++++++++++
 cons-3-nl.pdf          | Bin 0 -> 5102 bytes
 cons-4-nl.eps          | 677 +++++++++++++++++++++++++++++++++++++++++++++++++
 cons-4-nl.pdf          | Bin 0 -> 5214 bytes
 drawers-nl.eps         | 510 +++++++++++++++++++++++++++++++++++++
 drawers-nl.pdf         | Bin 0 -> 9014 bytes
 emacs-lisp-intro-nl.po | 349 +++++++++++++++++++------
 13 files changed, 3859 insertions(+), 74 deletions(-)

diff --git a/cons-1-nl.eps b/cons-1-nl.eps
new file mode 100644
index 0000000000..fdc4bd1ffa
--- /dev/null
+++ b/cons-1-nl.eps
@@ -0,0 +1,578 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 35 711 295 757
+%%Title: cons-cell-diagram1
+%%CreationDate: Wed Mar  8 14:26:58 1995
+%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng ([email protected])
+
+% Copyright (C) 1995, 1997, 2001-2025 Free Software Foundation, Inc.
+%
+% This file is part of GNU Emacs.
+%
+% GNU Emacs is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% GNU Emacs is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
+
+/tgifdict 132 dict def
+tgifdict begin
+
+%
+%      Using a zero value radius for an ellipse or an arc would result
+%              in a non-invertible CTM matrix which causes problem when this
+%              when this PostScript is wrapped inside other routines, such as
+%              the multi.ps package from
+%              ftp.ucc.su.oz.au:/pub/ps_printing/multi.  You can overcome such
+%              error by uncommenting the sole line of the procedure below:
+%
+/tgif_min_radius
+ {
+%    dup 0.01 lt { pop 0.01 } if
+ } bind def
+
+/tgifellipsedict 6 dict def
+tgifellipsedict /mtrx matrix put
+
+/tgifellipse
+ { tgifellipsedict begin
+      /yrad exch def
+      /xrad exch def
+      /y exch def
+      /x exch def
+      /savematrix mtrx currentmatrix def
+      x y translate
+      xrad yrad scale
+      0 0 1 0 360 arc
+      savematrix setmatrix
+   end
+ } def
+
+/tgifarrowtipdict 8 dict def
+tgifarrowtipdict /mtrx matrix put
+
+/tgifarrowtip
+ { tgifarrowtipdict begin
+      /dy exch def
+      /dx exch def
+      /h exch def
+      /w exch def
+      /y exch def
+      /x exch def
+      /savematrix mtrx currentmatrix def
+      x y translate
+      dy dx atan rotate
+      0 0 moveto
+      w neg h lineto
+      w neg h neg lineto
+      savematrix setmatrix
+   end
+ } def
+
+/tgifarcdict 8 dict def
+tgifarcdict /mtrx matrix put
+
+/tgifarcn
+ { tgifarcdict begin
+      /endangle exch def
+      /startangle exch def
+      /yrad exch def
+      /xrad exch def
+      /y exch def
+      /x exch def
+      /savematrix mtrx currentmatrix def
+      x y translate
+      xrad yrad scale
+      0 0 1 startangle endangle arc
+      savematrix setmatrix
+   end
+ } def
+
+/tgifarc
+ { tgifarcdict begin
+      /endangle exch def
+      /startangle exch def
+      /yrad exch def
+      /xrad exch def
+      /y exch def
+      /x exch def
+      /savematrix mtrx currentmatrix def
+      x y translate
+      xrad yrad scale
+      0 0 1 startangle endangle arcn
+      savematrix setmatrix
+   end
+ } def
+
+/tgifsetuserscreendict 22 dict def
+tgifsetuserscreendict begin
+   /tempctm matrix def
+   /temprot matrix def
+   /tempscale matrix def
+
+   /concatprocs
+    { /proc2 exch cvlit def
+      /proc1 exch cvlit def
+      /newproc proc1 length proc2 length add array def
+      newproc 0 proc1 putinterval
+      newproc proc1 length proc2 putinterval
+      newproc cvx
+    } def
+   /resmatrix matrix def
+   /findresolution
+    { 72 0 resmatrix defaultmatrix dtransform
+      /yres exch def /xres exch def
+      xres dup mul yres dup mul add sqrt
+    } def
+end
+
+/tgifsetuserscreen
+ { tgifsetuserscreendict begin
+      /spotfunction exch def
+      /screenangle exch def
+      /cellsize exch def
+
+      /m tempctm currentmatrix def
+      /rm screenangle temprot rotate def
+      /sm cellsize dup tempscale scale def
+
+      sm rm m m concatmatrix m concatmatrix pop
+
+      1 0 m dtransform /y1 exch def /x1 exch def
+
+      /veclength x1 dup mul y1 dup mul add sqrt def
+      /frequency findresolution veclength div def
+
+      /newscreenangle y1 x1 atan def
+
+      m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
+
+      {{neg} /spotfunction load concatprocs
+         /spotfunction exch def
+      } if
+
+      frequency newscreenangle /spotfunction load setscreen
+   end
+ } def
+
+/tgifsetpatterndict 18 dict def
+tgifsetpatterndict begin
+   /bitison
+    { /ybit exch def /xbit exch def
+      /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
+
+      /mask 1 7 xbit 8 mod sub bitshift def
+      bytevalue mask and 0 ne
+    } def
+end
+
+/tgifbitpatternspotfunction
+ { tgifsetpatterndict begin
+      /y exch def /x exch def
+
+      /xindex x 1 add 2 div bpside mul cvi def
+      /yindex y 1 add 2 div bpside mul cvi def
+
+      xindex yindex bitison
+       { /onbits onbits 1 add def 1 }
+       { /offbits offbits 1 add def 0 }
+       ifelse
+   end
+ } def
+
+/tgifsetpattern
+ { tgifsetpatterndict begin
+      /cellsz exch def
+      /angle exch def
+      /bwidth exch def
+      /bpside exch def
+      /bstring exch def
+
+      /onbits 0 def /offbits 0 def
+      cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
+      {} settransfer
+      offbits offbits onbits add div setgray
+   end
+ } def
+
+/tgifxpmdict 4 dict def
+/tgifbwpicstr 1 string def
+/tgifcolorpicstr 3 string def
+
+/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
+
+/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
+
+/tgifbwspot
+ { tgifxpmdict begin
+      /index exch def
+      tgifbwpicstr 0
+      pixels index 3 mul 3 getinterval aload pop
+      255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
+      cvi put
+      tgifbwpicstr
+   end
+ } def
+
+/tgifcolorspot
+ { tgifxpmdict begin
+      /index exch def
+      pixels index 3 mul 3 getinterval aload pop
+      255 mul cvi tgifcolorpicstr 2 3 -1 roll put
+      255 mul cvi tgifcolorpicstr 1 3 -1 roll put
+      255 mul cvi tgifcolorpicstr 0 3 -1 roll put
+      tgifcolorpicstr
+   end
+ } def
+
+/tgifnewcolorspot
+ { tgifxpmdict begin
+      /index exch def
+      pixels index 3 mul 3 getinterval aload pop setrgbcolor
+   end
+ } def
+
+/tgifcolordict 4 dict def
+
+/colorimage where
+ { pop }
+ { /colorimage
+   { tgifcolordict begin
+        pop pop pop pop pop
+        /ih exch def
+        /iw exch def
+        /x 0 def
+        /y 0 def
+        1 1 ih
+         { pop 1 1 iw
+            { pop currentfile
+              tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
+              x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
+              closepath fill
+              /x x 1 add def
+            } for
+           /y y 1 add def
+           /x 0 def
+         } for
+     end
+   } def
+ } ifelse
+
+/tgifpatdict 10 dict def
+
+/tgifpatbyte
+ { currentdict /retstr get exch
+   pat i cellsz mod get put
+ } def
+
+/tgifpatproc
+ { 0 1 widthlim {tgifpatbyte} for retstr
+   /i i 1 add def
+ } def
+
+/tgifpatfill
+ { tgifpatdict begin
+      /h exch def
+      /w exch def
+      /lty exch def
+      /ltx exch def
+      /cellsz exch def
+      /pat exch def
+
+      /widthlim w cellsz div cvi 1 sub def
+      /retstr widthlim 1 add string def
+      /i 0 def
+
+      ltx lty translate
+      w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
+      ltx neg lty neg translate
+   end
+ } def
+
+/pat1 <ffffffffffffffff> def
+/pat2 <0000000000000000> def
+/pat3 <8000000008000000> def
+/pat4 <8800000022000000> def
+/pat5 <8800220088002200> def
+/pat6 <8822882288228822> def
+/pat7 <aa55aa55aa55aa55> def
+/pat8 <77dd77dd77dd77dd> def
+/pat9 <77ffddff77ffddff> def
+/pat10 <77ffffff77ffffff> def
+/pat11 <7fffffff7fffffff> def
+/pat12 <8040200002040800> def
+/pat13 <40a00000040a0000> def
+/pat14 <ff888888ff888888> def
+/pat15 <ff808080ff080808> def
+/pat16 <f87422478f172271> def
+/pat17 <038448300c020101> def
+/pat18 <081c22c180010204> def
+/pat19 <8080413e080814e3> def
+/pat20 <8040201008040201> def
+/pat21 <8844221188442211> def
+/pat22 <77bbddee77bbddee> def
+/pat23 <c1e070381c0e0783> def
+/pat24 <7fbfdfeff7fbfdfe> def
+/pat25 <3e1f8fc7e3f1f87c> def
+/pat26 <0102040810204080> def
+/pat27 <1122448811224488> def
+/pat28 <eeddbb77eeddbb77> def
+/pat29 <83070e1c3870e0c1> def
+/pat30 <fefdfbf7efdfbf7f> def
+/pat31 <7cf8f1e3c78f1f3e> def
+
+/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
+
+/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
+
+/tgifreencsmalldict 12 dict def
+/tgifReEncodeSmall
+ { tgifreencsmalldict begin
+      /newcodesandnames exch def
+      /newfontname exch def
+      /basefontname exch def
+
+      /basefontdict basefontname findfont def
+      /newfont basefontdict maxlength dict def
+
+      basefontdict
+      { exch dup /FID ne
+         { dup /Encoding eq
+            { exch dup length array copy newfont 3 1 roll put }
+            { exch newfont 3 1 roll put }
+            ifelse
+         }
+         { pop pop }
+         ifelse
+      }
+      forall
+
+      newfont /FontName newfontname put
+      newcodesandnames aload pop
+
+      newcodesandnames length 2 idiv
+      { newfont /Encoding get 3 1 roll put}
+      repeat
+
+      newfontname newfont definefont pop
+   end
+ } def
+
+/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
+
+/tgifboxdict 6 dict def
+/tgifboxstroke
+ { tgifboxdict begin
+      /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+      1.415 setmiterlimit
+      w 1 eq { w setlinewidth } if
+      pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+      newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+      pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
+      pat pat1 ne pat pat2 ne and { grestore } if
+      w 1 eq { 1 setlinewidth } if
+      1 setmiterlimit
+   end
+ } def
+/tgifboxfill
+ { tgifboxdict begin
+      /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+      pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+      newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+      pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
+      pat pat1 ne pat pat2 ne and { grestore } if
+   end
+ } def
+
+end
+
+%%PageBoundingBox: 35 711 295 757
+tgifdict begin
+/tgifsavedpage save def
+
+1 setmiterlimit
+1 setlinewidth
+
+0 setgray
+
+72 0 mul 72 11.00 mul translate
+72 128 div 100 mul 100 div dup neg scale
+
+gsave
+
+% BOX
+gsave
+   1.415 setmiterlimit
+   newpath
+      66 66 moveto 130 66 lineto 130 98 lineto 66 98 lineto
+   closepath stroke
+   1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      98 66 moveto
+      98 98 lineto
+   stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      114 82 moveto
+      0 80 atan dup cos 8 mul 194 exch sub
+      exch sin 8 mul 82 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      194 82 8 3 80 0 tgifarrowtip
+   closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      146 136 moveto (roos) show
+   grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      82 82 moveto
+      82 131 lineto
+      0 48 atan dup cos 8 mul 130 exch sub
+      exch sin 8 mul 131 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      130 131 8 3 48 0 tgifarrowtip
+   closepath fill
+grestore
+
+% BOX
+gsave
+   1.415 setmiterlimit
+   newpath
+      199 66 moveto 263 66 lineto 263 98 lineto 199 98 lineto
+   closepath stroke
+   1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      231 66 moveto
+      231 98 lineto
+   stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      247 82 moveto
+      0 93 atan dup cos 8 mul 340 exch sub
+      exch sin 8 mul 82 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      340 82 8 3 93 0 tgifarrowtip
+   closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      279 136 moveto (viool) show
+   grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      215 82 moveto
+      215 131 lineto
+      0 48 atan dup cos 8 mul 263 exch sub
+      exch sin 8 mul 131 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      263 131 8 3 48 0 tgifarrowtip
+   closepath fill
+grestore
+
+% BOX
+gsave
+   1.415 setmiterlimit
+   newpath
+      342 64 moveto 406 64 lineto 406 96 lineto 342 96 lineto
+   closepath stroke
+   1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      373 64 moveto
+      373 96 lineto
+   stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      389 81 moveto
+      0 48 atan dup cos 8 mul 437 exch sub
+      exch sin 8 mul 81 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      437 81 8 3 48 0 tgifarrowtip
+   closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      421 135 moveto (boterbloem) show
+   grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      357 81 moveto
+      357 130 lineto
+      0 48 atan dup cos 8 mul 405 exch sub
+      exch sin 8 mul 130 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      405 130 8 3 48 0 tgifarrowtip
+   closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      449 87 moveto (nil) show
+   grestore
+
+grestore
+tgifsavedpage restore
+end
+%MatchingCreationDate: Wed Mar  8 14:26:58 1995
diff --git a/cons-1-nl.pdf b/cons-1-nl.pdf
new file mode 100644
index 0000000000..75df7d488f
Binary files /dev/null and b/cons-1-nl.pdf differ
diff --git a/cons-2-nl.eps b/cons-2-nl.eps
new file mode 100644
index 0000000000..2775665664
--- /dev/null
+++ b/cons-2-nl.eps
@@ -0,0 +1,600 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 15 712 331 775
+%%Title: cons-cell-diagram2
+%%CreationDate: Wed Mar  8 14:26:39 1995
+%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng ([email protected])
+
+% Copyright (C) 1995, 1997, 2001-2025 Free Software Foundation, Inc.
+%
+% This file is part of GNU Emacs.
+%
+% GNU Emacs is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% GNU Emacs is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
+
+/tgifdict 132 dict def
+tgifdict begin
+
+%
+%      Using a zero value radius for an ellipse or an arc would result
+%              in a non-invertible CTM matrix which causes problem when this
+%              when this PostScript is wrapped inside other routines, such as
+%              the multi.ps package from
+%              ftp.ucc.su.oz.au:/pub/ps_printing/multi.  You can overcome such
+%              error by uncommenting the sole line of the procedure below:
+%
+/tgif_min_radius
+ {
+%    dup 0.01 lt { pop 0.01 } if
+ } bind def
+
+/tgifellipsedict 6 dict def
+tgifellipsedict /mtrx matrix put
+
+/tgifellipse
+ { tgifellipsedict begin
+      /yrad exch def
+      /xrad exch def
+      /y exch def
+      /x exch def
+      /savematrix mtrx currentmatrix def
+      x y translate
+      xrad yrad scale
+      0 0 1 0 360 arc
+      savematrix setmatrix
+   end
+ } def
+
+/tgifarrowtipdict 8 dict def
+tgifarrowtipdict /mtrx matrix put
+
+/tgifarrowtip
+ { tgifarrowtipdict begin
+      /dy exch def
+      /dx exch def
+      /h exch def
+      /w exch def
+      /y exch def
+      /x exch def
+      /savematrix mtrx currentmatrix def
+      x y translate
+      dy dx atan rotate
+      0 0 moveto
+      w neg h lineto
+      w neg h neg lineto
+      savematrix setmatrix
+   end
+ } def
+
+/tgifarcdict 8 dict def
+tgifarcdict /mtrx matrix put
+
+/tgifarcn
+ { tgifarcdict begin
+      /endangle exch def
+      /startangle exch def
+      /yrad exch def
+      /xrad exch def
+      /y exch def
+      /x exch def
+      /savematrix mtrx currentmatrix def
+      x y translate
+      xrad yrad scale
+      0 0 1 startangle endangle arc
+      savematrix setmatrix
+   end
+ } def
+
+/tgifarc
+ { tgifarcdict begin
+      /endangle exch def
+      /startangle exch def
+      /yrad exch def
+      /xrad exch def
+      /y exch def
+      /x exch def
+      /savematrix mtrx currentmatrix def
+      x y translate
+      xrad yrad scale
+      0 0 1 startangle endangle arcn
+      savematrix setmatrix
+   end
+ } def
+
+/tgifsetuserscreendict 22 dict def
+tgifsetuserscreendict begin
+   /tempctm matrix def
+   /temprot matrix def
+   /tempscale matrix def
+
+   /concatprocs
+    { /proc2 exch cvlit def
+      /proc1 exch cvlit def
+      /newproc proc1 length proc2 length add array def
+      newproc 0 proc1 putinterval
+      newproc proc1 length proc2 putinterval
+      newproc cvx
+    } def
+   /resmatrix matrix def
+   /findresolution
+    { 72 0 resmatrix defaultmatrix dtransform
+      /yres exch def /xres exch def
+      xres dup mul yres dup mul add sqrt
+    } def
+end
+
+/tgifsetuserscreen
+ { tgifsetuserscreendict begin
+      /spotfunction exch def
+      /screenangle exch def
+      /cellsize exch def
+
+      /m tempctm currentmatrix def
+      /rm screenangle temprot rotate def
+      /sm cellsize dup tempscale scale def
+
+      sm rm m m concatmatrix m concatmatrix pop
+
+      1 0 m dtransform /y1 exch def /x1 exch def
+
+      /veclength x1 dup mul y1 dup mul add sqrt def
+      /frequency findresolution veclength div def
+
+      /newscreenangle y1 x1 atan def
+
+      m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
+
+      {{neg} /spotfunction load concatprocs
+         /spotfunction exch def
+      } if
+
+      frequency newscreenangle /spotfunction load setscreen
+   end
+ } def
+
+/tgifsetpatterndict 18 dict def
+tgifsetpatterndict begin
+   /bitison
+    { /ybit exch def /xbit exch def
+      /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
+
+      /mask 1 7 xbit 8 mod sub bitshift def
+      bytevalue mask and 0 ne
+    } def
+end
+
+/tgifbitpatternspotfunction
+ { tgifsetpatterndict begin
+      /y exch def /x exch def
+
+      /xindex x 1 add 2 div bpside mul cvi def
+      /yindex y 1 add 2 div bpside mul cvi def
+
+      xindex yindex bitison
+       { /onbits onbits 1 add def 1 }
+       { /offbits offbits 1 add def 0 }
+       ifelse
+   end
+ } def
+
+/tgifsetpattern
+ { tgifsetpatterndict begin
+      /cellsz exch def
+      /angle exch def
+      /bwidth exch def
+      /bpside exch def
+      /bstring exch def
+
+      /onbits 0 def /offbits 0 def
+      cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
+      {} settransfer
+      offbits offbits onbits add div setgray
+   end
+ } def
+
+/tgifxpmdict 4 dict def
+/tgifbwpicstr 1 string def
+/tgifcolorpicstr 3 string def
+
+/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
+
+/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
+
+/tgifbwspot
+ { tgifxpmdict begin
+      /index exch def
+      tgifbwpicstr 0
+      pixels index 3 mul 3 getinterval aload pop
+      255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
+      cvi put
+      tgifbwpicstr
+   end
+ } def
+
+/tgifcolorspot
+ { tgifxpmdict begin
+      /index exch def
+      pixels index 3 mul 3 getinterval aload pop
+      255 mul cvi tgifcolorpicstr 2 3 -1 roll put
+      255 mul cvi tgifcolorpicstr 1 3 -1 roll put
+      255 mul cvi tgifcolorpicstr 0 3 -1 roll put
+      tgifcolorpicstr
+   end
+ } def
+
+/tgifnewcolorspot
+ { tgifxpmdict begin
+      /index exch def
+      pixels index 3 mul 3 getinterval aload pop setrgbcolor
+   end
+ } def
+
+/tgifcolordict 4 dict def
+
+/colorimage where
+ { pop }
+ { /colorimage
+   { tgifcolordict begin
+        pop pop pop pop pop
+        /ih exch def
+        /iw exch def
+        /x 0 def
+        /y 0 def
+        1 1 ih
+         { pop 1 1 iw
+            { pop currentfile
+              tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
+              x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
+              closepath fill
+              /x x 1 add def
+            } for
+           /y y 1 add def
+           /x 0 def
+         } for
+     end
+   } def
+ } ifelse
+
+/tgifpatdict 10 dict def
+
+/tgifpatbyte
+ { currentdict /retstr get exch
+   pat i cellsz mod get put
+ } def
+
+/tgifpatproc
+ { 0 1 widthlim {tgifpatbyte} for retstr
+   /i i 1 add def
+ } def
+
+/tgifpatfill
+ { tgifpatdict begin
+      /h exch def
+      /w exch def
+      /lty exch def
+      /ltx exch def
+      /cellsz exch def
+      /pat exch def
+
+      /widthlim w cellsz div cvi 1 sub def
+      /retstr widthlim 1 add string def
+      /i 0 def
+
+      ltx lty translate
+      w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
+      ltx neg lty neg translate
+   end
+ } def
+
+/pat1 <ffffffffffffffff> def
+/pat2 <0000000000000000> def
+/pat3 <8000000008000000> def
+/pat4 <8800000022000000> def
+/pat5 <8800220088002200> def
+/pat6 <8822882288228822> def
+/pat7 <aa55aa55aa55aa55> def
+/pat8 <77dd77dd77dd77dd> def
+/pat9 <77ffddff77ffddff> def
+/pat10 <77ffffff77ffffff> def
+/pat11 <7fffffff7fffffff> def
+/pat12 <8040200002040800> def
+/pat13 <40a00000040a0000> def
+/pat14 <ff888888ff888888> def
+/pat15 <ff808080ff080808> def
+/pat16 <f87422478f172271> def
+/pat17 <038448300c020101> def
+/pat18 <081c22c180010204> def
+/pat19 <8080413e080814e3> def
+/pat20 <8040201008040201> def
+/pat21 <8844221188442211> def
+/pat22 <77bbddee77bbddee> def
+/pat23 <c1e070381c0e0783> def
+/pat24 <7fbfdfeff7fbfdfe> def
+/pat25 <3e1f8fc7e3f1f87c> def
+/pat26 <0102040810204080> def
+/pat27 <1122448811224488> def
+/pat28 <eeddbb77eeddbb77> def
+/pat29 <83070e1c3870e0c1> def
+/pat30 <fefdfbf7efdfbf7f> def
+/pat31 <7cf8f1e3c78f1f3e> def
+
+/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
+
+/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
+
+/tgifreencsmalldict 12 dict def
+/tgifReEncodeSmall
+ { tgifreencsmalldict begin
+      /newcodesandnames exch def
+      /newfontname exch def
+      /basefontname exch def
+
+      /basefontdict basefontname findfont def
+      /newfont basefontdict maxlength dict def
+
+      basefontdict
+      { exch dup /FID ne
+         { dup /Encoding eq
+            { exch dup length array copy newfont 3 1 roll put }
+            { exch newfont 3 1 roll put }
+            ifelse
+         }
+         { pop pop }
+         ifelse
+      }
+      forall
+
+      newfont /FontName newfontname put
+      newcodesandnames aload pop
+
+      newcodesandnames length 2 idiv
+      { newfont /Encoding get 3 1 roll put}
+      repeat
+
+      newfontname newfont definefont pop
+   end
+ } def
+
+/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
+
+/tgifboxdict 6 dict def
+/tgifboxstroke
+ { tgifboxdict begin
+      /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+      1.415 setmiterlimit
+      w 1 eq { w setlinewidth } if
+      pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+      newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+      pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
+      pat pat1 ne pat pat2 ne and { grestore } if
+      w 1 eq { 1 setlinewidth } if
+      1 setmiterlimit
+   end
+ } def
+/tgifboxfill
+ { tgifboxdict begin
+      /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+      pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+      newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+      pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
+      pat pat1 ne pat pat2 ne and { grestore } if
+   end
+ } def
+
+end
+
+%%PageBoundingBox: 15 712 331 775
+tgifdict begin
+/tgifsavedpage save def
+
+1 setmiterlimit
+1 setlinewidth
+
+0 setgray
+
+72 0 mul 72 11.00 mul translate
+72 128 div 100 mul 100 div dup neg scale
+
+gsave
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      32 47 moveto (boeket) show
+   grestore
+
+% BOX
+gsave
+   1.415 setmiterlimit
+   newpath
+      122 65 moveto 186 65 lineto 186 97 lineto 122 97 lineto
+   closepath stroke
+   1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      154 65 moveto
+      154 97 lineto
+   stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      170 81 moveto
+      0 80 atan dup cos 8 mul 250 exch sub
+      exch sin 8 mul 81 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      250 81 8 3 80 0 tgifarrowtip
+   closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      202 135 moveto (roos) show
+   grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      138 81 moveto
+      138 130 lineto
+      0 48 atan dup cos 8 mul 186 exch sub
+      exch sin 8 mul 130 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      186 130 8 3 48 0 tgifarrowtip
+   closepath fill
+grestore
+
+% BOX
+gsave
+   1.415 setmiterlimit
+   newpath
+      255 65 moveto 319 65 lineto 319 97 lineto 255 97 lineto
+   closepath stroke
+   1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      287 65 moveto
+      287 97 lineto
+   stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      303 81 moveto
+      0 93 atan dup cos 8 mul 396 exch sub
+      exch sin 8 mul 81 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      396 81 8 3 93 0 tgifarrowtip
+   closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      335 135 moveto (viool) show
+   grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      271 81 moveto
+      271 130 lineto
+      0 48 atan dup cos 8 mul 319 exch sub
+      exch sin 8 mul 130 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      319 130 8 3 48 0 tgifarrowtip
+   closepath fill
+grestore
+
+% BOX
+gsave
+   1.415 setmiterlimit
+   newpath
+      398 63 moveto 462 63 lineto 462 95 lineto 398 95 lineto
+   closepath stroke
+   1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      429 63 moveto
+      429 95 lineto
+   stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      445 80 moveto
+      0 48 atan dup cos 8 mul 493 exch sub
+      exch sin 8 mul 80 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      493 80 8 3 48 0 tgifarrowtip
+   closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      477 134 moveto (boterbloem) show
+   grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      413 80 moveto
+      413 129 lineto
+      0 48 atan dup cos 8 mul 461 exch sub
+      exch sin 8 mul 129 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      461 129 8 3 48 0 tgifarrowtip
+   closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      505 86 moveto (nil) show
+   grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      66 53 moveto
+      66 81 lineto
+      0 46 atan dup cos 8 mul 112 exch sub
+      exch sin 8 mul 81 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      112 81 8 3 46 0 tgifarrowtip
+   closepath fill
+grestore
+
+grestore
+tgifsavedpage restore
+end
+%MatchingCreationDate: Wed Mar  8 14:26:39 1995
diff --git a/cons-2-nl.pdf b/cons-2-nl.pdf
new file mode 100644
index 0000000000..dd338f812c
Binary files /dev/null and b/cons-2-nl.pdf differ
diff --git a/cons-2a-nl.eps b/cons-2a-nl.eps
new file mode 100644
index 0000000000..81e6547926
--- /dev/null
+++ b/cons-2a-nl.eps
@@ -0,0 +1,595 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 15 702 300 767
+%%Title: cons-cell-diagram2a
+%%CreationDate: Tue Mar 14 15:09:30 1995
+%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng ([email protected])
+
+% Copyright (C) 1995, 1997, 2001-2025 Free Software Foundation, Inc.
+%
+% This file is part of GNU Emacs.
+%
+% GNU Emacs is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% GNU Emacs is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
+
+/tgifdict 132 dict def
+tgifdict begin
+
+%
+%      Using a zero value radius for an ellipse or an arc would result
+%              in a non-invertible CTM matrix which causes problem when this
+%              when this PostScript is wrapped inside other routines, such as
+%              the multi.ps package from
+%              ftp.ucc.su.oz.au:/pub/ps_printing/multi.  You can overcome such
+%              error by uncommenting the sole line of the procedure below:
+%
+/tgif_min_radius
+ {
+%    dup 0.01 lt { pop 0.01 } if
+ } bind def
+
+/tgifellipsedict 6 dict def
+tgifellipsedict /mtrx matrix put
+
+/tgifellipse
+ { tgifellipsedict begin
+      /yrad exch def
+      /xrad exch def
+      /y exch def
+      /x exch def
+      /savematrix mtrx currentmatrix def
+      x y translate
+      xrad yrad scale
+      0 0 1 0 360 arc
+      savematrix setmatrix
+   end
+ } def
+
+/tgifarrowtipdict 8 dict def
+tgifarrowtipdict /mtrx matrix put
+
+/tgifarrowtip
+ { tgifarrowtipdict begin
+      /dy exch def
+      /dx exch def
+      /h exch def
+      /w exch def
+      /y exch def
+      /x exch def
+      /savematrix mtrx currentmatrix def
+      x y translate
+      dy dx atan rotate
+      0 0 moveto
+      w neg h lineto
+      w neg h neg lineto
+      savematrix setmatrix
+   end
+ } def
+
+/tgifarcdict 8 dict def
+tgifarcdict /mtrx matrix put
+
+/tgifarcn
+ { tgifarcdict begin
+      /endangle exch def
+      /startangle exch def
+      /yrad exch def
+      /xrad exch def
+      /y exch def
+      /x exch def
+      /savematrix mtrx currentmatrix def
+      x y translate
+      xrad yrad scale
+      0 0 1 startangle endangle arc
+      savematrix setmatrix
+   end
+ } def
+
+/tgifarc
+ { tgifarcdict begin
+      /endangle exch def
+      /startangle exch def
+      /yrad exch def
+      /xrad exch def
+      /y exch def
+      /x exch def
+      /savematrix mtrx currentmatrix def
+      x y translate
+      xrad yrad scale
+      0 0 1 startangle endangle arcn
+      savematrix setmatrix
+   end
+ } def
+
+/tgifsetuserscreendict 22 dict def
+tgifsetuserscreendict begin
+   /tempctm matrix def
+   /temprot matrix def
+   /tempscale matrix def
+
+   /concatprocs
+    { /proc2 exch cvlit def
+      /proc1 exch cvlit def
+      /newproc proc1 length proc2 length add array def
+      newproc 0 proc1 putinterval
+      newproc proc1 length proc2 putinterval
+      newproc cvx
+    } def
+   /resmatrix matrix def
+   /findresolution
+    { 72 0 resmatrix defaultmatrix dtransform
+      /yres exch def /xres exch def
+      xres dup mul yres dup mul add sqrt
+    } def
+end
+
+/tgifsetuserscreen
+ { tgifsetuserscreendict begin
+      /spotfunction exch def
+      /screenangle exch def
+      /cellsize exch def
+
+      /m tempctm currentmatrix def
+      /rm screenangle temprot rotate def
+      /sm cellsize dup tempscale scale def
+
+      sm rm m m concatmatrix m concatmatrix pop
+
+      1 0 m dtransform /y1 exch def /x1 exch def
+
+      /veclength x1 dup mul y1 dup mul add sqrt def
+      /frequency findresolution veclength div def
+
+      /newscreenangle y1 x1 atan def
+
+      m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
+
+      {{neg} /spotfunction load concatprocs
+         /spotfunction exch def
+      } if
+
+      frequency newscreenangle /spotfunction load setscreen
+   end
+ } def
+
+/tgifsetpatterndict 18 dict def
+tgifsetpatterndict begin
+   /bitison
+    { /ybit exch def /xbit exch def
+      /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
+
+      /mask 1 7 xbit 8 mod sub bitshift def
+      bytevalue mask and 0 ne
+    } def
+end
+
+/tgifbitpatternspotfunction
+ { tgifsetpatterndict begin
+      /y exch def /x exch def
+
+      /xindex x 1 add 2 div bpside mul cvi def
+      /yindex y 1 add 2 div bpside mul cvi def
+
+      xindex yindex bitison
+       { /onbits onbits 1 add def 1 }
+       { /offbits offbits 1 add def 0 }
+       ifelse
+   end
+ } def
+
+/tgifsetpattern
+ { tgifsetpatterndict begin
+      /cellsz exch def
+      /angle exch def
+      /bwidth exch def
+      /bpside exch def
+      /bstring exch def
+
+      /onbits 0 def /offbits 0 def
+      cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
+      {} settransfer
+      offbits offbits onbits add div setgray
+   end
+ } def
+
+/tgifxpmdict 4 dict def
+/tgifbwpicstr 1 string def
+/tgifcolorpicstr 3 string def
+
+/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
+
+/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
+
+/tgifbwspot
+ { tgifxpmdict begin
+      /index exch def
+      tgifbwpicstr 0
+      pixels index 3 mul 3 getinterval aload pop
+      255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
+      cvi put
+      tgifbwpicstr
+   end
+ } def
+
+/tgifcolorspot
+ { tgifxpmdict begin
+      /index exch def
+      pixels index 3 mul 3 getinterval aload pop
+      255 mul cvi tgifcolorpicstr 2 3 -1 roll put
+      255 mul cvi tgifcolorpicstr 1 3 -1 roll put
+      255 mul cvi tgifcolorpicstr 0 3 -1 roll put
+      tgifcolorpicstr
+   end
+ } def
+
+/tgifnewcolorspot
+ { tgifxpmdict begin
+      /index exch def
+      pixels index 3 mul 3 getinterval aload pop setrgbcolor
+   end
+ } def
+
+/tgifcolordict 4 dict def
+
+/colorimage where
+ { pop }
+ { /colorimage
+   { tgifcolordict begin
+        pop pop pop pop pop
+        /ih exch def
+        /iw exch def
+        /x 0 def
+        /y 0 def
+        1 1 ih
+         { pop 1 1 iw
+            { pop currentfile
+              tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
+              x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
+              closepath fill
+              /x x 1 add def
+            } for
+           /y y 1 add def
+           /x 0 def
+         } for
+     end
+   } def
+ } ifelse
+
+/tgifpatdict 10 dict def
+
+/tgifpatbyte
+ { currentdict /retstr get exch
+   pat i cellsz mod get put
+ } def
+
+/tgifpatproc
+ { 0 1 widthlim {tgifpatbyte} for retstr
+   /i i 1 add def
+ } def
+
+/tgifpatfill
+ { tgifpatdict begin
+      /h exch def
+      /w exch def
+      /lty exch def
+      /ltx exch def
+      /cellsz exch def
+      /pat exch def
+
+      /widthlim w cellsz div cvi 1 sub def
+      /retstr widthlim 1 add string def
+      /i 0 def
+
+      ltx lty translate
+      w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
+      ltx neg lty neg translate
+   end
+ } def
+
+/pat1 <ffffffffffffffff> def
+/pat2 <0000000000000000> def
+/pat3 <8000000008000000> def
+/pat4 <8800000022000000> def
+/pat5 <8800220088002200> def
+/pat6 <8822882288228822> def
+/pat7 <aa55aa55aa55aa55> def
+/pat8 <77dd77dd77dd77dd> def
+/pat9 <77ffddff77ffddff> def
+/pat10 <77ffffff77ffffff> def
+/pat11 <7fffffff7fffffff> def
+/pat12 <8040200002040800> def
+/pat13 <40a00000040a0000> def
+/pat14 <ff888888ff888888> def
+/pat15 <ff808080ff080808> def
+/pat16 <f87422478f172271> def
+/pat17 <038448300c020101> def
+/pat18 <081c22c180010204> def
+/pat19 <8080413e080814e3> def
+/pat20 <8040201008040201> def
+/pat21 <8844221188442211> def
+/pat22 <77bbddee77bbddee> def
+/pat23 <c1e070381c0e0783> def
+/pat24 <7fbfdfeff7fbfdfe> def
+/pat25 <3e1f8fc7e3f1f87c> def
+/pat26 <0102040810204080> def
+/pat27 <1122448811224488> def
+/pat28 <eeddbb77eeddbb77> def
+/pat29 <83070e1c3870e0c1> def
+/pat30 <fefdfbf7efdfbf7f> def
+/pat31 <7cf8f1e3c78f1f3e> def
+
+/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
+
+/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
+
+/tgifreencsmalldict 12 dict def
+/tgifReEncodeSmall
+ { tgifreencsmalldict begin
+      /newcodesandnames exch def
+      /newfontname exch def
+      /basefontname exch def
+
+      /basefontdict basefontname findfont def
+      /newfont basefontdict maxlength dict def
+
+      basefontdict
+      { exch dup /FID ne
+         { dup /Encoding eq
+            { exch dup length array copy newfont 3 1 roll put }
+            { exch newfont 3 1 roll put }
+            ifelse
+         }
+         { pop pop }
+         ifelse
+      }
+      forall
+
+      newfont /FontName newfontname put
+      newcodesandnames aload pop
+
+      newcodesandnames length 2 idiv
+      { newfont /Encoding get 3 1 roll put}
+      repeat
+
+      newfontname newfont definefont pop
+   end
+ } def
+
+/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
+
+/tgifboxdict 6 dict def
+/tgifboxstroke
+ { tgifboxdict begin
+      /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+      1.415 setmiterlimit
+      w 1 eq { w setlinewidth } if
+      pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+      newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+      pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
+      pat pat1 ne pat pat2 ne and { grestore } if
+      w 1 eq { 1 setlinewidth } if
+      1 setmiterlimit
+   end
+ } def
+/tgifboxfill
+ { tgifboxdict begin
+      /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+      pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+      newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+      pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
+      pat pat1 ne pat pat2 ne and { grestore } if
+   end
+ } def
+
+end
+
+%%PageBoundingBox: 15 702 300 767
+tgifdict begin
+/tgifsavedpage save def
+
+1 setmiterlimit
+1 setlinewidth
+
+0 setgray
+
+72 0 mul 72 11.00 mul translate
+72 128 div 100 mul 100 div dup neg scale
+
+gsave
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      32 62 moveto (boeket) show
+   grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      64 80 moveto
+      64 120 lineto
+      0 49 atan dup cos 8 mul 113 exch sub
+      exch sin 8 mul 120 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      113 120 8 3 49 0 tgifarrowtip
+   closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      128 110 moveto (car) show
+   grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      128 142 moveto (roos) show
+   grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      192 110 moveto (cdr) show
+   grestore
+
+% OVAL
+gsave
+   newpath 207 124 4 4 tgifellipse stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      217 123 moveto
+      0 38 atan dup cos 8 mul 255 exch sub
+      exch sin 8 mul 123 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      255 123 8 3 38 0 tgifarrowtip
+   closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      268 111 moveto (car) show
+   grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      264 143 moveto (viool) show
+   grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      332 111 moveto (cdr) show
+   grestore
+
+% OVAL
+gsave
+   newpath 347 125 4 4 tgifellipse stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      357 124 moveto
+      0 38 atan dup cos 8 mul 395 exch sub
+      exch sin 8 mul 124 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      395 124 8 3 38 0 tgifarrowtip
+   closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      408 112 moveto (car) show
+   grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      408 136 moveto (boter-) show
+
+      408 153 moveto (bloem) show
+   grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      496 113 moveto (cdr) show
+   grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      495 137 moveto (nil) show
+   grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      178 86 moveto
+      178 157 lineto
+   stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      485 84 moveto
+      485 157 lineto
+   stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      327 85 moveto
+      327 157 lineto
+   stroke
+grestore
+
+% BOX
+gsave
+   1.415 setmiterlimit
+   newpath
+      120 86 moveto 234 86 lineto 234 157 lineto 120 157 lineto
+   closepath stroke
+   1 setmiterlimit
+grestore
+
+% BOX
+gsave
+   1.415 setmiterlimit
+   newpath
+      257 85 moveto 371 85 lineto 371 157 lineto 257 157 lineto
+   closepath stroke
+   1 setmiterlimit
+grestore
+
+% BOX
+gsave
+   1.415 setmiterlimit
+   newpath
+      397 84 moveto 531 84 lineto 531 157 lineto 397 157 lineto
+   closepath stroke
+   1 setmiterlimit
+grestore
+
+grestore
+tgifsavedpage restore
+end
+%MatchingCreationDate: Tue Mar 14 15:09:30 1995
diff --git a/cons-2a-nl.pdf b/cons-2a-nl.pdf
new file mode 100644
index 0000000000..38e2f1b724
Binary files /dev/null and b/cons-2a-nl.pdf differ
diff --git a/cons-3-nl.eps b/cons-3-nl.eps
new file mode 100644
index 0000000000..22b6de5861
--- /dev/null
+++ b/cons-3-nl.eps
@@ -0,0 +1,624 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: -1 691 334 757
+%%Title: cons-cell-diagram3
+%%CreationDate: Wed Mar  8 14:25:41 1995
+%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng ([email protected])
+
+% Copyright (C) 1995, 1997, 2001-2025 Free Software Foundation, Inc.
+%
+% This file is part of GNU Emacs.
+%
+% GNU Emacs is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% GNU Emacs is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
+
+/tgifdict 132 dict def
+tgifdict begin
+
+%
+%      Using a zero value radius for an ellipse or an arc would result
+%              in a non-invertible CTM matrix which causes problem when this
+%              when this PostScript is wrapped inside other routines, such as
+%              the multi.ps package from
+%              ftp.ucc.su.oz.au:/pub/ps_printing/multi.  You can overcome such
+%              error by uncommenting the sole line of the procedure below:
+%
+/tgif_min_radius
+ {
+%    dup 0.01 lt { pop 0.01 } if
+ } bind def
+
+/tgifellipsedict 6 dict def
+tgifellipsedict /mtrx matrix put
+
+/tgifellipse
+ { tgifellipsedict begin
+      /yrad exch def
+      /xrad exch def
+      /y exch def
+      /x exch def
+      /savematrix mtrx currentmatrix def
+      x y translate
+      xrad yrad scale
+      0 0 1 0 360 arc
+      savematrix setmatrix
+   end
+ } def
+
+/tgifarrowtipdict 8 dict def
+tgifarrowtipdict /mtrx matrix put
+
+/tgifarrowtip
+ { tgifarrowtipdict begin
+      /dy exch def
+      /dx exch def
+      /h exch def
+      /w exch def
+      /y exch def
+      /x exch def
+      /savematrix mtrx currentmatrix def
+      x y translate
+      dy dx atan rotate
+      0 0 moveto
+      w neg h lineto
+      w neg h neg lineto
+      savematrix setmatrix
+   end
+ } def
+
+/tgifarcdict 8 dict def
+tgifarcdict /mtrx matrix put
+
+/tgifarcn
+ { tgifarcdict begin
+      /endangle exch def
+      /startangle exch def
+      /yrad exch def
+      /xrad exch def
+      /y exch def
+      /x exch def
+      /savematrix mtrx currentmatrix def
+      x y translate
+      xrad yrad scale
+      0 0 1 startangle endangle arc
+      savematrix setmatrix
+   end
+ } def
+
+/tgifarc
+ { tgifarcdict begin
+      /endangle exch def
+      /startangle exch def
+      /yrad exch def
+      /xrad exch def
+      /y exch def
+      /x exch def
+      /savematrix mtrx currentmatrix def
+      x y translate
+      xrad yrad scale
+      0 0 1 startangle endangle arcn
+      savematrix setmatrix
+   end
+ } def
+
+/tgifsetuserscreendict 22 dict def
+tgifsetuserscreendict begin
+   /tempctm matrix def
+   /temprot matrix def
+   /tempscale matrix def
+
+   /concatprocs
+    { /proc2 exch cvlit def
+      /proc1 exch cvlit def
+      /newproc proc1 length proc2 length add array def
+      newproc 0 proc1 putinterval
+      newproc proc1 length proc2 putinterval
+      newproc cvx
+    } def
+   /resmatrix matrix def
+   /findresolution
+    { 72 0 resmatrix defaultmatrix dtransform
+      /yres exch def /xres exch def
+      xres dup mul yres dup mul add sqrt
+    } def
+end
+
+/tgifsetuserscreen
+ { tgifsetuserscreendict begin
+      /spotfunction exch def
+      /screenangle exch def
+      /cellsize exch def
+
+      /m tempctm currentmatrix def
+      /rm screenangle temprot rotate def
+      /sm cellsize dup tempscale scale def
+
+      sm rm m m concatmatrix m concatmatrix pop
+
+      1 0 m dtransform /y1 exch def /x1 exch def
+
+      /veclength x1 dup mul y1 dup mul add sqrt def
+      /frequency findresolution veclength div def
+
+      /newscreenangle y1 x1 atan def
+
+      m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
+
+      {{neg} /spotfunction load concatprocs
+         /spotfunction exch def
+      } if
+
+      frequency newscreenangle /spotfunction load setscreen
+   end
+ } def
+
+/tgifsetpatterndict 18 dict def
+tgifsetpatterndict begin
+   /bitison
+    { /ybit exch def /xbit exch def
+      /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
+
+      /mask 1 7 xbit 8 mod sub bitshift def
+      bytevalue mask and 0 ne
+    } def
+end
+
+/tgifbitpatternspotfunction
+ { tgifsetpatterndict begin
+      /y exch def /x exch def
+
+      /xindex x 1 add 2 div bpside mul cvi def
+      /yindex y 1 add 2 div bpside mul cvi def
+
+      xindex yindex bitison
+       { /onbits onbits 1 add def 1 }
+       { /offbits offbits 1 add def 0 }
+       ifelse
+   end
+ } def
+
+/tgifsetpattern
+ { tgifsetpatterndict begin
+      /cellsz exch def
+      /angle exch def
+      /bwidth exch def
+      /bpside exch def
+      /bstring exch def
+
+      /onbits 0 def /offbits 0 def
+      cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
+      {} settransfer
+      offbits offbits onbits add div setgray
+   end
+ } def
+
+/tgifxpmdict 4 dict def
+/tgifbwpicstr 1 string def
+/tgifcolorpicstr 3 string def
+
+/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
+
+/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
+
+/tgifbwspot
+ { tgifxpmdict begin
+      /index exch def
+      tgifbwpicstr 0
+      pixels index 3 mul 3 getinterval aload pop
+      255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
+      cvi put
+      tgifbwpicstr
+   end
+ } def
+
+/tgifcolorspot
+ { tgifxpmdict begin
+      /index exch def
+      pixels index 3 mul 3 getinterval aload pop
+      255 mul cvi tgifcolorpicstr 2 3 -1 roll put
+      255 mul cvi tgifcolorpicstr 1 3 -1 roll put
+      255 mul cvi tgifcolorpicstr 0 3 -1 roll put
+      tgifcolorpicstr
+   end
+ } def
+
+/tgifnewcolorspot
+ { tgifxpmdict begin
+      /index exch def
+      pixels index 3 mul 3 getinterval aload pop setrgbcolor
+   end
+ } def
+
+/tgifcolordict 4 dict def
+
+/colorimage where
+ { pop }
+ { /colorimage
+   { tgifcolordict begin
+        pop pop pop pop pop
+        /ih exch def
+        /iw exch def
+        /x 0 def
+        /y 0 def
+        1 1 ih
+         { pop 1 1 iw
+            { pop currentfile
+              tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
+              x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
+              closepath fill
+              /x x 1 add def
+            } for
+           /y y 1 add def
+           /x 0 def
+         } for
+     end
+   } def
+ } ifelse
+
+/tgifpatdict 10 dict def
+
+/tgifpatbyte
+ { currentdict /retstr get exch
+   pat i cellsz mod get put
+ } def
+
+/tgifpatproc
+ { 0 1 widthlim {tgifpatbyte} for retstr
+   /i i 1 add def
+ } def
+
+/tgifpatfill
+ { tgifpatdict begin
+      /h exch def
+      /w exch def
+      /lty exch def
+      /ltx exch def
+      /cellsz exch def
+      /pat exch def
+
+      /widthlim w cellsz div cvi 1 sub def
+      /retstr widthlim 1 add string def
+      /i 0 def
+
+      ltx lty translate
+      w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
+      ltx neg lty neg translate
+   end
+ } def
+
+/pat1 <ffffffffffffffff> def
+/pat2 <0000000000000000> def
+/pat3 <8000000008000000> def
+/pat4 <8800000022000000> def
+/pat5 <8800220088002200> def
+/pat6 <8822882288228822> def
+/pat7 <aa55aa55aa55aa55> def
+/pat8 <77dd77dd77dd77dd> def
+/pat9 <77ffddff77ffddff> def
+/pat10 <77ffffff77ffffff> def
+/pat11 <7fffffff7fffffff> def
+/pat12 <8040200002040800> def
+/pat13 <40a00000040a0000> def
+/pat14 <ff888888ff888888> def
+/pat15 <ff808080ff080808> def
+/pat16 <f87422478f172271> def
+/pat17 <038448300c020101> def
+/pat18 <081c22c180010204> def
+/pat19 <8080413e080814e3> def
+/pat20 <8040201008040201> def
+/pat21 <8844221188442211> def
+/pat22 <77bbddee77bbddee> def
+/pat23 <c1e070381c0e0783> def
+/pat24 <7fbfdfeff7fbfdfe> def
+/pat25 <3e1f8fc7e3f1f87c> def
+/pat26 <0102040810204080> def
+/pat27 <1122448811224488> def
+/pat28 <eeddbb77eeddbb77> def
+/pat29 <83070e1c3870e0c1> def
+/pat30 <fefdfbf7efdfbf7f> def
+/pat31 <7cf8f1e3c78f1f3e> def
+
+/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
+
+/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
+
+/tgifreencsmalldict 12 dict def
+/tgifReEncodeSmall
+ { tgifreencsmalldict begin
+      /newcodesandnames exch def
+      /newfontname exch def
+      /basefontname exch def
+
+      /basefontdict basefontname findfont def
+      /newfont basefontdict maxlength dict def
+
+      basefontdict
+      { exch dup /FID ne
+         { dup /Encoding eq
+            { exch dup length array copy newfont 3 1 roll put }
+            { exch newfont 3 1 roll put }
+            ifelse
+         }
+         { pop pop }
+         ifelse
+      }
+      forall
+
+      newfont /FontName newfontname put
+      newcodesandnames aload pop
+
+      newcodesandnames length 2 idiv
+      { newfont /Encoding get 3 1 roll put}
+      repeat
+
+      newfontname newfont definefont pop
+   end
+ } def
+
+/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
+
+/tgifboxdict 6 dict def
+/tgifboxstroke
+ { tgifboxdict begin
+      /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+      1.415 setmiterlimit
+      w 1 eq { w setlinewidth } if
+      pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+      newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+      pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
+      pat pat1 ne pat pat2 ne and { grestore } if
+      w 1 eq { 1 setlinewidth } if
+      1 setmiterlimit
+   end
+ } def
+/tgifboxfill
+ { tgifboxdict begin
+      /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+      pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+      newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+      pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
+      pat pat1 ne pat pat2 ne and { grestore } if
+   end
+ } def
+
+end
+
+%%PageBoundingBox: -1 691 334 757
+tgifdict begin
+/tgifsavedpage save def
+
+1 setmiterlimit
+1 setlinewidth
+
+0 setgray
+
+72 0 mul 72 11.00 mul translate
+72 128 div 100 mul 100 div dup neg scale
+
+gsave
+
+% BOX
+gsave
+   1.415 setmiterlimit
+   newpath
+      128 102 moveto 192 102 lineto 192 134 lineto 128 134 lineto
+   closepath stroke
+   1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      160 102 moveto
+      160 134 lineto
+   stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      176 124 moveto
+      0 80 atan dup cos 8 mul 256 exch sub
+      exch sin 8 mul 124 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      256 124 8 3 80 0 tgifarrowtip
+   closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      208 172 moveto (roos) show
+   grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      144 118 moveto
+      144 167 lineto
+      0 48 atan dup cos 8 mul 192 exch sub
+      exch sin 8 mul 167 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      192 167 8 3 48 0 tgifarrowtip
+   closepath fill
+grestore
+
+% BOX
+gsave
+   1.415 setmiterlimit
+   newpath
+      261 102 moveto 325 102 lineto 325 134 lineto 261 134 lineto
+   closepath stroke
+   1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      293 102 moveto
+      293 134 lineto
+   stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      309 118 moveto
+      0 93 atan dup cos 8 mul 402 exch sub
+      exch sin 8 mul 118 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      402 118 8 3 93 0 tgifarrowtip
+   closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      341 172 moveto (viool) show
+   grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      277 118 moveto
+      277 167 lineto
+      0 48 atan dup cos 8 mul 325 exch sub
+      exch sin 8 mul 167 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      325 167 8 3 48 0 tgifarrowtip
+   closepath fill
+grestore
+
+% BOX
+gsave
+   1.415 setmiterlimit
+   newpath
+      404 100 moveto 468 100 lineto 468 132 lineto 404 132 lineto
+   closepath stroke
+   1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      435 100 moveto
+      435 132 lineto
+   stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      451 117 moveto
+      0 48 atan dup cos 8 mul 499 exch sub
+      exch sin 8 mul 117 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      499 117 8 3 48 0 tgifarrowtip
+   closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      483 171 moveto (boterbloem) show
+   grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      419 117 moveto
+      419 166 lineto
+      0 48 atan dup cos 8 mul 467 exch sub
+      exch sin 8 mul 166 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      467 166 8 3 48 0 tgifarrowtip
+   closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      511 123 moveto (nil) show
+   grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      131 80 moveto (bloemen) show
+   grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      210 75 moveto
+      237 75 lineto
+      237 113 lineto
+      0 18 atan dup cos 8 mul 255 exch sub
+      exch sin 8 mul 113 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      255 113 8 3 18 0 tgifarrowtip
+   closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      2 80 moveto (boeket) show
+   grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      81 77 moveto
+      108 77 lineto
+      108 115 lineto
+      0 18 atan dup cos 8 mul 126 exch sub
+      exch sin 8 mul 115 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      126 115 8 3 18 0 tgifarrowtip
+   closepath fill
+grestore
+
+grestore
+tgifsavedpage restore
+end
+%MatchingCreationDate: Wed Mar  8 14:25:41 1995
diff --git a/cons-3-nl.pdf b/cons-3-nl.pdf
new file mode 100644
index 0000000000..03f87baeb1
Binary files /dev/null and b/cons-3-nl.pdf differ
diff --git a/cons-4-nl.eps b/cons-4-nl.eps
new file mode 100644
index 0000000000..32894e0818
--- /dev/null
+++ b/cons-4-nl.eps
@@ -0,0 +1,677 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 6 681 365 758
+%%Title: cons-cell-diagram4
+%%CreationDate: Wed Mar  8 14:25:06 1995
+%%Creator: Tgif-2.16-p4 by William Chia-Wei Cheng ([email protected])
+
+% Copyright (C) 1995, 1997, 2001-2025 Free Software Foundation, Inc.
+%
+% This file is part of GNU Emacs.
+%
+% GNU Emacs is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% GNU Emacs is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
+
+/tgifdict 132 dict def
+tgifdict begin
+
+%
+%      Using a zero value radius for an ellipse or an arc would result
+%              in a non-invertible CTM matrix which causes problem when this
+%              when this PostScript is wrapped inside other routines, such as
+%              the multi.ps package from
+%              ftp.ucc.su.oz.au:/pub/ps_printing/multi.  You can overcome such
+%              error by uncommenting the sole line of the procedure below:
+%
+/tgif_min_radius
+ {
+%    dup 0.01 lt { pop 0.01 } if
+ } bind def
+
+/tgifellipsedict 6 dict def
+tgifellipsedict /mtrx matrix put
+
+/tgifellipse
+ { tgifellipsedict begin
+      /yrad exch def
+      /xrad exch def
+      /y exch def
+      /x exch def
+      /savematrix mtrx currentmatrix def
+      x y translate
+      xrad yrad scale
+      0 0 1 0 360 arc
+      savematrix setmatrix
+   end
+ } def
+
+/tgifarrowtipdict 8 dict def
+tgifarrowtipdict /mtrx matrix put
+
+/tgifarrowtip
+ { tgifarrowtipdict begin
+      /dy exch def
+      /dx exch def
+      /h exch def
+      /w exch def
+      /y exch def
+      /x exch def
+      /savematrix mtrx currentmatrix def
+      x y translate
+      dy dx atan rotate
+      0 0 moveto
+      w neg h lineto
+      w neg h neg lineto
+      savematrix setmatrix
+   end
+ } def
+
+/tgifarcdict 8 dict def
+tgifarcdict /mtrx matrix put
+
+/tgifarcn
+ { tgifarcdict begin
+      /endangle exch def
+      /startangle exch def
+      /yrad exch def
+      /xrad exch def
+      /y exch def
+      /x exch def
+      /savematrix mtrx currentmatrix def
+      x y translate
+      xrad yrad scale
+      0 0 1 startangle endangle arc
+      savematrix setmatrix
+   end
+ } def
+
+/tgifarc
+ { tgifarcdict begin
+      /endangle exch def
+      /startangle exch def
+      /yrad exch def
+      /xrad exch def
+      /y exch def
+      /x exch def
+      /savematrix mtrx currentmatrix def
+      x y translate
+      xrad yrad scale
+      0 0 1 startangle endangle arcn
+      savematrix setmatrix
+   end
+ } def
+
+/tgifsetuserscreendict 22 dict def
+tgifsetuserscreendict begin
+   /tempctm matrix def
+   /temprot matrix def
+   /tempscale matrix def
+
+   /concatprocs
+    { /proc2 exch cvlit def
+      /proc1 exch cvlit def
+      /newproc proc1 length proc2 length add array def
+      newproc 0 proc1 putinterval
+      newproc proc1 length proc2 putinterval
+      newproc cvx
+    } def
+   /resmatrix matrix def
+   /findresolution
+    { 72 0 resmatrix defaultmatrix dtransform
+      /yres exch def /xres exch def
+      xres dup mul yres dup mul add sqrt
+    } def
+end
+
+/tgifsetuserscreen
+ { tgifsetuserscreendict begin
+      /spotfunction exch def
+      /screenangle exch def
+      /cellsize exch def
+
+      /m tempctm currentmatrix def
+      /rm screenangle temprot rotate def
+      /sm cellsize dup tempscale scale def
+
+      sm rm m m concatmatrix m concatmatrix pop
+
+      1 0 m dtransform /y1 exch def /x1 exch def
+
+      /veclength x1 dup mul y1 dup mul add sqrt def
+      /frequency findresolution veclength div def
+
+      /newscreenangle y1 x1 atan def
+
+      m 2 get m 1 get mul m 0 get m 3 get mul sub 0 gt
+
+      {{neg} /spotfunction load concatprocs
+         /spotfunction exch def
+      } if
+
+      frequency newscreenangle /spotfunction load setscreen
+   end
+ } def
+
+/tgifsetpatterndict 18 dict def
+tgifsetpatterndict begin
+   /bitison
+    { /ybit exch def /xbit exch def
+      /bytevalue bstring ybit bwidth mul xbit 8 idiv add get def
+
+      /mask 1 7 xbit 8 mod sub bitshift def
+      bytevalue mask and 0 ne
+    } def
+end
+
+/tgifbitpatternspotfunction
+ { tgifsetpatterndict begin
+      /y exch def /x exch def
+
+      /xindex x 1 add 2 div bpside mul cvi def
+      /yindex y 1 add 2 div bpside mul cvi def
+
+      xindex yindex bitison
+       { /onbits onbits 1 add def 1 }
+       { /offbits offbits 1 add def 0 }
+       ifelse
+   end
+ } def
+
+/tgifsetpattern
+ { tgifsetpatterndict begin
+      /cellsz exch def
+      /angle exch def
+      /bwidth exch def
+      /bpside exch def
+      /bstring exch def
+
+      /onbits 0 def /offbits 0 def
+      cellsz angle /tgifbitpatternspotfunction load tgifsetuserscreen
+      {} settransfer
+      offbits offbits onbits add div setgray
+   end
+ } def
+
+/tgifxpmdict 4 dict def
+/tgifbwpicstr 1 string def
+/tgifcolorpicstr 3 string def
+
+/tgifsetpixels { tgifxpmdict begin /pixels exch def end } def
+
+/tgifsetpix { tgifxpmdict begin pixels 3 1 roll putinterval end } def
+
+/tgifbwspot
+ { tgifxpmdict begin
+      /index exch def
+      tgifbwpicstr 0
+      pixels index 3 mul 3 getinterval aload pop
+      255 mul .114 mul exch 255 mul .587 mul add exch 255 mul .299 mul add
+      cvi put
+      tgifbwpicstr
+   end
+ } def
+
+/tgifcolorspot
+ { tgifxpmdict begin
+      /index exch def
+      pixels index 3 mul 3 getinterval aload pop
+      255 mul cvi tgifcolorpicstr 2 3 -1 roll put
+      255 mul cvi tgifcolorpicstr 1 3 -1 roll put
+      255 mul cvi tgifcolorpicstr 0 3 -1 roll put
+      tgifcolorpicstr
+   end
+ } def
+
+/tgifnewcolorspot
+ { tgifxpmdict begin
+      /index exch def
+      pixels index 3 mul 3 getinterval aload pop setrgbcolor
+   end
+ } def
+
+/tgifcolordict 4 dict def
+
+/colorimage where
+ { pop }
+ { /colorimage
+   { tgifcolordict begin
+        pop pop pop pop pop
+        /ih exch def
+        /iw exch def
+        /x 0 def
+        /y 0 def
+        1 1 ih
+         { pop 1 1 iw
+            { pop currentfile
+              tgifbwpicstr readhexstring pop 0 get tgifnewcolorspot
+              x y moveto 1 0 rlineto 0 1 rlineto -1 0 rlineto
+              closepath fill
+              /x x 1 add def
+            } for
+           /y y 1 add def
+           /x 0 def
+         } for
+     end
+   } def
+ } ifelse
+
+/tgifpatdict 10 dict def
+
+/tgifpatbyte
+ { currentdict /retstr get exch
+   pat i cellsz mod get put
+ } def
+
+/tgifpatproc
+ { 0 1 widthlim {tgifpatbyte} for retstr
+   /i i 1 add def
+ } def
+
+/tgifpatfill
+ { tgifpatdict begin
+      /h exch def
+      /w exch def
+      /lty exch def
+      /ltx exch def
+      /cellsz exch def
+      /pat exch def
+
+      /widthlim w cellsz div cvi 1 sub def
+      /retstr widthlim 1 add string def
+      /i 0 def
+
+      ltx lty translate
+      w h true [1 0 0 1 0 0] {tgifpatproc} imagemask
+      ltx neg lty neg translate
+   end
+ } def
+
+/pat1 <ffffffffffffffff> def
+/pat2 <0000000000000000> def
+/pat3 <8000000008000000> def
+/pat4 <8800000022000000> def
+/pat5 <8800220088002200> def
+/pat6 <8822882288228822> def
+/pat7 <aa55aa55aa55aa55> def
+/pat8 <77dd77dd77dd77dd> def
+/pat9 <77ffddff77ffddff> def
+/pat10 <77ffffff77ffffff> def
+/pat11 <7fffffff7fffffff> def
+/pat12 <8040200002040800> def
+/pat13 <40a00000040a0000> def
+/pat14 <ff888888ff888888> def
+/pat15 <ff808080ff080808> def
+/pat16 <f87422478f172271> def
+/pat17 <038448300c020101> def
+/pat18 <081c22c180010204> def
+/pat19 <8080413e080814e3> def
+/pat20 <8040201008040201> def
+/pat21 <8844221188442211> def
+/pat22 <77bbddee77bbddee> def
+/pat23 <c1e070381c0e0783> def
+/pat24 <7fbfdfeff7fbfdfe> def
+/pat25 <3e1f8fc7e3f1f87c> def
+/pat26 <0102040810204080> def
+/pat27 <1122448811224488> def
+/pat28 <eeddbb77eeddbb77> def
+/pat29 <83070e1c3870e0c1> def
+/pat30 <fefdfbf7efdfbf7f> def
+/pat31 <7cf8f1e3c78f1f3e> def
+
+/tgifcentertext { dup stringwidth pop 2 div neg 0 rmoveto } def
+
+/tgifrighttext { dup stringwidth pop neg 0 rmoveto } def
+
+/tgifreencsmalldict 12 dict def
+/tgifReEncodeSmall
+ { tgifreencsmalldict begin
+      /newcodesandnames exch def
+      /newfontname exch def
+      /basefontname exch def
+
+      /basefontdict basefontname findfont def
+      /newfont basefontdict maxlength dict def
+
+      basefontdict
+      { exch dup /FID ne
+         { dup /Encoding eq
+            { exch dup length array copy newfont 3 1 roll put }
+            { exch newfont 3 1 roll put }
+            ifelse
+         }
+         { pop pop }
+         ifelse
+      }
+      forall
+
+      newfont /FontName newfontname put
+      newcodesandnames aload pop
+
+      newcodesandnames length 2 idiv
+      { newfont /Encoding get 3 1 roll put}
+      repeat
+
+      newfontname newfont definefont pop
+   end
+ } def
+
+/tgifgray { 8 1 0 72 300 32 div div tgifsetpattern } bind def
+
+/tgifboxdict 6 dict def
+/tgifboxstroke
+ { tgifboxdict begin
+      /pat def /w def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+      1.415 setmiterlimit
+      w 1 eq { w setlinewidth } if
+      pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+      newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+      pat pat2 eq { 1 setgray stroke 0 setgray } { stroke } ifelse
+      pat pat1 ne pat pat2 ne and { grestore } if
+      w 1 eq { 1 setlinewidth } if
+      1 setmiterlimit
+   end
+ } def
+/tgifboxfill
+ { tgifboxdict begin
+      /pat def /y2 exch def /x2 exch def /y1 exch def /x1 exch def
+      pat pat1 ne pat pat2 ne and { gsave pat tgifgray } if
+      newpath x1 y1 moveto x2 y1 lineto x2 y2 lineto x1 y2 lineto closepath
+      pat pat2 eq { 1 setgray fill 0 setgray } { fill } ifelse
+      pat pat1 ne pat pat2 ne and { grestore } if
+   end
+ } def
+
+end
+
+%%PageBoundingBox: 6 681 365 758
+tgifdict begin
+/tgifsavedpage save def
+
+1 setmiterlimit
+1 setlinewidth
+
+0 setgray
+
+72 0 mul 72 11.00 mul translate
+72 128 div 100 mul 100 div dup neg scale
+
+gsave
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      274 102 moveto
+      274 134 lineto
+   stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      289 122 moveto
+      0 56 atan dup cos 8 mul 345 exch sub
+      exch sin 8 mul 122 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      345 122 8 3 56 0 tgifarrowtip
+   closepath fill
+grestore
+
+% BOX
+gsave
+   1.415 setmiterlimit
+   newpath
+      350 100 moveto 414 100 lineto 414 132 lineto 350 132 lineto
+   closepath stroke
+   1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      382 100 moveto
+      382 132 lineto
+   stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      397 114 moveto
+      0 59 atan dup cos 8 mul 456 exch sub
+      exch sin 8 mul 114 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      456 114 8 3 59 0 tgifarrowtip
+   closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      430 170 moveto (viool) show
+   grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      366 116 moveto
+      366 165 lineto
+      0 48 atan dup cos 8 mul 414 exch sub
+      exch sin 8 mul 165 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      414 165 8 3 48 0 tgifarrowtip
+   closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      219 78 moveto (bloemen) show
+   grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      298 73 moveto
+      325 73 lineto
+      325 111 lineto
+      0 18 atan dup cos 8 mul 343 exch sub
+      exch sin 8 mul 111 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      343 111 8 3 18 0 tgifarrowtip
+   closepath fill
+grestore
+
+% BOX
+gsave
+   1.415 setmiterlimit
+   newpath
+      459 95 moveto 523 95 lineto 523 127 lineto 459 127 lineto
+   closepath stroke
+   1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      490 95 moveto
+      490 127 lineto
+   stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      506 112 moveto
+      0 48 atan dup cos 8 mul 554 exch sub
+      exch sin 8 mul 112 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      554 112 8 3 48 0 tgifarrowtip
+   closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      566 118 moveto (nil) show
+   grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      538 151 moveto (boterbloem) show
+   grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      474 109 moveto
+      474 146 lineto
+      0 48 atan dup cos 8 mul 522 exch sub
+      exch sin 8 mul 146 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      522 146 8 3 48 0 tgifarrowtip
+   closepath fill
+grestore
+
+% BOX
+gsave
+   1.415 setmiterlimit
+   newpath
+      244 102 moveto 308 102 lineto 308 134 lineto 244 134 lineto
+   closepath stroke
+   1 setmiterlimit
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      324 189 moveto (roos) show
+   grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      260 117 moveto
+      260 184 lineto
+      0 48 atan dup cos 8 mul 308 exch sub
+      exch sin 8 mul 184 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      308 184 8 3 48 0 tgifarrowtip
+   closepath fill
+grestore
+
+% BOX
+gsave
+   1.415 setmiterlimit
+   newpath
+      146 101 moveto 210 101 lineto 210 133 lineto 146 133 lineto
+   closepath stroke
+   1 setmiterlimit
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      177 101 moveto
+      177 133 lineto
+   stroke
+grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      193 118 moveto
+      0 48 atan dup cos 8 mul 241 exch sub
+      exch sin 8 mul 118 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      241 118 8 3 48 0 tgifarrowtip
+   closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      187 178 moveto (lelie) show
+   grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      163 118 moveto
+      163 171 lineto
+      0 18 atan dup cos 8 mul 181 exch sub
+      exch sin 8 mul 171 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      181 171 8 3 18 0 tgifarrowtip
+   closepath fill
+grestore
+
+% TEXT
+0 setgray
+/Courier findfont [17 0 0 -17 0 0] makefont setfont
+   gsave
+      16 78 moveto (boeket) show
+   grestore
+
+% POLY/OPEN-SPLINE
+gsave
+   newpath
+      95 73 moveto
+      122 73 lineto
+      122 111 lineto
+      0 18 atan dup cos 8 mul 140 exch sub
+      exch sin 8 mul 111 exch sub lineto
+   stroke
+grestore
+gsave
+   newpath
+      140 111 8 3 18 0 tgifarrowtip
+   closepath fill
+grestore
+
+grestore
+tgifsavedpage restore
+end
+%MatchingCreationDate: Wed Mar  8 14:25:06 1995
diff --git a/cons-4-nl.pdf b/cons-4-nl.pdf
new file mode 100644
index 0000000000..acd75ea12d
Binary files /dev/null and b/cons-4-nl.pdf differ
diff --git a/drawers-nl.eps b/drawers-nl.eps
new file mode 100644
index 0000000000..c37c6110a5
--- /dev/null
+++ b/drawers-nl.eps
@@ -0,0 +1,510 @@
+%!PS-Adobe-3.0 EPSF-3.0
+%%BoundingBox: 34 577 324 778
+%%Title: chest-of-drawers-diagram-new
+%%CreationDate: Fri Sep 14 17:40:57 2001
+%%Creator: Tgif-4.1.35 by William Chia-Wei Cheng ([email protected])
+%%ProducedBy: (unknown)
+%%Pages: 1
+%%DocumentFonts: (atend)
+%%EndComments
+%%BeginProlog
+
+% Copyright (C) 2001-2025 Free Software Foundation, Inc.
+%
+% This file is part of GNU Emacs.
+%
+% GNU Emacs is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% GNU Emacs is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
+
+/tgifdict 53 dict def
+tgifdict begin
+
+/tgifellipsedict 6 dict def
+tgifellipsedict /mtrx matrix put
+
+/TGEL % tgifellipse
+ { tgifellipsedict begin
+      /yrad exch def
+      /xrad exch def
+      /y exch def
+      /x exch def
+      /savematrix mtrx currentmatrix def
+      x y translate
+      xrad yrad scale
+      0 0 1 0 360 arc
+      savematrix setmatrix
+   end
+ } def
+
+/TGMAX
+ { exch dup 3 1 roll exch dup 3 1 roll gt { pop } { exch pop } ifelse
+ } def
+/TGMIN
+ { exch dup 3 1 roll exch dup 3 1 roll lt { pop } { exch pop } ifelse
+ } def
+/TGSW { stringwidth pop } def
+
+/bd { bind def } bind def
+
+/GS { gsave } bd
+/GR { grestore } bd
+/NP { newpath } bd
+/CP { closepath } bd
+/CHP { charpath } bd
+/CT { curveto } bd
+/L { lineto } bd
+/RL { rlineto } bd
+/M { moveto } bd
+/RM { rmoveto } bd
+/S { stroke } bd
+/F { fill } bd
+/TR { translate } bd
+/RO { rotate } bd
+/SC { scale } bd
+/MU { mul } bd
+/DI { div } bd
+/DU { dup } bd
+/NE { neg } bd
+/AD { add } bd
+/SU { sub } bd
+/PO { pop } bd
+/EX { exch } bd
+/CO { concat } bd
+/CL { clip } bd
+/EC { eoclip } bd
+/EF { eofill } bd
+/IM { image } bd
+/IMM { imagemask } bd
+/ARY { array } bd
+/SG { setgray } bd
+/RG { setrgbcolor } bd
+/SD { setdash } bd
+/W { setlinewidth } bd
+/SM { setmiterlimit } bd
+/SLC { setlinecap } bd
+/SLJ { setlinejoin } bd
+/SH { show } bd
+/FF { findfont } bd
+/MS { makefont setfont } bd
+/AR { arcto 4 {pop} repeat } bd
+/CURP { currentpoint } bd
+/FLAT { flattenpath strokepath clip newpath } bd
+/TGSM { tgiforigctm setmatrix } def
+/TGRM { savematrix setmatrix } def
+
+end
+
+%%EndProlog
+%%Page: 1 1
+
+%%PageBoundingBox: 34 577 324 778
+tgifdict begin
+/tgifsavedpage save def
+
+1 SM
+1 W
+
+0 SG
+
+72 0 MU 72 11 MU TR
+72 128 DI 100.000 MU 100 DI DU NE SC
+
+GS
+
+/tgiforigctm matrix currentmatrix def
+
+% BOX
+0 SG
+GS
+   10 SM
+   GS
+      NP 64 104 M 255 104 L 255 360 L 64 360 L CP
+      S
+   GR
+GR
+
+% POLY/OPEN-SPLINE
+0 SG
+GS
+   NP
+      65 296 M
+      254 296 L
+   TGSM
+   1 W
+   S
+GR
+
+% POLY/OPEN-SPLINE
+0 SG
+GS
+   NP
+      63 233 M
+      255 233 L
+   TGSM
+   1 W
+   S
+GR
+
+% POLY/OPEN-SPLINE
+0 SG
+GS
+   NP
+      63 169 M
+      255 169 L
+   TGSM
+   1 W
+   S
+GR
+
+% POLY/OPEN-SPLINE
+0 SG
+GS
+   NP
+      251 362 M
+      251 361 L
+      251 379 L
+      244 379 L
+      229 361 L
+   TGSM
+   1 W
+   S
+GR
+
+% OVAL
+0 SG
+GS
+   GS
+      NP 160 72 10 6 TGEL
+      S
+   GR
+GR
+
+% POLY/OPEN-SPLINE
+0 SG
+GS
+   NP
+      63 104 M
+      128 64 L
+      138 69 L
+   TGSM
+   1 W
+   S
+GR
+
+% POLY/OPEN-SPLINE
+0 SG
+GS
+   NP
+      255 103 M
+      190 63 L
+      180 68 L
+   TGSM
+   1 W
+   S
+GR
+
+% TEXT
+NP
+0 SG
+   GS
+      1 W
+      160 152 M
+      GS
+        GS
+        0
+            /Courier FF [17 0 0 -17 0 0] MS
+            (symboolnaam) TGSW
+        AD
+        GR
+      2 DI NE 0 RM
+            0 SG
+            /Courier FF [17 0 0 -17 0 0] MS
+            (symboolnaam) SH
+      GR
+   GR
+
+% TEXT
+NP
+0 SG
+   GS
+      1 W
+      160 41 M
+      GS
+        GS
+        0
+            /Courier FF [17 0 0 -17 0 0] MS
+            (Ladekast) TGSW
+        AD
+        GR
+      2 DI NE 0 RM
+            0 SG
+            /Courier FF [17 0 0 -17 0 0] MS
+            (Ladekast) SH
+      GR
+   GR
+
+% TEXT
+NP
+0 SG
+   GS
+      1 W
+      344 41 M
+      GS
+            0 SG
+            /Courier FF [17 0 0 -17 0 0] MS
+            (Inhoud van de lade) SH
+      GR
+   GR
+
+% TEXT
+NP
+0 SG
+   GS
+      1 W
+      344 160 M
+      GS
+            0 SG
+            /Courier FF [17 0 0 -17 0 0] MS
+            (boeket) SH
+      GR
+   GR
+
+% TEXT
+NP
+0 SG
+   GS
+      1 W
+      344 220 M
+      GS
+            0 SG
+            /Courier FF [17 0 0 -17 0 0] MS
+            ([geen]) SH
+      GR
+   GR
+
+% TEXT
+NP
+0 SG
+   GS
+      1 W
+      344 279 M
+      GS
+            0 SG
+            /Courier FF [17 0 0 -17 0 0] MS
+            (\(roos viool boterbloem\)) SH
+      GR
+   GR
+
+% TEXT
+NP
+0 SG
+   GS
+      1 W
+      344 337 M
+      GS
+            0 SG
+            /Courier FF [17 0 0 -17 0 0] MS
+            ([hier niet beschreven]) SH
+      GR
+   GR
+
+% POLY/OPEN-SPLINE
+0 SG
+GS
+   NP
+      68 362 M
+      68 361 L
+      68 379 L
+      75 379 L
+      90 361 L
+   TGSM
+   1 W
+   S
+GR
+
+% TEXT
+NP
+0 SG
+   GS
+      1 W
+      158 132 M
+      GS
+        GS
+        0
+            /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
+            (routebeschrijving naar) TGSW
+        AD
+        GR
+      2 DI NE 0 RM
+            0 SG
+            /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
+            (routebeschrijving naar) SH
+      GR
+   GR
+
+% TEXT
+NP
+0 SG
+   GS
+      1 W
+      345 139 M
+      GS
+            0 SG
+            /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
+            (wijst naar) SH
+      GR
+   GR
+
+% TEXT
+NP
+0 SG
+   GS
+      1 W
+      350 259 M
+      GS
+            0 SG
+            /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
+            (wijst naar) SH
+      GR
+   GR
+
+% TEXT
+NP
+0 SG
+   GS
+      1 W
+      159 213 M
+      GS
+        GS
+        0
+            /Courier FF [17 0 0 -17 0 0] MS
+            (symbooldefinitie) TGSW
+        AD
+        GR
+      2 DI NE 0 RM
+            0 SG
+            /Courier FF [17 0 0 -17 0 0] MS
+            (symbooldefinitie) SH
+      GR
+   GR
+
+% TEXT
+NP
+0 SG
+   GS
+      1 W
+      159 195 M
+      GS
+        GS
+        0
+            /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
+            (routebeschrijving naar) TGSW
+        AD
+        GR
+      2 DI NE 0 RM
+            0 SG
+            /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
+            (routebeschrijving naar) SH
+      GR
+   GR
+
+% TEXT
+NP
+0 SG
+   GS
+      1 W
+      160 276 M
+      GS
+        GS
+        0
+            /Courier FF [17 0 0 -17 0 0] MS
+            (variabele naam) TGSW
+        AD
+        GR
+      2 DI NE 0 RM
+            0 SG
+            /Courier FF [17 0 0 -17 0 0] MS
+            (variabele naam) SH
+      GR
+   GR
+
+% TEXT
+NP
+0 SG
+   GS
+      1 W
+      158 260 M
+      GS
+        GS
+        0
+            /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
+            (routebeschrijving naar) TGSW
+        AD
+        GR
+      2 DI NE 0 RM
+            0 SG
+            /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
+            (routebeschrijving naar) SH
+      GR
+   GR
+
+% TEXT
+NP
+0 SG
+   GS
+      1 W
+      160 339 M
+      GS
+        GS
+        0
+            /Courier FF [17 0 0 -17 0 0] MS
+            (property list) TGSW
+        AD
+        GR
+      2 DI NE 0 RM
+            0 SG
+            /Courier FF [17 0 0 -17 0 0] MS
+            (property list) SH
+      GR
+   GR
+
+% TEXT
+NP
+0 SG
+   GS
+      1 W
+      158 323 M
+      GS
+        GS
+        0
+            /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
+            (routebeschrijving naar) TGSW
+        AD
+        GR
+      2 DI NE 0 RM
+            0 SG
+            /NewCenturySchlbk-Roman FF [17 0 0 -17 0 0] MS
+            (routebeschrijving naar) SH
+      GR
+   GR
+
+GR
+tgifsavedpage restore
+end
+showpage
+
+%%Trailer
+%MatchingCreationDate: Fri Sep 14 17:40:57 2001
+%%DocumentFonts: NewCenturySchlbk-Roman
+%%+ Courier
+%%EOF
diff --git a/drawers-nl.pdf b/drawers-nl.pdf
new file mode 100644
index 0000000000..02a199375f
Binary files /dev/null and b/drawers-nl.pdf differ
diff --git a/emacs-lisp-intro-nl.po b/emacs-lisp-intro-nl.po
index a845b95e66..ecce90a8a0 100644
--- a/emacs-lisp-intro-nl.po
+++ b/emacs-lisp-intro-nl.po
@@ -2147,7 +2147,7 @@ msgstr "Tekst terug yanken"
 #. type: menuentry
 #: emacs-lisp-intro.texi:560 emacs-lisp-intro.texi:9888
 msgid "Kill Ring Overview::"
-msgstr "Kill ring overzicht::"
+msgstr "Killring overzicht::"
 
 #. type: node
 #: emacs-lisp-intro.texi:560 emacs-lisp-intro.texi:9888
@@ -17349,10 +17349,10 @@ msgid ""
 "calls a function that invokes a function that manipulates the kill ring.  "
 "Thus, before reaching the mountains, we climb the foothills."
 msgstr ""
-"De lijst die de stukken tekst bevat het de @dfn{kill ring}. Dit hoofdstuk "
-"werkt naar een beschijving van de kill ring toe en hoe die gebruikt wordt "
+"De lijst die de stukken tekst bevat het de @dfn{killring}. Dit hoofdstuk "
+"werkt naar een beschijving van de killring toe en hoe die gebruikt wordt "
 "door eerst te volgen hoe de functie @code{zap-to-char} werkt. Deze functie "
-"roept een functie aan die een functie start die de kill ring manipuleert. "
+"roept een functie aan die een functie start die de killring manipuleert. "
 "Dus, voordat we de bergen bereiken, beklimmen we eerst de voetheuvels."
 
 #. type: Plain text
@@ -17391,7 +17391,7 @@ msgstr ""
 "De functie @code{zap-to-char} verwijdert de tekst in de region tussen de "
 "lokatie van de cursor (dus van point) tot en met waar het gespecificeerde "
 "karakter verschijnt. De tekst die @code{zap-to-char} verwijdert wordt in de "
-"kill ring gestopt en het kan uit de kill ring worden opgehaald door @kbd{C-"
+"killring gestopt en het kan uit de killring worden opgehaald door @kbd{C-"
 "y} (@code{yank}) te typen."
 
 #. type: Plain text
@@ -17563,7 +17563,7 @@ msgid ""
 "at you."
 msgstr ""
 "In een read-only buffer kopieert de functie @code{zap-to-char} de tekst naar "
-"de kill ring, maar verwijdert die niet. Het echogebied toont een boodschap "
+"de killring, maar verwijdert die niet. Het echogebied toont een boodschap "
 "dat het buffer read-only is. Ook kan de terminal piepen of knipperen."
 
 #. type: subsection
@@ -17939,7 +17939,7 @@ msgid ""
 "from which it may be retrieved."
 msgstr ""
 "De functie @code{zap-to-char} gebruikt de @code{kill-region}. Deze functie "
-"clipt de tekst van een region en kopieert die tekst naar de kill ring, van "
+"clipt de tekst van een region en kopieert die tekst naar de killring, van "
 "waar het kan worden opgehaald."
 
 #. type: Plain text
@@ -18070,7 +18070,7 @@ msgid ""
 msgstr ""
 "      ;;    De 'kill-append' functie plakken de nieuwe string en\n"
 "      ;;    de oude aan elkaar. De 'kill-new' functie voegt tekst in als 
een\n"
-"      ;;    nieuw item in de kill ring.\n"
+"      ;;    nieuw item in de killring.\n"
 
 #. type: group
 #: emacs-lisp-intro.texi:8060
@@ -18101,7 +18101,7 @@ msgid ""
 msgstr ""
 "      (let ((string (filter-buffer-substring beg end t)))\n"
 "        (when string                    ;STRING is nil if BEG = END\n"
-"          ;; Voeg die string op of andere manier aan de kill ring toe.\n"
+"          ;; Voeg die string op of andere manier aan de killring toe.\n"
 "          (if (eq last-command 'kill-region)\n"
 
 #. type: group
@@ -18177,7 +18177,7 @@ msgstr ""
 "     ;;    het wordt gebruikt in geval van een fout\n"
 "     (setq this-command 'kill-region)\n"
 "     ;;    Tenslotte, in het dan-deel, stuur een boodschap wanneer je de\n"
-"     ;;    tekst niet naar de the kill ring kan kopiëren zonder een fout te 
signaleren\n"
+"     ;;    tekst niet naar de the killring kan kopiëren zonder een fout te 
signaleren\n"
 "     ;;    maar doe dat niet als je het niet mag.\n"
 
 #. type: group
@@ -18271,7 +18271,7 @@ msgid ""
 "        (setq this-command 'kill-region))\n"
 msgstr ""
 "        ;; 'kill-append' plakt de nieuwe en de oude string aan elkaar.\n"
-"        ;; 'kill-new' voegt tekst in in een item in de kill ring.\n"
+"        ;; 'kill-new' voegt tekst in in een item in de killring.\n"
 "        (when string\n"
 "          (if (eq last-command 'kill-region)\n"
 "              ;; wanneer waar, append string\n"
@@ -18613,7 +18613,7 @@ msgid ""
 "text in the kill ring."
 msgstr ""
 "een kopie van de nieuw geclipte tekst aan de voorgaande zojuist geclipte "
-"tekst in de kill ring."
+"tekst in de killring."
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:8349
@@ -18641,7 +18641,7 @@ msgstr ""
 "gekopieerde tekst. Dit betekent dat als je de tekst terug-yankt, je alles "
 "krijgt, van zowel deze als de voorgaande operatie. Anderzijds, wanneer een "
 "ander commando aan de @code{copy-region-as-kill} voorafging, dan kopieert de "
-"functie de tekst in een separaat item in de kill ring."
+"functie de tekst in een separaat item in de killring."
 
 #. type: unnumberedsubsec
 #: emacs-lisp-intro.texi:8364
@@ -18771,7 +18771,7 @@ msgstr ""
 "Ook kun je in windowing systemen tussen verschillende programma's kopiëren, "
 "snijden en plakken. In het X windowing system bijvoorbeeld is de functie "
 "@code{interprogram-cut-function} @code{x-select-text}, die met het "
-"equivalent voor de Emacs kill ring van het windowing systeem werkt."
+"equivalent voor de Emacs killring van het windowing systeem werkt."
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:8435
@@ -18781,7 +18781,7 @@ msgid ""
 "situations: whether or not this command is executed immediately after a "
 "previous @code{kill-region} command.  In the first case, the new region is "
 "appended to the previously copied text.  Otherwise, it is inserted into the "
-"beginning of the kill ring as a separate piece of text from the previous "
+"beginning of the killring as a separate piece of text from the previous "
 "piece."
 msgstr ""
 "De body van de @code{copy-region-as-kill} functie start met een @code{if}-"
@@ -18818,7 +18818,7 @@ msgstr ""
 "De functie @code{copy-region-as-kill} werkt op een vergelijkbare manier als "
 "de functie @code{kill-region}. Beide zijn zo geschreven dat twee of meer "
 "kills op een rij de tekst in een enkele entry combineren. Wanneer je de "
-"tekst van de kill ring terugyankt, dan krijg alles in een stuk. Bovendien, "
+"tekst van de killring terugyankt, dan krijg alles in een stuk. Bovendien, "
 "kills die voorwaarts vanaf de huidige cursorpositie bewegen worden "
 "toegevoegd aan het einde van de vorige gekopieerde tekst, en commando's die "
 "tekst achterwaarts kopiëren worden aan het begin van de vorige gekopieerde "
@@ -18880,10 +18880,10 @@ msgstr ""
 "@code{last-command} is. Zo ja, dan wordt het dan-deel van de @code{if} "
 "expressie geëvalueerd. Het gebruikt de functie @code{kill-append} om de "
 "tekst die bij deze aanroep gekopieerd is te plakken aan de tekst die al in "
-"het eerste element (the @sc{car}) van de kill ring staat. Anders, wanneer de "
+"het eerste element (the @sc{car}) van de killring staat. Anders, wanneer de "
 "waarde van de @code{last-command} niet @code{kill-region} is, dan voegt de "
 "functie @code{copy-region-as-kill} met functie @code{kill-new} een nieuw "
-"element aan de kill ring toe."
+"element aan de killring toe."
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:8488
@@ -19039,7 +19039,7 @@ msgid ""
 "is a bug that produces no problems?)"
 msgstr ""
 "Het heeft een functie @code{let*} om de waarde van het eerste element van de "
-"kill ring in te stellen op @code{cur}. (Ik weet niet waarom de functie in "
+"killring in te stellen op @code{cur}. (Ik weet niet waarom de functie in "
 "plaats hiervan geen @code{let} gebruikt, slechts één waarde wordt in de "
 "expressie ingesteld. Misschien dat dit een bug is die geen problemen "
 "veroorzaakt?)"
@@ -19202,8 +19202,8 @@ msgid ""
 "The @code{kill-append} function uses the @code{kill-new} function which in "
 "turn uses the @code{setcar} function."
 msgstr ""
-"We begrijpen nu @code{kill-append}: het past de inhoud van de kill ring aan. "
-"De kill ring is een lijst, elk element daarvan is opgeslagen tekst. De "
+"We begrijpen nu @code{kill-append}: het past de inhoud van de killring aan. "
+"De killring is een lijst, elk element daarvan is opgeslagen tekst. De "
 "functie @code{kill-append} gebruikt de functie @code{kill-new} die op zijn "
 "beurt de functie @code{setcar} gebruikt."
 
@@ -19403,7 +19403,7 @@ msgid ""
 "@code{replace} variable is true."
 msgstr ""
 "De conditionele test is @w{@code{(and replace kill-ring)}}. Deze is waar "
-"wanneer twee condities voldoen: de kill ring bevast iets en de variabele "
+"wanneer twee condities voldoen: de killring bevast iets en de variabele "
 "@code{replace} variable is waar."
 
 #. type: Plain text
@@ -19414,7 +19414,7 @@ msgid ""
 "executed:"
 msgstr ""
 "Wanneer de functie @code{kill-append} @code{kill-append} op waar instelt en "
-"wanneer de kill ring tenminste een element bevat, wordt de @code{setcar} "
+"wanneer de killring tenminste een element bevat, wordt de @code{setcar} "
 "expressie uitgevoerd:"
 
 #. type: smallexample
@@ -19440,7 +19440,7 @@ msgid ""
 "On the other hand, if the kill ring is empty, or replace is false, the else-"
 "part of the condition is executed:"
 msgstr ""
-"Aan de andere kant, wanneer de kill ring leeg, of replace onwaar is, wordt "
+"Aan de andere kant, wanneer de killring leeg, of replace onwaar is, wordt "
 "het anders-deel van de conditie uitgevoerd:"
 
 #. type: smallexample
@@ -19485,10 +19485,10 @@ msgid ""
 "long."
 msgstr ""
 "Wanneer het onwaar is, construeert de expressie eerst een nieuwe versie van "
-"de kill ring door @code{string} vooraan als nieuw element aan de bestaande "
-"kill ring te plaatsen (dat is wat de @code{push} doet.) Daarna voert het een "
+"de killring door @code{string} vooraan als nieuw element aan de bestaande "
+"killring te plaatsen (dat is wat de @code{push} doet.) Daarna voert het een "
 "tweede @code{if}-clausule uit. Deze tweede @code{if}-clausule voorkomt dat "
-"de kill ring te groot groeit."
+"de killring te groot groeit."
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:8814
@@ -19502,7 +19502,7 @@ msgid ""
 "what results from adding the string being killed to the old kill ring."
 msgstr ""
 "De @code{push} regel in het anders-deel stelt de nieuwe waarde van de kill "
-"ring in op wat het resultaat is van het aan de oude kill ring toevoegen van "
+"ring in op wat het resultaat is van het aan de oude killring toevoegen van "
 "de gekillde string."
 
 #. type: Plain text
@@ -19589,7 +19589,7 @@ msgid ""
 "kill ring from growing too long.  It looks like this:"
 msgstr ""
 "Nu het tweede deel van de @code{if} clausule. Deze expressie voorkomt dat de "
-"kill ring te groot groeit. Het ziet er zo uit:"
+"killring te groot groeit. Het ziet er zo uit:"
 
 #. type: group
 #: emacs-lisp-intro.texi:8872
@@ -19610,10 +19610,10 @@ msgid ""
 "code sets the last element of the kill ring to @code{nil}.  It does this by "
 "using two functions, @code{nthcdr} and @code{setcdr}."
 msgstr ""
-"De code controleert of de lengte va de kill ring groter is dan de maximum "
+"De code controleert of de lengte va de killring groter is dan de maximum "
 "toegestane lengte. Dit is de waarde van @code{kill-ring-max} (die standaard "
 "120 is). Wanneer de lengte van de kill ring te groot is, dan stelt deze code "
-"het laatste element van de kill ring in op @code{nil}. Het doet dit met twee "
+"het laatste element van de killring in op @code{nil}. Het doet dit met twee "
 "functies, @code{nthcdr} and @code{setcdr}."
 
 #. type: Plain text
@@ -19630,10 +19630,10 @@ msgstr ""
 "We keken eerder naar @code{setcdr}, (@pxref{setcdr, , @code{setcdr}}). Het "
 "zet de @sc{cdr} van een lijst, net als @code{setcar} de @sc{car} van de "
 "lijst zet. In dit geval echter zet @code{setcdr} niet de de @sc{cdr} van de "
-"gehele kill ring, de functie @code{nthcdr} zorgt dat het de @sc{cdr} van het "
-"een-na-laatste element van de kill ring zet---dit betekent dat omdat de "
-"@sc{cdr} van het een-na-laatste element het laatste element van de kill ring "
-"is, het het laatste element van de kill ring zal zetten."
+"gehele killring, de functie @code{nthcdr} zorgt dat het de @sc{cdr} van het "
+"een-na-laatste element van de killring zet---dit betekent dat omdat de "
+"@sc{cdr} van het een-na-laatste element het laatste element van de killring "
+"is, het het laatste element van de killring zal zetten."
 
 #. type: findex
 #: emacs-lisp-intro.texi:8891
@@ -19739,9 +19739,9 @@ msgid ""
 "kill ring from growing too long."
 msgstr ""
 "Nogmaals, in @code{kill-new}, neemt de functie @code{nthcdr} een aantal keer "
-"de @sc{cdr}, één minder dan de maximaal toegestane grootte van de kill ring "
+"de @sc{cdr}, één minder dan de maximaal toegestane grootte van de killring "
 "en de @code{setcdr} zet de @sc{cdr} van dat element (wat de rest van de "
-"elementen in de kill ring is) op @code{nil}. Dit voorkomt dat de kill ring "
+"elementen in de killring is) op @code{nil}. Dit voorkomt dat de killring "
 "te groot groeit."
 
 #. type: Plain text
@@ -19772,7 +19772,7 @@ msgid ""
 "help humans understand how the variable is used."
 msgstr ""
 "Ondanks dat de @code{kill-ring-yank-pointer} een @code{pointer} heet, is het "
-"een variabele net als de kill ring. De naam is echter gekozen om mensen te "
+"een variabele net als de killring. De naam is echter gekozen om mensen te "
 "helpen begrijpen hoe de variabele wordt gebruikt."
 
 #. type: Plain text
@@ -19929,7 +19929,7 @@ msgid ""
 "implemented in a computer.  This will make clear such mysteries as the use "
 "of the term ``pointer''.  But before that, we will digress into C."
 msgstr ""
-"De code voor het plaatsen van de tekst in de kill ring, hetzij geplakt aan "
+"De code voor het plaatsen van de tekst in de killring, hetzij geplakt aan "
 "een bestaand element hetzij als een nieuw element, leidt ons naar de code om "
 "de verwijderde tekst terug te halen---het yank commando. Voordat we het yank "
 "commando gaan bespreken, is het echter beter te ontdekken hoe lijsten in de "
@@ -20339,7 +20339,7 @@ msgstr ""
 "Je kunt de huidige waarde van een variabele, elke variabele, zien met de "
 "functie @code{describe-variable}, die meestal wordt aangeroepen met @kbd{C-h "
 "v}. Wanneer je @kbd{C-h v} typt, en na de prompt @code{kill-ring} (gevolgd "
-"door @key{RET}), krijg je de huidige inhoud van je kill ring te zien---dit "
+"door @key{RET}), krijg je de huidige inhoud van je killring te zien---dit "
 "kan best veel zijn! Omgekeerd, wanneer je in deze Emacs sessie niets anders "
 "gedaan hebt dan dit document lezen, kan er helemaal niets in zijn. Ook krijg "
 "je de documentatie voor @code{kill-ring} te zien."
@@ -20378,7 +20378,7 @@ msgstr ""
 #: emacs-lisp-intro.texi:9296
 msgid "The kill ring is defined by a @code{defvar} in the following way:"
 msgstr ""
-"De kill ring is gedefinieerd door een @code{defvar} op de volgende manier: "
+"De killring is gedefinieerd door een @code{defvar} op de volgende manier: "
 
 #. type: group
 #: emacs-lisp-intro.texi:9302
@@ -20778,7 +20778,7 @@ msgid ""
 "stores that text in the kill ring, so you can get it back by yanking."
 msgstr ""
 "@code{kill-region} verwijdert de tekst tussen point en mark uit het buffer "
-"en bewaart die tekst in de kill ring, zodat je die met yanken terug kunt "
+"en bewaart die tekst in de killring, zodat je die met yanken terug kunt "
 "krijgen."
 
 #. type: table
@@ -20789,7 +20789,7 @@ msgid ""
 "or remove the text from the buffer."
 msgstr ""
 "@code{copy-region-as-kill} kopieert de tekst tussen point en mark naar de "
-"kill ring, van waar je het met yanken terug kunt krijgen. De functie "
+"killring, van waar je het met yanken terug kunt krijgen. De functie "
 "verwijdert de tekst niet uit het buffer."
 
 #. type: Plain text
@@ -20833,8 +20833,8 @@ msgid ""
 "area, if any; if the kill ring does not contain a third element, print an "
 "appropriate message."
 msgstr ""
-"Schrijf een functie die het derde element van de kill ring toont in het "
-"echogebied als dat element er is. Wanneer de kill ring geen derde element "
+"Schrijf een functie die het derde element van de killring toont in het "
+"echogebied als dat element er is. Wanneer de killring geen derde element "
 "heeft, toon dat een passende boodschap."
 
 #. type: cindex
@@ -20857,6 +20857,17 @@ msgid ""
 "pair points to the next pair, or to the symbol @code{nil}, which marks the "
 "end of the list."
 msgstr ""
+"In Lisp worden atomen op een eenvoudige manier vastgelegd. Zelfs als "
+"de implementatie niet eenvoudig is, dan is de theorie toch "
+"eenvoudig. Het atoom @samp{roos} bijvoorbeeld is vastgelegd als vier "
+"aaneengesloten letters, @samp{r}, @samp{o}, @samp{o} en @samp{s}. "
+"Een lijst, anderzijds, wordt anders bewaard. Het mechanisme is net "
+"zo eenvoudig, maar het kost even tijd om aan het idee gewend te "
+"raken. Een lijst wordt bewaard met een reeks paren van pointers. In "
+"de reeks wijst de eerste pointer van elk paar pointers naar een "
+"atoom of naar een andere lijst, en de tweede pointer in elk paar "
+"pointers wijst naar het volgende paar, of naar het symbool "
+"@code{nil}, wat het eind van de lijst markeert."
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9546
@@ -20864,6 +20875,9 @@ msgid ""
 "A pointer itself is quite simply the electronic address of what is pointed "
 "to.  Hence, a list is kept as a series of electronic addresses."
 msgstr ""
+"Een pointer zelf is heel eenvoudig het elektronische adres van "
+"datgene, waar het naar toe wijst. Een lijst wordt dus bewaard als "
+"een reeks elektronische adressen."
 
 #. type: unnumberedsec
 #: emacs-lisp-intro.texi:9554 emacs-lisp-intro.texi:9555
@@ -20883,18 +20897,29 @@ msgid ""
 "that tells where to find @samp{violet}) is kept along with the address of a "
 "third cons cell which holds the address for the atom @samp{buttercup}."
 msgstr ""
+"Bijvoorbeeld de lijst @code{(roos, viool, boterbloem)} heeft drie "
+"elementen, @samp{roos}, @samp{viool} en @samp{boterbloem}. In de "
+"computer wordt het elektronische adres van @samp{roos} bewaard in "
+"een segment van het computergeheugen dat een @samp{cons-cel} heet "
+"(omdat dat is wat de functie @code{cons} werkelijk creëert). Deze "
+"cons-cel bevat ook het adres van een tweede cons-cel, wiens @sc{car} "
+"het atoom @samp{viool} is, en dat adres (degene die vertelt waar "
+"@samp{viool} is bewaard) samen met het adres van een derde cons-cel, "
+"die het adres voor het atoom @samp{boterbloem} bevat."
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9570
 msgid ""
 "This sounds more complicated than it is and is easier seen in a diagram:"
 msgstr ""
+"Dit klinkt gecompliceerder dan het is en is makkelijker te zien in "
+"een diagram:"
 
 #. type: center
 #: emacs-lisp-intro.texi:9575
 #, no-wrap
 msgid "@image{cons-1}"
-msgstr ""
+msgstr "@image{cons-1-nl}"
 
 #. type: group
 #: emacs-lisp-intro.texi:9586
@@ -20906,6 +20931,11 @@ msgid ""
 "     |            |            |\n"
 "      --> rose     --> violet   --> buttercup\n"
 msgstr ""
+"    ___ ___      ___ ___      ___ ___\n"
+"   |___|___|--> |___|___|--> |___|___|--> nil\n"
+"     |            |            |\n"
+"     |            |            |\n"
+"      --> roos     --> viool    --> boterbloem\n"
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9600
@@ -20920,6 +20950,16 @@ msgid ""
 "address of the next pair.  The very last box points to the symbol "
 "@code{nil}, which marks the end of the list."
 msgstr ""
+"Elk vakje in het diagram representeert een computergeheugen woord "
+"dat een Lisp object bevat, meestal in de vorm van een geheugenadres. "
+"De vakjes, oftewel de adressen, zijn paren. Elke pijl wijst naar wat "
+"het adres een adres van is, hetzij een atoom of een ander paar "
+"adressen. Het eerste vakje is het elektronische adres van "
+"@samp{roos} en de pijl wijst naar @samp{roos}. Het tweede vakje is "
+"het adres van het volgende paar vakjes, waarvan het eerste deel het "
+"adres van @samp{viool} is en waarvan het tweede deel het adres van het "
+"volgende paar is. Het allerlaatste vakje wijst naar het symbool "
+"@code{nil}, dat het einde van de lijst markeert."
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9605
@@ -20928,23 +20968,26 @@ msgid ""
 "stores the address of the first box in the variable.  Thus, evaluation of "
 "the expression"
 msgstr ""
+"Wanneer een variabele met een operatie zoals @code{setq} wordt "
+"ingesteld op een lijst, dan slaat dat het adres op van het eerste "
+"vakje. Dus, evaluatie van de expressie"
 
 #. type: smallexample
 #: emacs-lisp-intro.texi:9608
 #, no-wrap
 msgid "(setq bouquet '(rose violet buttercup))\n"
-msgstr ""
+msgstr "(setq boeket '(roos viool boterbloem))\n"
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9613
 msgid "creates a situation like this:"
-msgstr ""
+msgstr "creëert een situatie zoals dit:"
 
 #. type: center
 #: emacs-lisp-intro.texi:9617
 #, no-wrap
 msgid "@image{cons-2}"
-msgstr ""
+msgstr "@image{cons-2-nl}"
 
 #. type: group
 #: emacs-lisp-intro.texi:9630
@@ -20958,6 +21001,13 @@ msgid ""
 "            |            |            |\n"
 "             --> rose     --> violet   --> buttercup\n"
 msgstr ""
+"boeket\n"
+"     |\n"
+"     |     ___ ___      ___ ___      ___ ___\n"
+"      --> |___|___|--> |___|___|--> |___|___|--> nil\n"
+"            |            |            |\n"
+"            |            |            |\n"
+"             --> roos     --> viool    --> boterbloem\n"
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9637
@@ -20965,6 +21015,8 @@ msgid ""
 "In this example, the symbol @code{bouquet} holds the address of the first "
 "pair of boxes."
 msgstr ""
+"In dit voorbeeld bevat het symbool @code{boeket} het adres van het "
+"eerste paar vakjes."
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9641
@@ -20972,12 +21024,14 @@ msgid ""
 "This same list can be illustrated in a different sort of box notation like "
 "this:"
 msgstr ""
+"Dezelfde lijst kan met een ander soort vakjes-notatie worden "
+"geïllustreerd, zoals dit:"
 
 #. type: center
 #: emacs-lisp-intro.texi:9645
 #, no-wrap
 msgid "@image{cons-2a}"
-msgstr ""
+msgstr "@image{cons-2a-nl}"
 
 #. type: group
 #: emacs-lisp-intro.texi:9658
@@ -20991,6 +21045,13 @@ msgid ""
 "     |       |      |     |        |      |     | cup     |      |\n"
 "      --------------       ---------------       ----------------\n"
 msgstr ""
+"bouquet\n"
+" |\n"
+" |    --------------       ---------------       ----------------\n"
+" |   | car   | cdr  |     | car    | cdr  |     | car     | cdr  |\n"
+"  -->| roos  |   o------->| viool  |   o------->| boter-  |  nil |\n"
+"     |       |      |     |        |      |     | bloem   |      |\n"
+"      --------------       ---------------       ----------------\n"
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9671
@@ -21004,6 +21065,15 @@ msgid ""
 "on.  Here we are showing that the symbol's third address-box points to the "
 "first pair of address-boxes for the list.)"
 msgstr ""
+"(Symbolen bestaan uit meer dan paren van adressen, maar de structuur "
+"van een symbool is gemaakt van adressen. Het symbool @code{boeket} "
+"bestaat inderdaad uit een groep van adresvakjes, waarvan een het "
+"adres van het getoonde woord @samp{boeket} is, een tweede daarvan "
+"het adres van de aan het symbool gekoppelde functiedefinitie is, als "
+"die er is, en een derde daarvan dat het adres van het eerste paar "
+"adresvakjes voor de lijst @code{roos viool boterbloem} is, "
+"enzovoorts. Hier tonen we dat het derde adresvakje van het symbool "
+"naar het eerste paar van de adresvakjes van de lijst wijst.)"
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9676
@@ -21013,23 +21083,27 @@ msgid ""
 "jargon, @sc{car} and @sc{cdr} are ``non-destructive''.)  Thus, evaluation of "
 "the following expression"
 msgstr ""
+"Wanneer een symbool naar de @sc{cdr} van de lijst wordt gezet, "
+"verandert de lijst zelf niet. Het symbool heeft eenvoudig een adres "
+"verderop in de lijst. (In het jargon: @sc{car} en @sc{cdr} zijn "
+"niet-destructief). Dus de evaluatie van de volgende expressie"
 
 #. type: smallexample
 #: emacs-lisp-intro.texi:9679
 #, no-wrap
 msgid "(setq flowers (cdr bouquet))\n"
-msgstr ""
+msgstr "(setq bloemen (cdr boeket))\n"
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9684 emacs-lisp-intro.texi:15242
 msgid "produces this:"
-msgstr ""
+msgstr "produceert dit:"
 
 #. type: center
 #: emacs-lisp-intro.texi:9688
 #, no-wrap
 msgid "@image{cons-3}"
-msgstr ""
+msgstr "@image{cons-3-nl}"
 
 #. type: group
 #: emacs-lisp-intro.texi:9703
@@ -21044,6 +21118,14 @@ msgid ""
 "         |              |            |\n"
 "          --> rose       --> violet   --> buttercup\n"
 msgstr ""
+"boeket         bloemen\n"
+"  |              |\n"
+"  |     ___ ___  |     ___ ___      ___ ___\n"
+"   --> |   |   |  --> |   |   |    |   |   |\n"
+"       |___|___|----> |___|___|--> |___|___|--> nil\n"
+"         |              |            |\n"
+"         |              |            |\n"
+"          --> roos       --> viool    --> boterbloem\n"
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9713
@@ -21053,18 +21135,22 @@ msgid ""
 "the first of which holds the address of @code{violet}, and the second of "
 "which holds the address of @code{buttercup}."
 msgstr ""
+"De waarde van @code{bloemen} is @code{(viool boterbloem)}, dat wil "
+"zeggen, het symbool @code{bloemen} bevat het adres van het paar "
+"adresvakjes, waarvan de eerste het adres van @code{viool} bevat en "
+"de tweede het adres van @code{boterbloem} bevat."
 
 #. type: cindex
 #: emacs-lisp-intro.texi:9714
 #, no-wrap
 msgid "dotted pair"
-msgstr ""
+msgstr "dotted pair"
 
 #. type: cindex
 #: emacs-lisp-intro.texi:9715
 #, no-wrap
 msgid "cons cell"
-msgstr ""
+msgstr "cons-cel"
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9721
@@ -21075,6 +21161,11 @@ msgid ""
 "elisp, The GNU Emacs Lisp Reference Manual}, for more information about cons "
 "cells and dotted pairs."
 msgstr ""
+"Een paar adresvakjes heet een @dfn{cons-cel} of @dfn{dotted pair}. "
+"@xref{Cons Cell Type, , Cons Cell and List Types, elisp, The GNU Emacs Lisp "
+"Reference Manual}, en @ref{Dotted Pair Notation, , Dotted Pair Notation, "
+"elisp, The GNU Emacs Lisp Reference Manual}, voor meer informatie over "
+"cons-cellen en dotted pairs."
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9726
@@ -21083,23 +21174,26 @@ msgid ""
 "series of addresses like that shown above.  For example, evaluating the "
 "expression"
 msgstr ""
+"De functie @code{cons} voegt een nieuw paar adressen aan de voorkant "
+"van de reeks van adressen zoals hierboven getoond. Bijvoorbeeld, het "
+"evalueren van de expressie"
 
 #. type: smallexample
 #: emacs-lisp-intro.texi:9729
 #, no-wrap
 msgid "(setq bouquet (cons 'lily bouquet))\n"
-msgstr ""
+msgstr "(setq boeket (cons 'lelie boeket))\n"
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9734 emacs-lisp-intro.texi:15676
 msgid "produces:"
-msgstr ""
+msgstr "produceert:"
 
 #. type: center
 #: emacs-lisp-intro.texi:9738
 #, no-wrap
 msgid "@image{cons-4}"
-msgstr ""
+msgstr "@image{cons-4-nl}"
 
 #. type: group
 #: emacs-lisp-intro.texi:9753
@@ -21114,6 +21208,14 @@ msgid ""
 "         |              |              |             |\n"
 "          --> lily      --> rose       --> violet    --> buttercup\n"
 msgstr ""
+"boeket                        bloemen\n"
+"  |                             |\n"
+"  |     ___ ___        ___ ___  |     ___ ___       ___ ___\n"
+"   --> |   |   |      |   |   |  --> |   |   |     |   |   |\n"
+"       |___|___|----> |___|___|----> |___|___|---->|___|___|--> nil\n"
+"         |              |              |             |\n"
+"         |              |              |             |\n"
+"          --> lelie     --> roos       --> viool      --> boterbloem\n"
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9762
@@ -21121,17 +21223,19 @@ msgid ""
 "However, this does not change the value of the symbol @code{flowers}, as you "
 "can see by evaluating the following,"
 msgstr ""
+"Dit verandert echter niet de waarde van het symbool @code{bloemen}, "
+"zoals je kunt zien door het volgende te evalueren:"
 
 #. type: smallexample
 #: emacs-lisp-intro.texi:9765
 #, no-wrap
 msgid "(eq (cdr (cdr bouquet)) flowers)\n"
-msgstr ""
+msgstr "(eq (cdr (cdr boeket)) bloemen)\n"
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9769
 msgid "which returns @code{t} for true."
-msgstr ""
+msgstr "wat @code{t} voor waar teruggeeft."
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9774
@@ -21141,6 +21245,11 @@ msgid ""
 "address is of @code{violet}.  Also, this does not alter any of the pre-"
 "existing cons cells; they are all still there."
 msgstr ""
+"Totdat het wordt gereset, heeft @code{bloemen} nog steeds de waarde "
+"@code{(viool boterbloem)}, dat wil zeggen, het heeft het adres van "
+"de cons-cel wiens eerste adres dat van @code{viool} is. Ook "
+"verandert dit geen van de reeds bestaande cons-cellen, die zijn er nog "
+"steeds."
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9781
@@ -21151,6 +21260,12 @@ msgid ""
 "list, you add a new cons cell to the front of the list.  That is all there "
 "is to it! The underlying structure of Lisp is brilliantly simple!"
 msgstr ""
+"Dus om in Lisp de @sc{cdr} van een lijst te krijgen, krijg je alleen "
+"het adres van de volgende cons-cel in de reeks. Om de @sc{car} van "
+"een lijst te krijgen, krijg je het adres van het eerste element van "
+"de lijst. Om een nieuw element aan een lijst te @code{cons}-en, voeg "
+"je een nieuwe cons-cel aan de voorkant van de lijst toe. Dat is "
+"alles! De onderliggende structuur van Lisp is briljant eenvoudig!"
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9784
@@ -21158,6 +21273,8 @@ msgid ""
 "And what does the last address in a series of cons cells refer to? It is the "
 "address of the empty list, of @code{nil}."
 msgstr ""
+"En waar refereert het laatste adres in een reeks van cons-cellen "
+"naar toe? Het is het adres van de lege lijst, van @code{nil}."
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9787
@@ -21165,24 +21282,27 @@ msgid ""
 "In summary, when a Lisp variable is set to a value, it is provided with the "
 "address of the list to which the variable refers."
 msgstr ""
+"Samengevat, wanneer een Lisp variabele op een waarde wordt "
+"ingesteld, dan krijgt die het adres van de lijst waar de variabele "
+"naar refereert."
 
 #. type: cindex
 #: emacs-lisp-intro.texi:9789 emacs-lisp-intro.texi:9790
 #, no-wrap
 msgid "Symbols as a Chest of Drawers"
-msgstr ""
+msgstr "Symbolen als een ladekast"
 
 #. type: cindex
 #: emacs-lisp-intro.texi:9791
 #, no-wrap
 msgid "Chest of Drawers, metaphor for a symbol"
-msgstr ""
+msgstr "Ladekast, metafoor voor een symbool"
 
 #. type: cindex
 #: emacs-lisp-intro.texi:9792
 #, no-wrap
 msgid "Drawers, Chest of, metaphor for a symbol"
-msgstr ""
+msgstr "Ladekast, metafoor voor een symbool"
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9799
@@ -21193,6 +21313,11 @@ msgid ""
 "changed without affecting the contents of the drawer holding the function "
 "definition, and vice versa."
 msgstr ""
+"In een eerdere sectie suggereerde ik dat je een symbool kunt "
+"voorstellen als een ladekast. De functiedefinitie wordt in een lade "
+"gestopt, de waarde in een andere, enzovoorts. Wat in de lade die de "
+"waarde bevat gestopt is, kan worden gewijzigd zonder de inhoud van "
+"de waarde die de functiedefinitie bevat te wijzigen, en andersom."
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9804
@@ -21202,6 +21327,10 @@ msgid ""
 "its drawers you found a map giving you directions to where the buried "
 "treasure lies."
 msgstr ""
+"Wat eigenlijk in elke lade gestopt wordt, is het adres van de waarde "
+"of de functiedefinitie. Het is alsof je een oude kast op de zolder "
+"gevonden hebt, en in een van de lades een kaart vond die de route "
+"beschrijft naar waar de begraven schat ligt."
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9810
@@ -21211,17 +21340,22 @@ msgid ""
 "information.  Property lists are not discussed here; see @ref{Property "
 "Lists, , Property Lists, elisp, The GNU Emacs Lisp Reference Manual}.)"
 msgstr ""
+"Naast zijn naam, symbooldefinitie en variabele naam, heeft een "
+"symbool een lade voor een @dfn{property list} die kan worden "
+"gebruikt om andere informatie op te slaan. Property lists bespreken "
+"we hier niet, zie @ref{Property Lists, , Property Lists, elisp, The "
+"GNU Emacs Lisp Reference Manual}.)"
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9813
 msgid "Here is a fanciful representation:"
-msgstr ""
+msgstr "Hier is een fantasierijke weergave:"
 
 #. type: center
 #: emacs-lisp-intro.texi:9817
 #, no-wrap
 msgid "@image{drawers}"
-msgstr ""
+msgstr "@image{drawers-nl}"
 
 #. type: group
 #: emacs-lisp-intro.texi:9825
@@ -21230,6 +21364,7 @@ msgid ""
 "            Chest of Drawers            Contents of Drawers\n"
 "\n"
 msgstr ""
+"              Ladekast                   Inhoud van de lade\n"
 
 #. type: group
 #: emacs-lisp-intro.texi:9846
@@ -21256,6 +21391,26 @@ msgid ""
 "        +---------------------+\n"
 "        |/                   \\|\n"
 msgstr ""
+"            __   o0O0o   __\n"
+"          /                 \\\n"
+"         ---------------------\n"
+"        |  routebeschrijving  |            [wijst naar]\n"
+"        |     symbool naam    |             boeket\n"
+"        |                     |\n"
+"        +---------------------+\n"
+"        |  routebeschrijving  |\n"
+"        |  symbool definitie  |             [geen]\n"
+"        |                     |\n"
+"        +---------------------+\n"
+"        |  routebeschrijving  |            [wijst naar]\n"
+"        |   variabele waarde  |             (roos viool boterbloem)\n"
+"        |                     |\n"
+"        +---------------------+\n"
+"        |  routebeschrijving  |\n"
+"        |    property list    |             [hier niet beschreven]\n"
+"        |                     |\n"
+"        +---------------------+\n"
+"        |/                   \\|\n"
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9858
@@ -21265,24 +21420,28 @@ msgid ""
 "the @sc{car} of @code{flowers} to a fish.  What does the @code{more-flowers} "
 "list now contain?"
 msgstr ""
+"Stel @code{bloemen} in op @code{viool} en @code{boterbloem}. Cons "
+"twee andere bloemen aan deze lijst en zet deze lijst op "
+"@code{meer-bloemen}. Zet de @sc{car} van bloemen op een vis. Wat "
+"bevat de lijst @code{meer-bloemen} nu?"
 
 #. type: cindex
 #: emacs-lisp-intro.texi:9862
 #, no-wrap
 msgid "Text retrieval"
-msgstr ""
+msgstr "Tekst terughalen"
 
 #. type: cindex
 #: emacs-lisp-intro.texi:9863
 #, no-wrap
 msgid "Retrieving text"
-msgstr ""
+msgstr "Tekst terughalen"
 
 #. type: cindex
 #: emacs-lisp-intro.texi:9864
 #, no-wrap
 msgid "Pasting text"
-msgstr ""
+msgstr "Tekst plakken"
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9871
@@ -21293,6 +21452,11 @@ msgid ""
 "contents of the kill ring back into a buffer (not necessarily the original "
 "buffer)."
 msgstr ""
+"Wanneer je in GNU Emacs met een kill commando tekst uit een buffer "
+"verwijdert dan kun je die terughalen met een yank commando. De tekst "
+"die uit het buffer verwijderd is, wordt in de killring gestopt en "
+"het yank commando voegt de juiste inhoud van de killring terug in "
+"een buffer (niet noodzakelijkerwijs het oorspronkelijke buffer)."
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9883
@@ -21308,30 +21472,41 @@ msgid ""
 "list.  @xref{Kill Ring, , Handling the Kill Ring}, for the details of how "
 "the list is handled as a ring.)"
 msgstr ""
+"Een eenvoudig @kbd{C-y} (@code{yank}) commando voegt het eerste "
+"element van de killring in het huidige buffer. Wanneer het @kbd{C-y} "
+"commando direct gevolg wordt door @kbd{M-y}, wordt het eerste "
+"element vervangen door het tweede element. Herhaaldelijke @kbd{M-y} "
+"commando's vervangen het teede element met het derde, vierde of "
+"vijfde element, enzovoorts. Wanneer het laatste element in de "
+"killring is bereikt, wordt het vervangen door het eerste en wordt de "
+"cyclus herhaald. (Daarom heet de killring een ``ring'' in plaats van "
+"een ``lijst''. De werkelijke datastructuur die de tekst bevat is "
+"echter een lijst. @xref{Killring, , De killring hanteren}, voor de "
+"details hoe de lijst wordt gehanteerd als ring.)"
 
 #. type: section
 #: emacs-lisp-intro.texi:9890 emacs-lisp-intro.texi:9891
 #, no-wrap
 msgid "Kill Ring Overview"
-msgstr "Kill ring overzicht"
+msgstr "Killring overzicht"
 
 #. type: cindex
 #: emacs-lisp-intro.texi:9892
 #, no-wrap
 msgid "Kill ring overview"
-msgstr ""
+msgstr "Killring overzicht"
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9895
 msgid ""
 "The kill ring is a list of textual strings.  This is what it looks like:"
-msgstr ""
+msgstr "De killring is een lijst van tekstuele strings. Dit is hoe die er uit 
ziet:"
 
 #. type: smallexample
 #: emacs-lisp-intro.texi:9898 emacs-lisp-intro.texi:9945
 #, no-wrap
 msgid "(\"some text\" \"a different piece of text\" \"yet more text\")\n"
-msgstr ""
+msgstr "(\"wat tekst\" \"een ander stuk tekst\" \"nog meer tekst\")\n"
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9903
@@ -21340,6 +21515,9 @@ msgid ""
 "string of characters saying @samp{some text} would be inserted in this "
 "buffer where my cursor is located."
 msgstr ""
+"Wanneer dit de inhoud van mijn killring is en ik sla @kbd{C-y} aan, "
+"dan wordt de karakterstring @samp{wat tekst} in dit buffer op de "
+"cursorlokatie ingevoegd."
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9907
@@ -21348,6 +21526,10 @@ msgid ""
 "The copied text is not cut from the buffer, but a copy of it is put on the "
 "kill ring and is inserted by yanking it back."
 msgstr ""
+"Het @code{yank} commando wordt ook gebruikt om tekst te dupliceren door het "
+"te kopiëren. De gekopieerde tekst wordt niet uit het buffer verwijderd, maar "
+"een kopie er van is in de killring geplaatst en onmiddellijk ingevoegd door "
+"het terug te yanken."
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9912
@@ -21357,6 +21539,11 @@ msgid ""
 "usually bound to @kbd{M-y}; and @code{rotate-yank-pointer}, which is used by "
 "the two other functions."
 msgstr ""
+"Drie functies worden gebruikt om de tekst uit de killring terug te "
+"halen: @code{yank}, dat normaalgesproken gebonden is aan @kbd{C-y}. "
+"@code{yank-pop}, dat normaalgesproken gebonden is aan @kbd{M-y}, en "
+"@code{rotate-yank-pointer} dat door de twee andere functies gebruikt "
+"wordt."
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9916
@@ -21365,12 +21552,15 @@ msgid ""
 "@code{kill-ring-yank-pointer}.  Indeed, the insertion code for both the "
 "@code{yank} and @code{yank-pop} functions is:"
 msgstr ""
+"Deze functies refereren aan de killring via de variabele met de naam "
+"@code{kill-ring-yank-pointer}. Inderdaad, de invoegcode van zowel de "
+"functie @code{yank} als @code{yank-pop} is:"
 
 #. type: smallexample
 #: emacs-lisp-intro.texi:9919
 #, no-wrap
 msgid "(insert (car kill-ring-yank-pointer))\n"
-msgstr ""
+msgstr "(insert (car kill-ring-yank-pointer))\n"
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9929
@@ -21382,6 +21572,14 @@ msgid ""
 "properties}.  Otherwise, it is just like @code{insert}.  We will stick with "
 "plain @code{insert} since it is easier to understand.)"
 msgstr ""
+"(Nou, niet meer. In GNU Emacs 22 is de functie vervangen door "
+"@code{insert-for-yank}, die herhaaldelijk @code{insert-for-yank-1} "
+"aanroept voor elk @code{yank-handler} segment. "
+"@code{insert-for-yank-1}, op zijn beurt, stript de tekst "
+"eigenschappen van de ingevoegde tekst in overeenstemming met "
+"@code{yank-excluded-properties}. Anders dat dat, is het gewoon als "
+"@code{insert}. Wij houden het bij de @code{insert}, dit is "
+"makkelijker te begrijpen.)"
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9932
@@ -21389,12 +21587,15 @@ msgid ""
 "To begin to understand how @code{yank} and @code{yank-pop} work, it is first "
 "necessary to look at the @code{kill-ring-yank-pointer} variable."
 msgstr ""
+"Om te beginnen te begrijpen hoe @code{yank} en @code{yank-pop} "
+"werken, is het eerst nodig naar de variabele "
+"@code{kill-ring-yank-pointer} te kijken."
 
 #. type: section
 #: emacs-lisp-intro.texi:9934
 #, no-wrap
 msgid "The @code{kill-ring-yank-pointer} Variable"
-msgstr ""
+msgstr "De variabele @code{kill-ring-yank-pointer}"
 
 #. type: Plain text
 #: emacs-lisp-intro.texi:9939

Reply via email to