home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / MacHaskell 2.2 / doc / manual / haskell.ps
Encoding:
Text File  |  1994-09-28  |  207.5 KB  |  1,966 lines  |  [TEXT/ttxt]

  1. %!PS-Adobe-2.0
  2. %%Creator: dvips, version 5.4 (C) 1986-90 Radical Eye Software
  3. %%Title: haskell.dvi
  4. %%Pages: 30 1
  5. %%BoundingBox: 0 0 612 792
  6. %%EndComments
  7. %%BeginProcSet: tex.pro
  8. /TeXDict 200 dict def TeXDict begin /N /def load def /B{bind def}N /S /exch
  9. load def /X{S N}B /TR /translate load N /isls false N /vsize 10 N /@rigin{
  10. isls{[0 1 -1 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale
  11. Resolution VResolution vsize neg mul TR}B /@letter{/vsize 10 N}B /@landscape{
  12. /isls true N /vsize -1 N}B /@a4{/vsize 10.6929133858 N}B /@a3{/vsize 15.5531 N
  13. }B /@ledger{/vsize 16 N}B /@legal{/vsize 13 N}B /@manualfeed{statusdict
  14. /manualfeed true put}B /@copies{/#copies X}B /FMat[1 0 0 -1 0 0]N /FBB[0 0 0 0
  15. ]N /df{/sf 1 N /fntrx FMat N df-tail}B /dfs{div /sf X /fntrx[sf 0 0 sf neg 0 0
  16. ]N df-tail}B /df-tail{/nn 8 dict N nn begin /FontType 3 N /FontMatrix fntrx N
  17. /FontBBox FBB N string /base X array /BitMaps X /BuildChar{CharBuilder}N
  18. /Encoding IE N end dup{/foo setfont}2 array copy cvx N load 0 nn put /ctr 0 N[
  19. }B /E{pop nn dup definefont setfont}B /ch-image{ch-data dup type /stringtype
  20. ne{ctr get /ctr ctr 1 add N}if}B /ch-width{ch-data dup length 5 sub get}B
  21. /ch-height{ch-data dup length 4 sub get}B /ch-xoff{128 ch-data dup length 3
  22. sub get sub}B /ch-yoff{ch-data dup length 2 sub get 127 sub}B /ch-dx{ch-data
  23. dup length 1 sub get}B /ctr 0 N /CharBuilder{save 3 1 roll S dup /base get 2
  24. index get S /BitMaps get S get /ch-data X pop /ctr 0 N ch-dx 0 ch-xoff ch-yoff
  25. ch-height sub ch-xoff ch-width add ch-yoff setcachedevice ch-width ch-height
  26. true[1 0 0 -1 -.1 ch-xoff sub ch-yoff .1 add]{ch-image}imagemask restore}B /D{
  27. /cc X dup type /stringtype ne{]}if nn /base get cc ctr put nn /BitMaps get S
  28. ctr S sf 1 ne{dup dup length 1 sub dup 2 index S get sf div put}if put /ctr
  29. ctr 1 add N}B /I{cc 1 add D}B /bop{userdict /bop-hook known{bop-hook}if /SI
  30. save N @rigin 0 0 moveto}B /eop{clear SI restore showpage userdict /eop-hook
  31. known{eop-hook}if}B /@start{userdict /start-hook known{start-hook}if
  32. /VResolution X /Resolution X 1000 div /DVImag X /IE 256 array N 0 1 255{IE S 1
  33. string dup 0 3 index put cvn put}for}B /p /show load N /RMat[1 0 0 -1 0 0]N
  34. /BDot 8 string N /v{/ruley X /rulex X V}B /V{gsave TR -.1 -.1 TR rulex ruley
  35. scale 1 1 false RMat{BDot}imagemask grestore}B /a{moveto}B /delta 0 N /tail{
  36. dup /delta X 0 rmoveto}B /M{S p delta add tail}B /b{S p tail}B /c{-4 M}B /d{
  37. -3 M}B /e{-2 M}B /f{-1 M}B /g{0 M}B /h{1 M}B /i{2 M}B /j{3 M}B /k{4 M}B /l{p
  38. -4 w}B /m{p -3 w}B /n{p -2 w}B /o{p -1 w}B /q{p 1 w}B /r{p 2 w}B /s{p 3 w}B /t
  39. {p 4 w}B /w{0 rmoveto}B /x{0 S rmoveto}B /y{3 2 roll p a}B /bos{/SS save N}B
  40. /eos{clear SS restore}B end
  41. %%EndProcSet
  42. TeXDict begin 1000 300 300 @start /Fa 33 122 df<78FCFCFCFC7806067D850D>46
  43. D<00600001E0000FE000FFE000F3E00003E00003E00003E00003E00003E00003E00003E00003E0
  44. 0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E0007FFF
  45. 807FFF80111B7D9A18>49 D<07F8001FFE00383F80780FC0FC07C0FC07E0FC03E0FC03E07803E0
  46. 0007E00007C00007C0000F80001F00001E0000380000700000E0000180600300600600600800E0
  47. 1FFFC03FFFC07FFFC0FFFFC0FFFFC0131B7E9A18>I<03F8001FFE003C1F003C0F807C07C07E07
  48. C07C07C03807C0000F80000F80001E00003C0003F800001E00000F800007C00007C00007E03007
  49. E07807E0FC07E0FC07E0FC07C0780F80781F001FFE0007F800131B7E9A18>I<00018000038000
  50. 0780000F80001F80003F80006F8000CF80008F80018F80030F80060F800C0F80180F80300F8060
  51. 0F80C00F80FFFFF8FFFFF8000F80000F80000F80000F80000F80000F8001FFF801FFF8151B7F9A
  52. 18>I<1801801FFF001FFE001FFC001FF8001FC00018000018000018000018000019F8001E0E00
  53. 180F801007800007C00007E00007E00007E07807E0F807E0F807E0F807C0F007C0600F80381F00
  54. 1FFE0007F000131B7E9A18>I<00038000000380000007C0000007C0000007C000000FE000000F
  55. E000001FF000001BF000001BF0000031F8000031F8000061FC000060FC0000E0FE0000C07E0000
  56. C07E0001803F0001FFFF0003FFFF8003001F8003001F8006000FC006000FC00E000FE00C0007E0
  57. FFC07FFEFFC07FFE1F1C7E9B24>65 D<001FE02000FFF8E003F80FE007C003E00F8001E01F0000
  58. E03E0000E03E0000607E0000607C000060FC000000FC000000FC000000FC000000FC000000FC00
  59. 0000FC000000FC0000007C0000607E0000603E0000603E0000C01F0000C00F80018007C0030003
  60. F80E0000FFFC00001FE0001B1C7D9B22>67 D<FFFC3FFFFFFC3FFF0FC003F00FC003F00FC003F0
  61. 0FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FFFFFF00FFFFFF00FC003
  62. F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC003F00FC0
  63. 03F00FC003F0FFFC3FFFFFFC3FFF201C7E9B25>72 D<FFFF00FFFF000FC0000FC0000FC0000FC0
  64. 000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0000FC0030FC0
  65. 030FC0030FC0070FC0070FC0060FC00E0FC01E0FC07EFFFFFEFFFFFE181C7E9B1D>76
  66. D<FFC00003FFFFE00007FF0FE00007F00DF0000DF00DF0000DF00DF0000DF00CF80019F00CF800
  67. 19F00C7C0031F00C7C0031F00C3E0061F00C3E0061F00C1F00C1F00C1F00C1F00C1F00C1F00C0F
  68. 8181F00C0F8181F00C07C301F00C07C301F00C03E601F00C03E601F00C01FC01F00C01FC01F00C
  69. 01FC01F00C00F801F00C00F801F0FFC0701FFFFFC0701FFF281C7E9B2D>I<FFFC03FFFFFC03FF
  70. 0FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC000
  71. 300FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC000300FC0003007C0
  72. 003007C0006003E000E001F001C000FC0780007FFE00000FF800201C7E9B25>85
  73. D<0FF8001C1E003E0F803E07803E07C01C07C00007C0007FC007E7C01F07C03C07C07C07C0F807
  74. C0F807C0F807C0780BC03E13F80FE1F815127F9117>97 D<03FC000E0E001C1F003C1F00781F00
  75. 780E00F80000F80000F80000F80000F80000F800007800007801803C01801C03000E0E0003F800
  76. 11127E9115>99 D<000FF0000FF00001F00001F00001F00001F00001F00001F00001F00001F000
  77. 01F001F9F00F07F01C03F03C01F07801F07801F0F801F0F801F0F801F0F801F0F801F0F801F078
  78. 01F07801F03C01F01C03F00F0FFE03F9FE171D7E9C1B>I<01FC000F07001C03803C01C07801C0
  79. 7801E0F801E0F801E0FFFFE0F80000F80000F800007800007C00603C00601E00C00F038001FC00
  80. 13127F9116>I<007F0001E38003C7C00787C00F87C00F83800F80000F80000F80000F80000F80
  81. 00FFF800FFF8000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80
  82. 000F80000F80000F80007FF8007FF800121D809C0F>I<03F8F00E0F381E0F381C07303C07803C
  83. 07803C07803C07801C07001E0F000E0E001BF8001000001800001800001FFF001FFFC00FFFE01F
  84. FFF07801F8F00078F00078F000787000707800F01E03C007FF00151B7F9118>I<FF0000FF0000
  85. 1F00001F00001F00001F00001F00001F00001F00001F00001F00001F0FC01F31E01F40F01F80F8
  86. 1F80F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F8FFE7FF
  87. FFE7FF181D7F9C1B>I<1E003F003F003F003F001E00000000000000000000000000FF00FF001F
  88. 001F001F001F001F001F001F001F001F001F001F001F001F001F00FFE0FFE00B1E7F9D0E>I<FF
  89. 0000FF00001F00001F00001F00001F00001F00001F00001F00001F00001F00001F0FF81F0FF81F
  90. 03801F07001F0C001F18001F70001FF8001FFC001FBC001F3E001F1F001F0F001F0F801F07C01F
  91. 03E0FFC7FCFFC7FC161D7F9C19>107 D<FF00FF001F001F001F001F001F001F001F001F001F00
  92. 1F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00FFE0FFE00B1D7F
  93. 9C0E>I<FF0FC07E00FF31E18F001F40F207801F80FC07C01F80FC07C01F00F807C01F00F807C0
  94. 1F00F807C01F00F807C01F00F807C01F00F807C01F00F807C01F00F807C01F00F807C01F00F807
  95. C01F00F807C0FFE7FF3FF8FFE7FF3FF825127F9128>I<FF0FC0FF31E01F40F01F80F81F80F81F
  96. 00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00F8FFE7FFFFE7FF18
  97. 127F911B>I<01FC000F07801C01C03C01E07800F07800F0F800F8F800F8F800F8F800F8F800F8
  98. F800F87800F07800F03C01E01E03C00F078001FC0015127F9118>I<FF3F80FFE1E01F80F01F00
  99. 781F007C1F003C1F003E1F003E1F003E1F003E1F003E1F003E1F003C1F007C1F00781F80F01FC1
  100. E01F3F001F00001F00001F00001F00001F00001F0000FFE000FFE000171A7F911B>I<03F0600F
  101. 0CE01E07E03C03E07C03E07803E0F803E0F803E0F803E0F803E0F803E0F803E07803E07C03E03C
  102. 03E01C07E00E0FE003F3E00003E00003E00003E00003E00003E00003E0001FFC001FFC161A7E91
  103. 19>I<FE3E00FE47001E8F801E8F801E8F801F07001F00001F00001F00001F00001F00001F0000
  104. 1F00001F00001F00001F0000FFF000FFF00011127F9114>I<1FD830786018E018E018F000FF80
  105. 7FE07FF01FF807FC007CC01CC01CE01CE018F830CFC00E127E9113>I<03000300030003000700
  106. 07000F000F003FFCFFFC1F001F001F001F001F001F001F001F001F001F0C1F0C1F0C1F0C0F0807
  107. 9803F00E1A7F9913>I<FF07F8FF07F81F00F81F00F81F00F81F00F81F00F81F00F81F00F81F00
  108. F81F00F81F00F81F00F81F00F81F01F80F01F80786FF01F8FF18127F911B>I<FF8FF8FEFF8FF8
  109. FE1F03E0301F03E0301F83E0700F83F0600F86F06007C6F0C007CEF8C007EC79C003EC7D8003F8
  110. 3D8001F83F0001F83F0001F01F0000F01E0000E00E0000E00E001F127F9122>119
  111. D<FFC1FCFFC1FC1F00601F80E00F80C00FC0C007C18007C18003E30003E30001F70001F60000FE
  112. 0000FC0000FC00007800007800003000003000007000706000F86000F8C000F980007300003E00
  113. 00161A7F9119>121 D E /Fb 1 59 df<60F0F06004047C830C>58 D E
  114. /Fc 30 123 df<0001FC3C00060E67000C0EC7001C0DC6001C01C0003801C00038038000380380
  115. 00380380003803800070038007FFFFF800700700007007000070070000E0070000E00E0000E00E
  116. 0000E00E0000E00E0001C00E0001C01C0001C01C0001C01C0001C01C0003801C00038038000380
  117. 38000380380003003800070030000700700006006000C6606000E470C000C8618000703E000020
  118. 25819C19>11 D<0001FC000703000C03001C07001C030018000038000038000038000038000070
  119. 0007FFFC00701C00701C00701C00E00FFF0007F70003E700
  120. 12197E9816>I<7F1FC0FFBFE07F1FC01C07001C07001C07001C07001C07001C07001C07001FFF
  121. 001FFF001FFF001C07001C07001C07001C07001C07001C07001C07001C07001C07007F1FC0FFBF
  122. E07F1FC013197F9816>I<FFFEFFFEFFFE03800380038003800380038003800380038003800380
  123. 03800380038003800380038003800380FFFEFFFEFFFE0F197D9816>I<07FE07FF07FE00380038
  124. 003800380038003800380038003800380038003800380038003800386038F038F0707FF07FE01F
  125. 8010197D9816>I<7F0FE0FF8FF07F0FE01C07801C0F001C0E001C1C001C3C001C78001CF0001C
  126. E0001DF0001FF0001FF8001F38001E1C001C1C001C0E001C0E001C07001C07001C03807F07E0FF
  127. 8FF07F07E01419809816>I<FFC000FFC000FFC0001C00001C00001C00001C00001C00001C0000
  128. 1C00001C00001C00001C00001C00001C00001C00001C00001C00401C00E01C00E01C00E01C00E0
  129. FFFFE0FFFFE0FFFFE013197F9816>I<FC07E0FE0FE0FE0FE03A0B803B1B803B1B803B1B803B1B
  130. 803B1B803BBB8039B38039B38039B38039B38039F38038E38038E3803803803803803803803803
  131. 80380380FE0FE0FE0FE0FE0FE013197F9816>I<7E1FC0FF3FE07F1FC01D07001D87001D87001D
  132. 87001DC7001DC7001CC7001CC7001CE7001CE7001CE7001C67001C67001C77001C77001C37001C
  133. 37001C37001C17007F1F00FF9F007F0F0013197F9816>I<1FFC003FFE007FFF00780F00F00780
  134. E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380E00380
  135. E00380F00780F00780780F007FFF003FFE001FFC0011197E9816>I<7FF800FFFE007FFF001C0F
  136. 801C03801C03C01C01C01C01C01C01C01C03C01C03801C0F801FFF001FFE001FF8001C00001C00
  137. 001C00001C00001C00001C00001C00007F0000FF80007F000012197F9816>I<7FE000FFF8007F
  138. FC001C1E001C0F001C07001C07001C07001C07001C0F001C1E001FFC001FF8001FFC001C1C001C
  139. 0E001C0E001C0E001C0E001C0E201C0E701C0E707F07E0FF87E07F03C014197F9816>82
  140. D<07E3001FFF003FFF00781F00F00700E00700E00700E00000F000007800003F80001FF00007FC
  141. 0000FE00000F00000700000380000380600380E00380E00700F80F00FFFE00FFFC00C7F0001119
  142. 7E9816>I<7FFFE0FFFFE0FFFFE0E0E0E0E0E0E0E0E0E0E0E0E000E00000E00000E00000E00000
  143. E00000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00007FC000FFE0007
  144. FC0013197F9816>I<7F07F0FF8FF87F07F01C01C01C01C01C01C01C01C01C01C01C01C01C01C0
  145. 1C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C00E03800E038007070007FF00
  146. 03FE0000F8001519809816>I<FFF0FFF0FFF0E000E000E000E000E000E000E000E000E000E000
  147. E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000E000FFF0FFF0FFF00C
  148. 20789C16>91 D<C00000E00000E000007000007000003800003800001C00001C00000E00000E00
  149. 0007000007000003800003800001C00001C00000E00000E000007000007000003800003800001C
  150. 00001C00000E00000E0000070000070000038000038000018011207E9C16>I<FFF0FFF0FFF000
  151. 700070007000700070007000700070007000700070007000700070007000700070007000700070
  152. 007000700070007000700070FFF0FFF0FFF00C207F9C16>I<03000F803FE0FDF8F07840100D06
  153. 7C9816>I<FFFF80FFFF80FFFF8011037E7E16>I<1FE0003FF0007FF800783C00300E00000E0000
  154. 0E0003FE001FFE003E0E00700E00E00E00E00E00E00E00783E007FFFE03FE7E00F83E013127E91
  155. 16>97 D<7E0000FE00007E00000E00000E00000E00000E00000E3E000EFF000FFF800F83C00F00
  156. E00E00E00E00700E00700E00700E00700E00700E00700E00E00F01E00F83C00FFF800EFF00063C
  157. 001419809816>I<03F80FFC1FFE3C1E780C7000E000E000E000E000E000F000700778073E0E1F
  158. FC0FF803F010127D9116>I<003F00007F00003F0000070000070000070000070003C7000FF700
  159. 1FFF003C1F00780F00700700E00700E00700E00700E00700E00700E00700700F00700F003C1F00
  160. 1FFFE00FE7F007C7E014197F9816>I<03E00FF81FFC3C1E780E7007E007FFFFFFFFFFFFE000E0
  161. 00700778073C0F1FFE0FFC03F010127D9116>I<001F00007F8000FF8001E78001C30001C00001
  162. C0007FFF00FFFF00FFFF0001C00001C00001C00001C00001C00001C00001C00001C00001C00001
  163. C00001C00001C0003FFE007FFF003FFE0011197F9816>I<03E3C007F7E00FFFE01C1CC0380E00
  164. 380E00380E00380E00380E001C1C000FF8001FF0001BE0003800001800001FFC001FFF003FFF80
  165. 7803C0E000E0E000E0E000E0E000E07001C07C07C03FFF800FFE0003F800131C7F9116>I<7E00
  166. 00FE00007E00000E00000E00000E00000E00000E3C000EFE000FFF000F87800F03800E03800E03
  167. 800E03800E03800E03800E03800E03800E03800E03800E03807FC7F0FFE7F87FC7F01519809816
  168. >I<018003C003C0018000000000000000007FC07FC07FC001C001C001C001C001C001C001C001
  169. C001C001C001C001C07FFFFFFF7FFF101A7D9916>I<7E0000FE00007E00000E00000E00000E00
  170. 000E00000E7FE00E7FE00E7FE00E0F000E1E000E3C000E78000EF0000FF0000FF8000FBC000F1E
  171. 000E0E000E07000E07807F87F0FFCFF07F87F01419809816>107 D<FFC000FFC000FFC00001C0
  172. 0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0
  173. 0001C00001C00001C00001C00001C000FFFF80FFFF80FFFF8011197E9816>I<F9C380FFEFC0FF
  174. FFE03C78E03C78E03870E03870E03870E03870E03870E03870E03870E03870E03870E03870E0FE
  175. 7CF8FE7CF8FE3C781512809116>I<7E3C00FEFE007FFF000F87800F03800E03800E03800E0380
  176. 0E03800E03800E03800E03800E03800E03800E03807FC7F0FFE7F87FC7F01512809116>I<03E0
  177. 000FF8001FFC003C1E00780F00700700E00380E00380E00380E00380E00380F00780700700780F
  178. 003C1E001FFC000FF80003E00011127E9116>I<7E3E00FEFF007FFF800F83C00F00E00E00E00E
  179. 00700E00700E00700E00700E00700E00700E00E00F01E00F83C00FFF800EFF000E3C000E00000E
  180. 00000E00000E00000E00000E00007FC000FFE0007FC000141B809116>I<07C7000FE7001FF700
  181. 3C1F00700F00700F00E00700E00700E00700E00700E00700E00700700F00700F003C3F003FF700
  182. 1FE70007C700000700000700000700000700000700000700003FE0007FF0003FE0141B7E9116>
  183. I<FF0FC0FF3FE0FF7FE007F04007C0000780000780000700000700000700000700000700000700
  184. 00070000070000FFFC00FFFC00FFFC0013127F9116>I<0FEC3FFC7FFCF03CE01CE01C70007F80
  185. 1FF007F8003C600EE00EF00EF81EFFFCFFF8C7E00F127D9116>I<030000070000070000070000
  186. 0700007FFF00FFFF00FFFF00070000070000070000070000070000070000070000070100070380
  187. 07038007038007870003FE0001FC0000F80011177F9616>I<7E1F80FE3F807E1F800E03800E03
  188. 800E03800E03800E03800E03800E03800E03800E03800E03800E03800E0F800FFFF007FBF803E3
  189. F01512809116>I<7F1FC0FF1FE07F1FC01C07001E0F000E0E000E0E000E0E00071C00071C0007
  190. 1C00071C0003B80003B80003B80001F00001F00000E00013127F9116>I<FF1FE0FFBFE0FF1FE0
  191. 38038038038038038038038038E38019F30019F30019B3001DB7001DB7001DB7001DB7000F1E00
  192. 0F1E000F1E0013127F9116>I<7F1FC07F3FC07F1FC00F1C00073C0003B80003F00001F00000E0
  193. 0001E00001F00003B800073C00071C000E0E007F1FC0FF3FE07F1FC013127F9116>I<7F1FC0FF
  194. 9FE07F1FC01C07000E07000E0E000E0E00070E00071C00071C00039C00039C0003980001B80001
  195. B80000F00000F00000F00000E00000E00000E00001C00079C0007BC0007F80003F00003C000013
  196. 1B7F9116>I<3FFFC07FFFC07FFFC0700780700F00701E00003C0000780001F00003E000078000
  197. 0F00001E01C03C01C07801C0FFFFC0FFFFC0FFFFC012127F9116>I<001F80007F8000FF8001E0
  198. 0001C00001C00001C00001C00001C00001C00001C00001C00001C00003C0007F8000FF0000FF00
  199. 007F800003C00001C00001C00001C00001C00001C00001C00001C00001C00001C00001E00000FF
  200. 80007F80001F8011207E9C16>I<E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0E0
  201. E0E0E0E0E0E0E00320779C16>I<7C0000FF0000FF800003C00001C00001C00001C00001C00001
  202. C00001C00001C00001C00001C00001E00000FF00007F80007F8000FF0001E00001C00001C00001
  203. C00001C00001C00001C00001C00001C00001C00003C000FF8000FF00007C000011207E9C16>I<
  204. 1C303F78FFF8F7E061C00D057C9816>I E /Fe 1 16 df<03C00FF01FF83FFC7FFE7FFEFFFFFF
  205. FFFFFFFFFF7FFE7FFE3FFC1FF80FF003C010107E9115>15 D E /Ff 81
  206. 125 df<007E1F0001C1B1800303E3C00703C3C00E03C1800E01C0000E01C0000E01C0000E01C0
  207. 000E01C0000E01C000FFFFFC000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01
  208. C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0007F
  209. 87FC001A1D809C18>11 D<007E0001C1800301800703C00E03C00E01800E00000E00000E00000E
  210. 00000E0000FFFFC00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E
  211. 01C00E01C00E01C00E01C00E01C00E01C07F87F8151D809C17>I<007FC001C1C00303C00703C0
  212. 0E01C00E01C00E01C00E01C00E01C00E01C00E01C0FFFFC00E01C00E01C00E01C00E01C00E01C0
  213. 0E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C07FCFF8151D80
  214. 9C17>I<003F07E00001C09C18000380F018000701F03C000E01E03C000E00E018000E00E00000
  215. 0E00E000000E00E000000E00E000000E00E00000FFFFFFFC000E00E01C000E00E01C000E00E01C
  216. 000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E0
  217. 1C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C007FC7FCFF80211D809C23>I<
  218. 60F0F0F0F0F0F0F060606060606060606060606060000000000060F0F060041E7C9D0C>33
  219. D<6060F0F0F8F86868080808080808101010102020404080800D0C7F9C15>I<0080008007E018
  220. 98308460824081C087C08FC08FC086E080F0807E803FC01FF00FF803FC00BE008E00876087F083
  221. F083E0838082408240842088189007E00080008010217E9E15>36 D<60F0F86808080810102040
  222. 80050C7C9C0C>39 D<004000800100020006000C000C0018001800300030007000600060006000
  223. E000E000E000E000E000E000E000E000E000E000E000E000600060006000700030003000180018
  224. 000C000C00060002000100008000400A2A7D100000F0200000F04
  225. 00000F0E00000F1F00000F2F00000F2780000F4780000F83C0000F01E0000F01E0000F00F0000F
  226. 00F8000F0078000F003C000F003C000F001E000F001F000F001F80FFF07FF01C1C7E9B20>I<FF
  227. F8000F80000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F
  228. 00000F00000F00000F00000F00000F00080F00080F00080F00180F00180F00100F00300F00700F
  229. 01F0FFFFF0151C7E9B1A>I<FF8000FF800F8000F8000F8000F8000BC00178000BC00178000BC0
  230. 01780009E002780009E002780008F004780008F004780008F00478000878087800087808780008
  231. 78087800083C107800083C107800083C107800081E207800081E207800081E207800080F407800
  232. 080F40780008078078000807807800080780780008030078001C03007800FF8307FF80211C7E9B
  233. 26>I<FF007FC00F800E000F8004000BC0040009E0040009E0040008F0040008F8040008780400
  234. 083C0400083C0400081E0400080F0400080F0400080784000807C4000803C4000801E4000801E4
  235. 000800F40008007C0008007C0008003C0008003C0008001C0008000C001C000C00FF8004001A1C
  236. 7E9B1F>I<003F800000E0E0000380380007001C000E000E001C0007003C000780380003807800
  237. 03C0780003C0700001C0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F0
  238. 0001E0700001C0780003C0780003C0380003803C0007801C0007000E000E0007001C0003803800
  239. 00E0E000003F80001B1E7E9C20>I<FFFF800F00E00F00780F003C0F001C0F001E0F001E0F001E
  240. 0F001E0F001E0F001C0F003C0F00780F00E00FFF800F00000F00000F00000F00000F00000F0000
  241. 0F00000F00000F00000F00000F00000F0000FFF000171C7E9B1C>I<003F800000E0E000038038
  242. 0007001C000E000E001C0007003C00078038000380780003C0780003C0700001C0F00001E0F000
  243. 01E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0700001C0780003C0780003C038
  244. 0003803C0E07801C1107000E208E0007205C0003A0780000F0E020003FE0200000602000003060
  245. 000038E000003FC000003FC000001F8000000F001B257E9C20>I<FFFF00000F01E0000F007800
  246. 0F003C000F001C000F001E000F001E000F001E000F001E000F001C000F003C000F0078000F01E0
  247. 000FFF00000F03C0000F00E0000F00F0000F0078000F0078000F0078000F0078000F0078000F00
  248. 78000F0078100F0078100F0038100F003C20FFF01C20000007C01C1D7E9B1F>I<07E0801C1980
  249. 300580700380600180E00180E00080E00080E00080F00000F800007C00007FC0003FF8001FFE00
  250. 07FF0000FF80000F800007C00003C00001C08001C08001C08001C0C00180C00180E00300D00200
  251. CC0C0083F800121E7E9C17>I<7FFFFFC0700F01C0600F00C0400F0040400F0040C00F0020800F
  252. 0020800F0020800F0020000F0000000F0000000F0000000F0000000F0000000F0000000F000000
  253. 0F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000
  254. 001F800003FFFC001B1C7F9B1E>I<FFF07FC00F000E000F0004000F0004000F0004000F000400
  255. 0F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004000F0004
  256. 000F0004000F0004000F0004000F0004000F0004000F0004000700080007800800038010000180
  257. 100000C020000070C000001F00001A1D7E9B1F>I<FFE00FF01F0003C00F0001800F0001000F80
  258. 0300078002000780020003C0040003C0040003C0040001E0080001E0080001F0080000F0100000
  259. F0100000F830000078200000782000003C4000003C4000003C4000001E8000001E8000001F8000
  260. 000F0000000F00000006000000060000000600001C1D7F9B1F>I<FFE0FFE0FF1F001F003C1E00
  261. 1E00180F001F00100F001F00100F001F001007801F00200780278020078027802003C027804003
  262. C043C04003C043C04003E043C04001E081E08001E081E08001E081E08000F100F10000F100F100
  263. 00F100F100007900FA00007A007A00007A007A00003E007C00003C003C00003C003C00003C003C
  264. 00001800180000180018000018001800281D7F9B2B>I<7FF0FFC00FC03E000780180003C01800
  265. 03E0100001E0200001F0600000F0400000788000007D8000003D0000001E0000001F0000000F00
  266. 00000F8000000F80000013C0000023E0000021E0000041F00000C0F8000080780001007C000300
  267. 3C0002001E0006001F001F003F80FFC0FFF01C1C7F9B1F>I<FFF007FC0F8001E00780008007C0
  268. 018003C0010003E0020001F0020000F0040000F8040000780800007C1800003C1000001E200000
  269. 1F2000000F4000000FC00000078000000780000007800000078000000780000007800000078000
  270. 00078000000780000007800000078000007FF8001E1C809B1F>I<FEFEC0C0C0C0C0C0C0C0C0C0
  271. C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0C0FEFE07297C9E0C>91
  272. D<08081010202040404040808080808080B0B0F8F8787830300D0C7A9C15>I<FEFE0606060606
  273. 0606060606060606060606060606060606060606060606060606060606060606FEFE0729809E0C
  274. >I<1FC000307000783800781C00301C00001C00001C0001FC000F1C00381C00701C00601C00E0
  275. 1C40E01C40E01C40603C40304E801F870012127E9115>97 D<FC00001C00001C00001C00001C00
  276. 001C00001C00001C00001C00001C00001C00001C7C001D86001E03001C01801C01C01C00C01C00
  277. E01C00E01C00E01C00E01C00E01C00E01C00C01C01C01C01801E030019060010F800131D7F9C17
  278. >I<07E00C301878307870306000E000E000E000E000E000E00060007004300418080C3007C00E
  279. 127E9112>I<003F00000700000700000700000700000700000700000700000700000700000700
  280. 03E7000C1700180F00300700700700600700E00700E00700E00700E00700E00700E00700600700
  281. 700700300700180F000C370007C7E0131D7E9C17>I<03E00C301818300C700E6006E006FFFEE0
  282. 00E000E000E00060007002300218040C1803E00F127F9112>I<00F8018C071E061E0E0C0E000E
  283. 000E000E000E000E00FFE00E000E000E000E000E000E000E000E000E000E000E000E000E000E00
  284. 0E000E007FE00F1D809C0D>I<00038003C4C00C38C01C3880181800381C00381C00381C00381C
  285. 001818001C38000C300013C0001000003000001800001FF8001FFF001FFF803003806001C0C000
  286. C0C000C0C000C06001803003001C0E0007F800121C7F9215>I<FC00001C00001C00001C00001C
  287. 00001C00001C00001C00001C00001C00001C00001C7C001C87001D03001E03801C03801C03801C
  288. 03801C03801C03801C03801C03801C03801C03801C03801C03801C03801C0380FF9FF0141D7F9C
  289. 17>I<18003C003C0018000000000000000000000000000000FC001C001C001C001C001C001C00
  290. 1C001C001C001C001C001C001C001C001C001C00FF80091D7F9C0C>I<00C001E001E000C00000
  291. 0000000000000000000000000FE000E000E000E000E000E000E000E000E000E000E000E000E000
  292. E000E000E000E000E000E000E000E060E0F0C0F1C061803E000B25839C0D>I<FC00001C00001C
  293. 00001C00001C00001C00001C00001C00001C00001C00001C00001C3FC01C0F001C0C001C08001C
  294. 10001C20001C40001CE0001DE0001E70001C78001C38001C3C001C1C001C0E001C0F001C0F80FF
  295. 9FE0131D7F9C16>I<FC001C001C001C001C001C001C001C001C001C001C001C001C001C001C00
  296. 1C001C001C001C001C001C001C001C001C001C001C001C001C00FF80091D7F9C0C>I<FC7E07E0
  297. 001C838838001D019018001E01E01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C0
  298. 1C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01C01C001C01
  299. C01C00FF8FF8FF8021127F9124>I<FC7C001C87001D03001E03801C03801C03801C03801C0380
  300. 1C03801C03801C03801C03801C03801C03801C03801C03801C0380FF9FF014127F9117>I<03F0
  301. 000E1C00180600300300700380600180E001C0E001C0E001C0E001C0E001C0E001C06001807003
  302. 803003001806000E1C0003F00012127F9115>I<FC7C001D86001E03001C01801C01C01C00C01C
  303. 00E01C00E01C00E01C00E01C00E01C00E01C01C01C01C01C01801E03001D06001CF8001C00001C
  304. 00001C00001C00001C00001C00001C0000FF8000131A7F9117>I<03C1000C3300180B00300F00
  305. 700700700700E00700E00700E00700E00700E00700E00700600700700700300F00180F000C3700
  306. 07C700000700000700000700000700000700000700000700003FE0131A7E9116>I<FCE01D301E
  307. 781E781C301C001C001C001C001C001C001C001C001C001C001C001C00FFC00D127F9110>I<1F
  308. 9030704030C010C010E010F8007F803FE00FF000F880388018C018C018E010D0608FC00D127F91
  309. 10>I<04000400040004000C000C001C003C00FFE01C001C001C001C001C001C001C001C001C00
  310. 1C101C101C101C101C100C100E2003C00C1A7F9910>I<FC1F801C03801C03801C03801C03801C
  311. 03801C03801C03801C03801C03801C03801C03801C03801C03801C07800C07800E1B8003E3F014
  312. 127F9117>I<FF07E03C03801C01001C01000E02000E0200070400070400070400038800038800
  313. 03D80001D00001D00000E00000E00000E00000400013127F9116>I<FF3FCFE03C0F03801C0701
  314. 801C0701001C0B01000E0B82000E0B82000E1182000711C4000711C4000720C40003A0E80003A0
  315. E80003C0680001C0700001C0700001803000008020001B127F911E>I<7F8FF00F03800F030007
  316. 020003840001C80001D80000F00000700000780000F800009C00010E00020E000607000403801E
  317. 07C0FF0FF81512809116>I<FF07E03C03801C01001C01000E02000E0200070400070400070400
  318. 03880003880003D80001D00001D00000E00000E00000E000004000004000008000008000F08000
  319. F10000F300006600003C0000131A7F9116>I<7FFC70386038407040F040E041C003C003800700
  320. 0F040E041C043C0C380870087038FFF80E127F9112>I<FFFFFFFFFF802901808B2A>124
  321. D E /Fg 34 90 df<7070F06004047C830C>46 D<00000400000C000018000018000030000030
  322. 0000600000600000C00000C0000180000300000300000600000600000C00000C00001800001800
  323. 00300000300000600000600000C00000C0000180000180000300000300000600000C00000C0000
  324. 180000180000300000300000600000600000C00000C0000080000016297F9E15>I<00F800038E
  325. 000606000C03000C0300180380380380380380300380700380700380700380700380E00700E007
  326. 00E00700E00700E00700E00600E00E00C00E00C00E00C00C00C01C00C0180060300060600030C0
  327. 001F0000111D7C9B15>I<0018007003F00C7000700070007000E000E000E000E000E000E001C0
  328. 01C001C001C001C001C003800380038003800380038007000780FFF80D1C7C9B15>I<007E0001
  329. 83800201C00400E00400E00F00E00F00E01F00E01F00E00E00E00001E00001C000038000038000
  330. 0700000E00001C0000380000600000C0000180000300800600800801001001003FFF007FFE00FF
  331. FE00131C7E9B15>I<007C000187000203800403800F03C00F03C00F03C00E0380000380000700
  332. 000600000C0000380003F000001C00000E00000E00000F00000F00000F00700F00F80F00F80F00
  333. F00E00E01E00801C004038003070000FC000121D7D9B15>I<0000C00001800003800003800007
  334. 80000B8000138000270000670000C700008700010700020700040E00080E00180E00100E00200E
  335. 00400E00FFFFC0001C00001C00001C00001C00001C00003800003C0003FF80121C7E9B15>I<03
  336. 01C003FF8003FE0007FC0004000004000004000004000004000008000008F8000B0C000C0E0008
  337. 0700080700000700000780000780000780700F00F00F00F00F00F00E00801E00801C0040380040
  338. 300030E0000F8000121D7D9B15>I<003E0000E1000180800303800607800C07801C0700180000
  339. 38000030000071F000761800780C00E80E00F00600F00600E00700E00700E00700E00E00C00E00
  340. C00E00C00E00C01C00E0180060380060300030C0000F8000111D7C9B15>I<1000003FFFC03FFF
  341. C03FFF8060010040020040040080080000080000100000200000400000C0000080000180000180
  342. 000300000700000700000F00000E00000E00001E00001E00001E00003C00003C00003C00001800
  343. 00121D7B9B15>I<007C000183000201800601800C00C00C00C00C00C01C01801C01801E03000F
  344. 86000FCC0007F00003F80003FC000C7E00183F00300F00600700600300C00300C00300C00300C0
  345. 0200C006006004006018003830000FC000121D7D9B15>I<00F8000304000606000C03001C0300
  346. 380300380380300380700380700380700380700380700780700700700F00300F00181700082700
  347. 07CE00000E00000C00001C00601800F03800F03000E0600080C0004380003E0000111D7C9B15>
  348. I<000020000000300000007000000070000000F0000000F0000001F00000037800000278000006
  349. 780000047800000C780000087C0000183C0000103C0000203C0000203C0000403C0000403E0000
  350. FFFE0000801E0001001E0001001E0002001E0002000F0004000F0004000F001E001F00FF80FFF0
  351. 1C1D7F9C1F>65 D<0FFFFC0000F8070000F0038000F003C000F001C000F001E000F001E001E001
  352. C001E003C001E003C001E0078001E00F0001E03C0003FFF80003C01E0003C00F0003C0078003C0
  353. 078003C007800780078007800780078007800780078007800F0007801E000F003C000F007800FF
  354. FFE0001B1C7E9B1D>I<0007F010001C0C300070026000C001E0038000E0070000E00E0000600E
  355. 0000601C0000403C00004038000040780000007800000078000000F0000000F0000000F0000000
  356. F0000000F0000000F0000080F0000100700001007000010038000200380004001C0004000C0018
  357. 00060020000380C000007F00001C1E7C9C1E>I<0FFFFC0000F8078000F001C000F000E000F000
  358. 7000F0007000F0007801E0003801E0003801E0003801E0003801E0003C01E0003803C0003803C0
  359. 007803C0007803C0007803C0007003C000F0078000E0078000E0078001C0078003800780078007
  360. 800E000F001C000F007000FFFFC0001E1C7E9B20>I<0FFFFFE000F801E000F000E000F0004000
  361. F0004000F0004000F0004001E0004001E0404001E0400001E0400001E0C00001E1C00003FF8000
  362. 03C1800003C0800003C0800003C0800003C0808007800080078000800780010007800100078003
  363. 00078006000F000E000F003E00FFFFFC001B1C7E9B1C>I<0FFFFFC000F803C000F001C000F000
  364. 8000F0008000F0008000F0008001E0008001E0408001E0400001E0400001E0C00001E1C00003FF
  365. 800003C1800003C0800003C0800003C0800003C080000780000007800000078000000780000007
  366. 800000078000000F0000000F800000FFF800001A1C7E9B1B>I<0007F010001C0C300070026000
  367. C001E0038000E0070000E00E0000600E0000601C0000403C000040380000407800000078000000
  368. 78000000F0000000F0000000F0000000F000FFF0F0000F80F0000780F0000F0070000F0070000F
  369. 0038000F0038000F001C001F000C001E000600660003818200007E00001C1E7C9C21>I<0FFF9F
  370. FE00F803E000F003C000F003C000F003C000F003C000F003C001E0078001E0078001E0078001E0
  371. 078001E0078001E0078003FFFF0003C00F0003C00F0003C00F0003C00F0003C00F0007801E0007
  372. 801E0007801E0007801E0007801E0007801E000F003C000F803E00FFF3FFC01F1C7E9B1F>I<0F
  373. FF8000F80000F00000F00000F00000F00000F00001E00001E00001E00001E00001E00001E00003
  374. C00003C00003C00003C00003C00003C0000780000780000780000780000780000780000F00000F
  375. 8000FFF800111C7F9B0F>I<0FFF83FE00F800F800F000E000F0008000F0010000F0020000F004
  376. 0001E0080001E0100001E0400001E0800001E1C00001E3C00003C5E00003C9E00003D1F00003E0
  377. F00003C0F00003C078000780780007803C0007803C0007801E0007801E0007800F000F000F000F
  378. 801F80FFF07FF01F1C7E9B20>75 D<0FFFC000F80000F00000F00000F00000F00000F00001E000
  379. 01E00001E00001E00001E00001E00003C00003C00003C00003C00003C00003C004078004078004
  380. 0780040780080780080780180F00380F00F0FFFFF0161C7E9B1A>I<0FF80007FC00F8000FC000
  381. BC000F8000BC00178000BC00178000BC00278000BC002780011E004F00011E004F00011E008F00
  382. 011E008F00011E010F00010F010F00020F021E00020F021E00020F041E00020F041E000207881E
  383. 000207901E000407903C000407A03C000407A03C000407C03C000403C03C000403803C000C0380
  384. 78001E03007C00FF8307FF80261C7E9B26>I<0FF807FE00F800F000FC006000BC004000BE0040
  385. 009E0040009E0040010F0080010F008001078080010780800103C0800103C0800201E1000201E1
  386. 000200F1000200F1000200F9000200790004007E0004003E0004003E0004001E0004001E000400
  387. 0E000C000C001E000400FF8004001F1C7E9B1F>I<0007F00000381C0000E00E0001C003000380
  388. 0380070001C00E0001C01E0001E01C0000E03C0000E0380000E0780000F0780000F0780000F0F0
  389. 0001E0F00001E0F00001E0F00001E0F00003C0F00003C0F00003C0700007807000070078000F00
  390. 38001E003C001C001C0038000E00E0000383800000FE00001C1E7C9C20>I<0FFFFC0000F80F00
  391. 00F0038000F003C000F001C000F001C000F001C001E003C001E003C001E003C001E0038001E007
  392. 0001E00E0003C03C0003FFE00003C0000003C0000003C0000003C0000007800000078000000780
  393. 00000780000007800000078000000F0000000F800000FFF000001A1C7E9B1C>I<0FFFF80000F8
  394. 0E0000F0078000F003C000F001C000F001E000F001E001E003C001E003C001E0038001E0070001
  395. E00E0001E03C0003FFE00003C0700003C0380003C03C0003C01C0003C01E0007803C0007803C00
  396. 07803C0007803C0007803C0007803C080F003C100F801C10FFF01C20000007C01D1D7E9B1F>82
  397. D<003F0400C0CC0180380300380600180E00180E00180E00181E00101E00001F00000F80000FF8
  398. 0007FF0003FF8001FFC0003FE00003E00001E00000E00000E04000E04000E04000E04000C06001
  399. C0E00180F00300CC0E0083F800161E7E9C17>I<1FFFFFF03C07C0F03007803020078020600780
  400. 204007802040078020400F0020800F0020000F0000000F0000000F0000000F0000001E0000001E
  401. 0000001E0000001E0000001E0000001E0000003C0000003C0000003C0000003C0000003C000000
  402. 3C000000780000007C00001FFFE0001C1C7C9B1E>I<FFF87FE00F800F000F0006000F0004000F
  403. 0004000F0004000F0004001E0008001E0008001E0008001E0008001E0008001E0008003C001000
  404. 3C0010003C0010003C0010003C0010003C00100078002000780020007800200038004000380040
  405. 00380080001C0100000C020000070C000001F000001B1D7A9B1F>I<FFF00FF81F8003C00F0001
  406. 800F0001000F0002000780020007800400078004000780080007C0080003C0100003C0100003C0
  407. 200003C0200003E0400001E0400001E0800001E1800001E1000001F2000000F2000000F4000000
  408. F4000000F8000000F80000007000000070000000600000006000001D1D7B9B1F>I<FFF0FFE0FF
  409. 801F001F003C000F001F0018000F000F0010000F001F0010000F001F0020000F002F0020000F00
  410. 2F0060000F804F00400007804F8040000780878080000780878080000781078100000781078100
  411. 0007820782000007C20782000003C407C4000003C403C4000003C803C8000003C803C8000003D8
  412. 03D0000003D003D0000003F003E0000001E003E0000001E001C0000001C001C0000001C0018000
  413. 00018001800000018001800000291D7B9B2B>I<FFF007F81F8003C00F0001800F800100078002
  414. 0007C0040003C0080003E0080003E0100001E0200001F0400000F0400000F8800000790000007A
  415. 0000007E0000003C0000003C000000380000007800000078000000780000007800000078000000
  416. 70000000F0000000F800000FFF00001D1C7B9B1F>89 D E /Fh 58 123
  417. df<000FFF00007FFF0001F83F0003E03F0007C03F000F803F000F801F000F801F000F801F000F
  418. 801F000F801F000F801F000F801F00FFFFFF00FFFFFF000F801F000F801F000F801F000F801F00
  419. 0F801F000F801F000F801F000F801F000F801F000F801F000F801F000F801F000F801F000F801F
  420. 000F801F000F801F000F801F000F801F007FF0FFE07FF0FFE01B237FA21F>13
  421. D<387CFEFFFF7F3B03030706060C1C18702008117C8610>44 D<FFFCFFFCFFFCFFFC0E047F8C13
  422. >I<387CFEFEFE7C3807077C8610>I<0000180000380000380000700000700000E00000E00000E0
  423. 0001C00001C0000380000380000380000700000700000700000E00000E00001C00001C00001C00
  424. 00380000380000700000700000700000E00000E00001C00001C00001C000038000038000070000
  425. 0700000700000E00000E00000E00001C00001C0000380000380000380000700000700000E00000
  426. E00000C0000015317DA41C>I<00FE0007FFC00F83E01F01F03E00F83E00F87C007C7C007C7C00
  427. 7CFC007CFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC00
  428. 7EFC007E7C007C7C007C7C007C3E00F83E00F81F01F00F83E007FFC000FE0017207E9F1C>I<00
  429. 180000780001F800FFF800FFF80001F80001F80001F80001F80001F80001F80001F80001F80001
  430. F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001
  431. F80001F80001F80001F8007FFFE07FFFE013207C9F1C>I<03FC000FFF003C1FC07007E07C07F0
  432. FE03F0FE03F8FE03F8FE01F87C01F83803F80003F80003F00003F00007E00007C0000F80001F00
  433. 003E0000380000700000E01801C0180380180700180E00380FFFF01FFFFFFE000FFFFE00007
  434. F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F00000
  435. 07F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000
  436. 1807F0001807F0001807F0001807F0003807F0003807F0007007F0007007F000F007F001F007F0
  437. 07F0FFFFFFF0FFFFFFF01D227EA122>76 D<FFF000000FFFFFF800001FFF07F800001FE006FC00
  438. 0037E006FC000037E006FC000037E0067E000067E0067E000067E0063F0000C7E0063F0000C7E0
  439. 061F800187E0061F800187E0060FC00307E0060FC00307E0060FC00307E00607E00607E00607E0
  440. 0607E00603F00C07E00603F00C07E00601F81807E00601F81807E00601F81807E00600FC3007E0
  441. 0600FC3007E006007E6007E006007E6007E006003FC007E006003FC007E006001F8007E006001F
  442. 8007E006001F8007E006000F0007E0FFF00F00FFFFFFF00600FFFF30227EA135>I<FFF8001FFE
  443. FFFC001FFE07FC0000C007FE0000C006FF0000C0067F8000C0063FC000C0061FE000C0060FE000
  444. C0060FF000C00607F800C00603FC00C00601FE00C00600FE00C00600FF00C006007F80C006003F
  445. C0C006001FE0C006000FF0C0060007F0C0060007F8C0060003FCC0060001FEC0060000FFC00600
  446. 007FC00600007FC00600003FC00600001FC00600000FC006000007C006000003C006000003C0FF
  447. F00001C0FFF00000C027227EA12C>I<0007FC0000003FFF800000FC07E00003F001F80007E000
  448. FC000FC0007E001F80003F001F80003F003F00001F803F00001F807F00001FC07E00000FC07E00
  449. 000FC0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE
  450. 00000FE0FE00000FE07E00000FC07F00001FC07F00001FC03F00001F803F80003F801F80003F00
  451. 0FC0007E0007E000FC0003F001F80000FC07E000003FFF80000007FC000023227DA12A>I<FFFF
  452. FF00FFFFFFE007F007F007F001FC07F000FC07F0007E07F0007E07F0007F07F0007F07F0007F07
  453. F0007F07F0007F07F0007E07F0007E07F000FC07F001FC07F007F007FFFFE007FFFF0007F00000
  454. 07F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000
  455. 0007F0000007F00000FFFF8000FFFF800020227EA126>I<FFFFFE0000FFFFFFC00007F007F000
  456. 07F001F80007F000FC0007F0007E0007F0007F0007F0007F0007F0007F0007F0007F0007F0007F
  457. 0007F0007F0007F0007E0007F000FC0007F001F80007F007F00007FFFFC00007FFFF800007F00F
  458. E00007F007F00007F003F80007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F0
  459. 01FC0007F001FC0007F001FC0007F001FC0607F000FE0607F000FF0CFFFF803FF8FFFF800FF027
  460. 227EA12A>82 D<01FC0407FF8C1F03FC3C007C7C003C78001C78001CF8000CF8000CFC000CFC00
  461. 00FF0000FFE0007FFF007FFFC03FFFF01FFFF80FFFFC03FFFE003FFE0003FF00007F00003F0000
  462. 3FC0001FC0001FC0001FE0001EE0001EF0003CFC003CFF00F8C7FFE080FF8018227DA11F>I<7F
  463. FFFFFF807FFFFFFF807E03F80F807803F807807003F803806003F80180E003F801C0E003F801C0
  464. C003F800C0C003F800C0C003F800C0C003F800C00003F800000003F800000003F800000003F800
  465. 000003F800000003F800000003F800000003F800000003F800000003F800000003F800000003F8
  466. 00000003F800000003F800000003F800000003F800000003F800000003F800000003F800000003
  467. F8000003FFFFF80003FFFFF80022227EA127>I<FFFF803FFCFFFF803FFC07F000018007F00001
  468. 8007F000018007F000018007F000018007F000018007F000018007F000018007F000018007F000
  469. 018007F000018007F000018007F000018007F000018007F000018007F000018007F000018007F0
  470. 00018007F000018007F000018007F000018007F000018007F000018007F000018003F000030003
  471. F800030001F800060000FC000E00007E001C00003F80F800000FFFE0000001FF000026227EA12B
  472. >I<FFFF0FFFF01FFEFFFF0FFFF01FFE0FF000FF0000E007F0007F0000C007F0007F0000C003F8
  473. 007F80018003F8003F80018003FC003F80038001FC003FC0030001FC003FC0030000FE007FE006
  474. 0000FE006FE0060000FF006FE00600007F00C7F00C00007F00C7F00C00007F80C7F81C00003F81
  475. 83F81800003F8183F81800001FC383FC3000001FC301FC3000001FE301FC3000000FE600FE6000
  476. 000FE600FE6000000FF600FFE0000007FC007FC0000007FC007FC0000003FC007F80000003F800
  477. 3F80000003F8003F80000001F0001F00000001F0001F00000000F0001E00000000E0000E000000
  478. 00E0000E000037227FA13A>87 D<FFFF800FFEFFFF800FFE07F80000C007F80001C003FC000180
  479. 01FE00030001FE00070000FF00060000FF000C00007F801C00003FC01800003FC03000001FE070
  480. 00000FF06000000FF0E0000007F8C0000003FD80000003FF80000001FF00000001FE00000000FE
  481. 00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000
  482. FE00000000FE00000000FE00000000FE0000001FFFF000001FFFF00027227FA12A>89
  483. D<07FC001FFF803F07C03F03E03F01E03F01F01E01F00001F00001F0003FF003FDF01FC1F03F01
  484. F07E01F0FC01F0FC01F0FC01F0FC01F07E02F07E0CF81FF87F07E03F18167E951B>97
  485. D<FF000000FF0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F00
  486. 00001F0000001F0000001F0000001F0FE0001F3FF8001FF07C001F801E001F001F001F000F801F
  487. 000F801F000FC01F000FC01F000FC01F000FC01F000FC01F000FC01F000FC01F000FC01F000F80
  488. 1F001F801F801F001FC03E001EE07C001C3FF800180FC0001A237EA21F>I<00FF8007FFE00F83
  489. F01F03F03E03F07E03F07C01E07C0000FC0000FC0000FC0000FC0000FC0000FC00007C00007E00
  490. 007E00003E00301F00600FC0E007FF8000FE0014167E9519>I<0001FE000001FE0000003E0000
  491. 003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E0000003E00
  492. 01FC3E0007FFBE000F81FE001F007E003E003E007E003E007C003E00FC003E00FC003E00FC003E
  493. 00FC003E00FC003E00FC003E00FC003E00FC003E007C003E007C003E003E007E001E00FE000F83
  494. BE0007FF3FC001FC3FC01A237EA21F>I<00FE0007FF800F87C01E01E03E01F07C00F07C00F8FC
  495. 00F8FC00F8FFFFF8FFFFF8FC0000FC0000FC00007C00007C00007E00003E00181F00300FC07003
  496. FFC000FF0015167E951A>I<003F8000FFC001E3E003C7E007C7E00F87E00F83C00F80000F8000
  497. 0F80000F80000F80000F8000FFFC00FFFC000F80000F80000F80000F80000F80000F80000F8000
  498. 0F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80007FF8007FF800
  499. 13237FA211>I<03FC1E0FFF7F1F0F8F3E07CF3C03C07C03E07C03E07C03E07C03E07C03E03C03
  500. C03E07C01F0F801FFF0013FC003000003000003800003FFF801FFFF00FFFF81FFFFC3800FC7000
  501. 3EF0001EF0001EF0001EF0001E78003C7C007C3F01F80FFFE001FF0018217E951C>I<FF000000
  502. FF0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000
  503. 001F0000001F0000001F07E0001F1FF8001F307C001F403C001F803E001F803E001F003E001F00
  504. 3E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F
  505. 003E001F003E001F003E00FFE1FFC0FFE1FFC01A237EA21F>I<1C003E007F007F007F003E001C
  506. 000000000000000000000000000000FF00FF001F001F001F001F001F001F001F001F001F001F00
  507. 1F001F001F001F001F001F001F001F00FFE0FFE00B247EA310>I<FF000000FF0000001F000000
  508. 1F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000001F0000
  509. 001F00FF801F00FF801F0038001F0060001F01C0001F0380001F0700001F0E00001F1C00001F7E
  510. 00001FFF00001FCF00001F0F80001F07C0001F03E0001F01E0001F01F0001F00F8001F007C001F
  511. 003C00FFE0FFC0FFE0FFC01A237EA21E>107 D<FF00FF001F001F001F001F001F001F001F001F
  512. 001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00
  513. 1F001F001F001F00FFE0FFE00B237EA210>I<FF07F007F000FF1FFC1FFC001F303E303E001F40
  514. 3E403E001F801F801F001F801F801F001F001F001F001F001F001F001F001F001F001F001F001F
  515. 001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00
  516. 1F001F001F001F001F001F001F001F001F001F001F00FFE0FFE0FFE0FFE0FFE0FFE02B167E9530
  517. >I<FF07E000FF1FF8001F307C001F403C001F803E001F803E001F003E001F003E001F003E001F
  518. 003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E00
  519. 1F003E00FFE1FFC0FFE1FFC01A167E951F>I<00FE0007FFC00F83E01E00F03E00F87C007C7C00
  520. 7C7C007CFC007EFC007EFC007EFC007EFC007EFC007EFC007E7C007C7C007C3E00F81F01F00F83
  521. E007FFC000FE0017167E951C>I<FF0FE000FF3FF8001FF07C001F803E001F001F001F001F801F
  522. 001F801F000FC01F000FC01F000FC01F000FC01F000FC01F000FC01F000FC01F000FC01F001F80
  523. 1F001F801F803F001FC03E001FE0FC001F3FF8001F0FC0001F0000001F0000001F0000001F0000
  524. 001F0000001F0000001F0000001F000000FFE00000FFE000001A207E951F>I<FE1F00FE3FC01E
  525. 67E01EC7E01E87E01E87E01F83C01F00001F00001F00001F00001F00001F00001F00001F00001F
  526. 00001F00001F00001F00001F0000FFF000FFF00013167E9517>114 D<0FF3003FFF00781F0060
  527. 0700E00300E00300F00300FC00007FE0007FF8003FFE000FFF0001FF00000F80C00780C00380E0
  528. 0380E00380F00700FC0E00EFFC00C7F00011167E9516>I<018000018000018000018000038000
  529. 0380000780000780000F80003F8000FFFF00FFFF000F80000F80000F80000F80000F80000F8000
  530. 0F80000F80000F80000F80000F80000F81800F81800F81800F81800F81800F830007C30003FE00
  531. 00F80011207F9F16>I<FF01FE00FF01FE001F003E001F003E001F003E001F003E001F003E001F
  532. 003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E001F003E00
  533. 1F007E001F00FE000F81BE0007FF3FC001FC3FC01A167E951F>I<FFE01FE0FFE01FE00F800600
  534. 0F8006000FC00E0007C00C0007E01C0003E0180003E0180001F0300001F0300000F8600000F860
  535. 00007CC000007CC000007FC000003F8000003F8000001F0000001F0000000E0000000E00001B16
  536. 7F951E>I<FFE7FF07F8FFE7FF07F81F007800C00F807801800F807C01800F807C018007C07E03
  537. 0007C0DE030007E0DE070003E0DF060003E18F060001F18F0C0001F38F8C0001FB079C0000FB07
  538. D80000FE03D800007E03F000007E03F000007C01F000003C01E000003800E000001800C0002516
  539. 7F9528>I<FFE07FC0FFE07FC00F801C0007C0380003E0700003F0600001F8C00000F98000007F
  540. 8000003F0000001F0000001F8000003FC0000037C0000063E00000C1F00001C0F8000380FC0007
  541. 007E000E003E00FF80FFE0FF80FFE01B167F951E>I<FFE01FE0FFE01FE00F8006000F8006000F
  542. C00E0007C00C0007E01C0003E0180003E0180001F0300001F0300000F8600000F86000007CC000
  543. 007CC000007FC000003F8000003F8000001F0000001F0000000E0000000E0000000C0000000C00
  544. 000018000078180000FC380000FC300000FC60000069C000007F8000001F0000001B207F951E>
  545. I<7FFFF07FFFF07C03E07007C0600FC0E01F80C01F00C03E00C07E0000FC0000F80001F00003F0
  546. 3007E03007C0300F80701F80703F00603E00E07C03E0FFFFE0FFFFE014167E9519>I
  547. E /Fi 51 122 df<1C003E007F00FF80FF80FF807F003E001C0009097B8813>46
  548. D<00000300000007800000078000000F8000000F0000000F0000001F0000001E0000003E000000
  549. 3C0000003C0000007C0000007800000078000000F8000000F0000001F0000001E0000001E00000
  550. 03E0000003C0000003C0000007C00000078000000F8000000F0000000F0000001F0000001E0000
  551. 003E0000003C0000003C0000007C0000007800000078000000F8000000F0000001F0000001E000
  552. 0001E0000003E0000003C0000003C0000007C00000078000000F8000000F0000000F0000001F00
  553. 00001E0000001E0000003E0000003C0000007C0000007800000078000000F8000000F0000000F0
  554. 00000060000000193C7CAC22>I<003F800001FFF00007E0FC000FC07E001F803F001F803F003F
  555. 001F803F001F807F001FC07F001FC07F001FC07F001FC0FF001FE0FF001FE0FF001FE0FF001FE0
  556. FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001F
  557. E0FF001FE07F001FC07F001FC07F001FC07F001FC03F001F803F001F801F803F001F803F000FC0
  558. 7E0007E0FC0001FFF000003F80001B277DA622>I<000E00001E00007E0007FE00FFFE00FFFE00
  559. F8FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00
  560. 00FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE00
  561. 00FE0000FE0000FE0000FE007FFFFE7FFFFE7FFFFE17277BA622>I<00FF800003FFF0000FFFFC
  562. 001F03FE003800FF007C007F80FE003FC0FF003FC0FF003FE0FF001FE0FF001FE07E001FE03C00
  563. 3FE000003FE000003FC000003FC000007F8000007F000000FE000000FC000001F8000003F00000
  564. 03E00000078000000F0000001E0000003C00E0007000E000E000E001C001C0038001C0070001C0
  565. 0FFFFFC01FFFFFC03FFFFFC07FFFFFC0FFFFFF80FFFFFF80FFFFFF801B277DA622>I<007F8000
  566. 03FFF00007FFFC000F81FE001F00FF003F80FF003F807F803F807F803F807F801F807F800F007F
  567. 800000FF000000FF000000FE000001FC000001F8000007F00000FFC00000FFF0000001FC000000
  568. 7E0000007F0000007F8000003FC000003FC000003FE000003FE03C003FE07E003FE0FF003FE0FF
  569. 003FE0FF003FC0FF007FC07E007F807C007F003F01FE001FFFFC0007FFF00000FF80001B277DA6
  570. 22>I<00000E0000001E0000003E0000007E000000FE000000FE000001FE000003FE0000077E00
  571. 000E7E00000E7E00001C7E0000387E0000707E0000E07E0000E07E0001C07E0003807E0007007E
  572. 000E007E000E007E001C007E0038007E0070007E00E0007E00FFFFFFF8FFFFFFF8FFFFFFF80000
  573. FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE00007FFFF8007FFFF800
  574. 7FFFF81D277EA622>I<0C0003000F803F000FFFFE000FFFFC000FFFF8000FFFF0000FFFE0000F
  575. FFC0000FFE00000E0000000E0000000E0000000E0000000E0000000E0000000E7FC0000FFFF800
  576. 0F80FC000E003E000C003F0000001F8000001FC000001FC000001FE000001FE018001FE07C001F
  577. E0FE001FE0FE001FE0FE001FE0FE001FC0FC001FC078003F8078003F803C007F001F01FE000FFF
  578. F80003FFF00000FF80001B277DA622>I<0007F000003FFC0000FFFE0001FC0F0003F01F8007E0
  579. 3F800FC03F801FC03F801F803F803F801F003F8000007F0000007F0000007F000000FF000000FF
  580. 0FC000FF3FF800FF707C00FFC03E00FFC03F00FF801F80FF801FC0FF001FC0FF001FE0FF001FE0
  581. FF001FE07F001FE07F001FE07F001FE07F001FE03F001FE03F001FC01F801FC01F803F800FC03F
  582. 0007E07E0003FFFC0000FFF000003FC0001B277DA622>I<380000003E0000003FFFFFF03FFFFF
  583. F03FFFFFF07FFFFFE07FFFFFC07FFFFF807FFFFF0070000E0070000E0070001C00E0003800E000
  584. 7000E000E0000000E0000001C000000380000007800000078000000F0000000F0000001F000000
  585. 1F0000003F0000003E0000003E0000007E0000007E0000007E0000007E000000FE000000FE0000
  586. 00FE000000FE000000FE000000FE000000FE000000FE0000007C0000003800001C297CA822>I<
  587. 003FC00001FFF00003FFFC0007C07E000F003F001E001F001E000F803E000F803E000F803F000F
  588. 803F000F803FC00F003FF01F001FFC1E001FFE3C000FFFF80007FFE00003FFF80001FFFC0001FF
  589. FE0007FFFF000F0FFF801E03FFC03C01FFC07C007FE078001FE0F80007E0F80007E0F80003E0F8
  590. 0003E0F80003E0F80003C07C0003C07C0007803F000F001FC03E000FFFFC0003FFF800007FC000
  591. 1B277DA622>I<007F800001FFF00007FFF8000FE0FC001F807E003F803F007F003F007F001F80
  592. FF001F80FF001FC0FF001FC0FF001FC0FF001FE0FF001FE0FF001FE0FF001FE07F001FE07F003F
  593. E03F003FE01F807FE00F807FE007C1DFE003FF9FE0007E1FE000001FE000001FC000001FC00000
  594. 1FC000003F801F003F803F803F003F803F003F807E003F807C001F01F8001E03F0000FFFE00007
  595. FF800001FE00001B277DA622>I<000003800000000007C00000000007C0000000000FE0000000
  596. 000FE0000000000FE0000000001FF0000000001FF0000000003FF8000000003FF8000000003FF8
  597. 0000000073FC0000000073FC00000000F3FE00000000E1FE00000000E1FE00000001C0FF000000
  598. 01C0FF00000003C0FF80000003807F80000007807FC0000007003FC0000007003FC000000E003F
  599. E000000E001FE000001E001FF000001C000FF000001FFFFFF000003FFFFFF800003FFFFFF80000
  600. 780007FC0000700003FC0000700003FC0000E00001FE0000E00001FE0001E00001FF0001C00000
  601. FF0001C00000FF00FFFE001FFFFEFFFE001FFFFEFFFE001FFFFE2F297EA834>65
  602. D<00003FF001800003FFFE0380000FFFFF8780003FF007DF8000FF8001FF8001FE00007F8003FC
  603. 00003F8007F000001F800FF000000F801FE0000007801FE0000007803FC0000007803FC0000003
  604. 807FC0000003807F80000003807F8000000000FF8000000000FF8000000000FF8000000000FF80
  605. 00000000FF8000000000FF8000000000FF8000000000FF8000000000FF80000000007F80000000
  606. 007F80000000007FC0000003803FC0000003803FC0000003801FE0000003801FE0000007000FF0
  607. 0000070007F000000E0003FC00001E0001FE00003C0000FF8000F800003FF007E000000FFFFFC0
  608. 000003FFFF000000003FF8000029297CA832>67 D<FFFFFFF80000FFFFFFFF8000FFFFFFFFE000
  609. 03FC001FF80003FC0007FC0003FC0001FE0003FC0000FF0003FC00007F8003FC00003FC003FC00
  610. 001FC003FC00001FE003FC00001FE003FC00000FF003FC00000FF003FC00000FF003FC00000FF0
  611. 03FC00000FF803FC00000FF803FC00000FF803FC00000FF803FC00000FF803FC00000FF803FC00
  612. 000FF803FC00000FF803FC00000FF803FC00000FF803FC00000FF003FC00000FF003FC00000FF0
  613. 03FC00001FE003FC00001FE003FC00001FC003FC00003FC003FC00007F8003FC00007F0003FC00
  614. 01FE0003FC0003FC0003FC001FF800FFFFFFFFE000FFFFFFFF8000FFFFFFFC00002D297DA835>
  615. I<FFFFFFFFE0FFFFFFFFE0FFFFFFFFE003FC001FE003FC0007F003FC0001F003FC0001F003FC00
  616. 00F003FC00007003FC00007003FC00007003FC01C07803FC01C03803FC01C03803FC01C03803FC
  617. 03C00003FC03C00003FC0FC00003FFFFC00003FFFFC00003FFFFC00003FC0FC00003FC03C00003
  618. FC03C00003FC01C00E03FC01C00E03FC01C00E03FC01C01C03FC00001C03FC00001C03FC00001C
  619. 03FC00003C03FC00003803FC00007803FC0000F803FC0001F803FC0003F803FC001FF8FFFFFFFF
  620. F0FFFFFFFFF0FFFFFFFFF027297DA82D>I<FFFFFFFFC0FFFFFFFFC0FFFFFFFFC003FC003FC003
  621. FC000FE003FC0003E003FC0001E003FC0001E003FC0000E003FC0000E003FC0000E003FC0000F0
  622. 03FC03807003FC03807003FC03807003FC03800003FC07800003FC07800003FC1F800003FFFF80
  623. 0003FFFF800003FFFF800003FC1F800003FC07800003FC07800003FC03800003FC03800003FC03
  624. 800003FC03800003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC
  625. 00000003FC00000003FC000000FFFFFC0000FFFFFC0000FFFFFC000024297DA82B>I<FFFFF01F
  626. FFFEFFFFF01FFFFEFFFFF01FFFFE03FC00007F8003FC00007F8003FC00007F8003FC00007F8003
  627. FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC0000
  628. 7F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FFFFFFFF8003FFFFFFFF8003
  629. FFFFFFFF8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC0000
  630. 7F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F8003
  631. FC00007F8003FC00007F8003FC00007F8003FC00007F8003FC00007F80FFFFF01FFFFEFFFFF01F
  632. FFFEFFFFF01FFFFE2F297DA836>72 D<FFFFFCFFFFFCFFFFFC01FE0001FE0001FE0001FE0001FE
  633. 0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE
  634. 0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE0001FE
  635. 0001FE0001FE0001FE0001FE00FFFFFCFFFFFCFFFFFC16297EA81A>I<FFFFFC0000FFFFFC0000
  636. FFFFFC000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC0000
  637. 0003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00
  638. 000003FC00000003FC00000003FC00000003FC00000003FC00000003FC00000003FC0001C003FC
  639. 0001C003FC0001C003FC0001C003FC0003C003FC00038003FC00038003FC00078003FC00078003
  640. FC000F8003FC000F8003FC001F8003FC007F8003FC01FF00FFFFFFFF00FFFFFFFF00FFFFFFFF00
  641. 22297DA829>76 D<FFFE0000001FFFC0FFFE0000001FFFC0FFFF0000003FFFC003FF0000003FF0
  642. 0003FF0000003FF00003BF80000077F0000F0000003FE0000E0000001FF0001E0000001FF8003C000000
  643. 0FF8003800000007FC007800000007FE00F000000003FE00E000000001FF01E000000001FF83C0
  644. 00000000FF8380000000007FC780000000007FEF00000000003FEE00000000001FFE0000000000
  645. 0FFC00000000000FF8000000000007F8000000000007F8000000000007F8000000000007F80000
  646. 00000007F8000000000007F8000000000007F8000000000007F8000000000007F8000000000007
  647. F8000000000007F8000000000007F8000000000007F8000000000007F80000000001FFFFE00000
  648. 0001FFFFE000000001FFFFE0000031297FA834>89 D<01FF800007FFF0000F81F8001FC07E001F
  649. C07E001FC03F000F803F8007003F8000003F8000003F8000003F80000FFF8000FFFF8007FC3F80
  650. 0FE03F803F803F803F003F807F003F80FE003F80FE003F80FE003F80FE003F807E007F807F00DF
  651. 803F839FFC0FFF0FFC01FC03FC1E1B7E9A21>97 D<FFE0000000FFE0000000FFE00000000FE000
  652. 00000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0
  653. 0000000FE00000000FE00000000FE00000000FE1FE00000FE7FF80000FFE07E0000FF801F0000F
  654. F000F8000FE000FC000FE000FE000FE0007F000FE0007F000FE0007F000FE0007F800FE0007F80
  655. 0FE0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE0007F000FE0007F000FE0007F
  656. 000FE000FE000FE000FC000FF001F8000FF803F0000F9E07E0000F07FF80000E01FC0000212A7E
  657. A926>I<001FF80000FFFE0003F01F0007E03F800FC03F801F803F803F801F007F800E007F0000
  658. 007F000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000007F0000007F00
  659. 00007F8000003F8001C01F8001C00FC0038007E0070003F01E0000FFFC00001FE0001A1B7E9A1F
  660. >I<00003FF80000003FF80000003FF800000003F800000003F800000003F800000003F8000000
  661. 03F800000003F800000003F800000003F800000003F800000003F800000003F800000003F80000
  662. 1FE3F80000FFFBF80003F03FF80007E00FF8000FC007F8001F8003F8003F8003F8007F0003F800
  663. 7F0003F8007F0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003F8
  664. 00FF0003F8007F0003F8007F0003F8007F0003F8003F8003F8001F8003F8000F8007F80007C00F
  665. F80003F03BFF8000FFF3FF80003FC3FF80212A7EA926>I<003FE00001FFF80003F07E0007C01F
  666. 000F801F801F800F803F800FC07F000FC07F0007C07F0007E0FF0007E0FF0007E0FFFFFFE0FFFF
  667. FFE0FF000000FF000000FF0000007F0000007F0000007F0000003F8000E01F8000E00FC001C007
  668. E0038003F81F0000FFFE00001FF0001B1B7E9A20>I<0007F0003FFC00FE3E01F87F03F87F03F0
  669. 7F07F07F07F03E07F00007F00007F00007F00007F00007F00007F000FFFFC0FFFFC0FFFFC007F0
  670. 0007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0
  671. 0007F00007F00007F00007F00007F00007F00007F0007FFF807FFF807FFF80182A7EA915>I<00
  672. FF81F003FFE7F80FC1FE7C1F80FC7C1F007C383F007E107F007F007F007F007F007F007F007F00
  673. 7F007F007F007F003F007E001F007C001F80FC000FC1F8001FFFE00018FF800038000000380000
  674. 003C0000003E0000003FFFF8001FFFFF001FFFFF800FFFFFC007FFFFE01FFFFFF03E0007F07C00
  675. 01F8F80000F8F80000F8F80000F8F80000F87C0001F03C0001E01F0007C00FC01F8003FFFE0000
  676. 7FF0001E287E9A22>I<FFE0000000FFE0000000FFE00000000FE00000000FE00000000FE00000
  677. 000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000
  678. 00000FE00000000FE07F00000FE1FFC0000FE787E0000FEE03F0000FF803F0000FF803F8000FF0
  679. 03F8000FF003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000F
  680. E003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F800
  681. 0FE003F8000FE003F800FFFE3FFF80FFFE3FFF80FFFE3FFF80212A7DA926>I<07000F801FC03F
  682. E03FE03FE01FC00F8007000000000000000000000000000000FFE0FFE0FFE00FE00FE00FE00FE0
  683. 0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0FFFEFFFEFF
  684. FE0F2B7DAA14>I<FFE00000FFE00000FFE000000FE000000FE000000FE000000FE000000FE000
  685. 000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE01FFC0FE01FFC0FE0
  686. 1FFC0FE007800FE00F000FE01E000FE03C000FE078000FE0E0000FE3C0000FE7C0000FEFE0000F
  687. FFE0000FFFF0000FF3F8000FE3F8000FC1FC000FC0FE000FC07F000FC07F000FC03F800FC01FC0
  688. 0FC00FC00FC00FE0FFFC3FFEFFFC3FFEFFFC3FFE1F2A7EA924>107 D<FFE0FFE0FFE00FE00FE0
  689. 0FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00F
  690. E00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE0FFFEFFFEFFFE0F2A7DA9
  691. 14>I<FFC07F800FF000FFC1FFE03FFC00FFC383F0707E000FC603F8C07F000FCC01F9803F000F
  692. D801FF003F800FF001FE003F800FF001FE003F800FE001FC003F800FE001FC003F800FE001FC00
  693. 3F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE0
  694. 01FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F800FE001FC003F
  695. 800FE001FC003F800FE001FC003F80FFFE1FFFC3FFF8FFFE1FFFC3FFF8FFFE1FFFC3FFF8351B7D
  696. 9A3A>I<FFC07F0000FFC1FFC000FFC787E0000FCE03F0000FD803F0000FD803F8000FF003F800
  697. 0FF003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8
  698. 000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003
  699. F8000FE003F800FFFE3FFF80FFFE3FFF80FFFE3FFF80211B7D9A26>I<003FE00001FFFC0003F0
  700. 7E000FC01F801F800FC03F800FE03F0007E07F0007F07F0007F07F0007F0FF0007F8FF0007F8FF
  701. 0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F87F0007F07F0007F03F800FE03F800FE0
  702. 1F800FC00FC01F8007F07F0001FFFC00003FE0001D1B7E9A22>I<FFE1FE0000FFE7FF8000FFFE
  703. 07E0000FF803F0000FF001F8000FE000FC000FE000FE000FE000FF000FE0007F000FE0007F000F
  704. E0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE0007F800FE0007F00
  705. 0FE000FF000FE000FF000FE000FE000FE001FC000FF001F8000FF803F0000FFE0FE0000FE7FF80
  706. 000FE1FC00000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000
  707. 00000FE00000000FE0000000FFFE000000FFFE000000FFFE00000021277E9A26>I<FFC1F0FFC7
  708. FCFFCE3E0FD87F0FD87F0FF07F0FF03E0FF01C0FE0000FE0000FE0000FE0000FE0000FE0000FE0
  709. 000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE000FFFF00FFFF00FFFF00181B
  710. 7E9A1C>114 D<03FE300FFFF01E03F03800F0700070F00070F00070F80070FC0000FFE0007FFE
  711. 007FFF803FFFE01FFFF007FFF800FFF80003FC0000FC60007CE0003CF0003CF00038F80038FC00
  712. 70FF01E0F7FFC0C1FF00161B7E9A1B>I<00700000700000700000700000F00000F00000F00001
  713. F00003F00003F00007F0001FFFF0FFFFF0FFFFF007F00007F00007F00007F00007F00007F00007
  714. F00007F00007F00007F00007F00007F00007F00007F03807F03807F03807F03807F03807F03803
  715. F03803F87001F86000FFC0001F8015267FA51B>I<FFE03FF800FFE03FF800FFE03FF8000FE003
  716. F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE0
  717. 03F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000FE003F8000F
  718. E003F8000FE003F8000FE007F80007E007F80007E00FF80003F03BFF8001FFF3FF80003FC3FF80
  719. 211B7D9A26>I<FFFE03FF80FFFE03FF80FFFE03FF8007F000700007F000700007F800F00003F8
  720. 00E00003FC01E00001FC01C00001FC01C00000FE03800000FE038000007F070000007F07000000
  721. 7F8F0000003F8E0000003FDE0000001FDC0000001FDC0000000FF80000000FF80000000FF80000
  722. 0007F000000007F000000003E000000003E000000001C00000211B7F9A24>I<FFFE7FFC0FFEFF
  723. FE7FFC0FFEFFFE7FFC0FFE0FE007E000E007F003F001C007F003F001C007F807F803C003F807F8
  724. 038003F807F8038001FC0EFC070001FC0EFC070001FE1EFC0F0000FE1C7E0E0000FE1C7E0E0000
  725. FF383F1E00007F383F1C00007F783F3C00003FF01FB800003FF01FB800003FF01FF800001FE00F
  726. F000001FE00FF000000FC007E000000FC007E000000FC007E00000078003C00000078003C0002F
  727. 1B7F9A32>I<FFFE03FF80FFFE03FF80FFFE03FF8007F000700007F000700007F800F00003F800
  728. E00003FC01E00001FC01C00001FC01C00000FE03800000FE038000007F070000007F070000007F
  729. 8F0000003F8E0000003FDE0000001FDC0000001FDC0000000FF80000000FF80000000FF8000000
  730. 07F000000007F000000003E000000003E000000001C000000001C0000000038000000003800000
  731. 38078000007C07000000FE0F000000FE0E000000FE1E000000FE3C0000007C780000003FE00000
  732. 000FC000000021277F9A24>121 D E /Fj 14 118 df<FFFFFFC03FFFFFF0FFFFFFC03FFFFFF0
  733. FFFFFFC03FFFFFF000FFC000003FF00000FFC000003FF00000FFC000003FF00000FFC000003FF0
  734. 0000FFC000003FF00000FFC000003FF00000FFC000003FF00000FFC000003FF00000FFC000003F
  735. F00000FFC000003FF00000FFC000003FF00000FFC000003FF00000FFC000003FF00000FFC00000
  736. 3FF00000FFC000003FF00000FFC000003FF00000FFC000003FF00000FFC000003FF00000FFC000
  737. 003FF00000FFFFFFFFFFF00000FFFFFFFFFFF00000FFFFFFFFFFF00000FFC000003FF00000FFC0
  738. 00003FF00000FFC000003FF00000FFC000003FF00000FFC000003FF00000FFC000003FF00000FF
  739. C000003FF00000FFC000003FF00000FFC000003FF00000FFC000003FF00000FFC000003FF00000
  740. FFC000003FF00000FFC000003FF00000FFC000003FF00000FFC000003FF00000FFC000003FF000
  741. 00FFC000003FF00000FFC000003FF00000FFC000003FF00000FFC000003FF00000FFC000003FF0
  742. 00FFFFFFC03FFFFFF0FFFFFFC03FFFFFF0FFFFFFC03FFFFFF03C317EB041>72
  743. D<FFFF8000000001FFFF80FFFFC000000003FFFF80FFFFE000000007FFFF8000FFE000000007FF
  744. 800000EFF00000000EFF800000EFF00000000EFF800000EFF00000000EFF800000E7F80000001C
  745. FF800000E7F80000001CFF800000E3FC00000038FF800000E3FC00000038FF800000E1FE000000
  746. 70FF800000E1FE00000070FF800000E0FF000003
  747. bop 75 50 a Fg(1)41 b(INTR)o(ODUCTION)1378 b Ff(2)137 195 y(Our)15
  748. b(compiler)d(do)q(es)i(not)g(\(y)o(et\))g(pro)q(duce)h(stand-alone)e
  749. (executables.)20 b(Program)12 b(execution)j(o)q(ccurs)g(within)75
  750. 245 y(the)f(en)o(vironmen)o(t)f(of)h(the)g(compiler.)137 320
  751. y(W)m(e)33 b(supply)g(man)o(y)e(Hask)o(ell)i(programs)f(and)h(utilities)f(in)
  752. g(our)i(distribution.)75 b(The)33 b(directory)75 369 y Fd($HASKELL/progs)11
  753. b Ff(con)o(tains)j(man)o(y)e(examples)h(of)h(Hask)o(ell)f(programming.)i
  754. (Within)e(this)h(directory)m(,)g Fd(prelude)75 419 y Ff(con)o(tains)g(the)i
  755. (v)o(ersion)e(of)g(the)h(prelude)h(used)f(b)o(y)f(the)i(system,)e
  756. Fd(demo)f Ff(con)o(tains)i(man)o(y)d(sample)i(programs,)f Fd(lib)75
  757. 469 y Ff(con)o(tains)k(a)g(n)o(um)o(b)q(er)g(of)f(useful)h(libraries,)h
  758. (including)e(the)i(X)f(windo)o(w)f(in)o(terface.)29 b(All)16
  759. b(do)q(cumen)o(tation)g(is)h(in)75 519 y Fd($HASKELL/doc)n
  760. Ff(.)137 594 y(The)k(one)g(incompatibili)o(t)o(y)c(b)q(et)o(w)o(een)22
  761. b(our)f(system)f(and)g(standard)h(Hask)o(ell)f(is)g(the)h(I/O)f(system.)38
  762. b(The)75 643 y(monadic)15 b(I/O)i(system)g(w)o(e)g(use)g(is)g(based)h(on)e
  763. (the)i(prop)q(osed)f(Hask)o(ell)g(1.3)f(functionalit)o(y)m(,)f(although)h
  764. (some)g(of)75 693 y(the)h(features)h(are)f(not)f(y)o(et)h(implem)o(en)o(ted)e
  765. (and)h(other)h(features)h(ma)o(y)c(c)o(hange)j(further)g(b)q(efore)h(Hask)o
  766. (ell)e(1.3)f(is)75 743 y(o\016cially)d(adopted.)18 b(W)m(e)13
  767. b(pro)o(vide)g(a)h(compatibilit)o(y)c(pac)o(k)n(age)j(for)h(the)g(con)o(tin)o
  768. (uation-based)f(I/O)h(from)d(Hask)o(ell)75 793 y(1.2,)h(but)j(stream)e(I/O)h
  769. (is)g(not)f(a)o(v)n(ailable.)75 934 y Fh(1.2)56 b(Hask)n(ell)17
  770. b(Con)n(tacts)75 1035 y Ff(There)d(are)g(a)f(n)o(um)o(b)q(er)f(of)h
  771. (addresses)i(asso)q(ciated)f(with)f(Hask)o(ell)g(and)g(the)h(Y)m(ale)e(Hask)o
  772. (ell)h(Pro)r(ject,)h(as)f(describ)q(ed)75 1085 y(b)q(elo)o(w.)137
  773. 1202 y Fe(\017)21 b Fd(haskell-requests)o(@cs.y)o(ale.e)o(du)179
  774. 1251 y Ff(Use)16 b(this)g(address)h(to)e(comm)o(unicate)f(with)h(us)h(ab)q
  775. (out)g(our)f(compiler.)22 b(W)m(e)15 b(also)g(main)o(tain)e(the)j(Hask)o(ell)
  776. 179 1301 y(mailing)10 b(list.)137 1384 y Fe(\017)21 b Fd(haskell-bugs@cs.)o
  777. (yale.)o(edu)179 1434 y Ff(Send)14 b(bug)g(rep)q(orts)h(to)f(this)g(address.)
  778. 137 1517 y Fe(\017)21 b Fd(haskell@cs.yale.)o(edu)179 1567
  779. y Ff(This)13 b(is)f(a)h(mailing)c(list)k(for)f(general)h(issues)h(concerning)
  780. g(the)f(language.)k(Messages)d(sen)o(t)g(to)f(this)g(address)179
  781. 1617 y(are)19 b(forw)o(arded)g(to)g(all)e(mem)o(b)q(ers)h(of)g(the)i(Hask)o
  782. (ell)e(discussion)i(list,)f(whic)o(h)g(has)g(a)f(USA)h(distribution)179
  783. 1666 y(managed)10 b(b)o(y)h(Y)m(ale)g(and)g(an)g(Europ)q(ean)i(distribution)e
  784. (managed)f(b)o(y)h(the)h(Univ)o(ersit)o(y)g(of)e(Glasgo)o(w.)16
  785. b(Please)179 1716 y(do)e(not)g(send)h(bug)f(rep)q(orts)i(or)e(other)h
  786. (messages)f(sp)q(eci\014cally)h(ab)q(out)f(the)h(Y)m(ale)e(implemen)o(tation)
  787. e(to)j(this)179 1766 y(list!)137 1849 y Fe(\017)21 b Fd(ftp://ftp.dcs.gl)o
  788. (asgow)o(.ac.u)o(k/pub)o(/glas)o(gow-f)o(p/gl)o(asgow)o(-fp.h)o(tml)179
  789. 1899 y Ff(This)13 b(is)h(a)f(W)m(orld-Wide-W)m(eb)f(page)h(describing)h
  790. (functional)f(programmi)o(ng)e(at)i(Glasgo)o(w)f(and)i(has)g(links)179
  791. 1949 y(to)g(other)g(functional)f(programmi)o(ng)e(resources.)75
  792. 2090 y Fh(1.3)56 b(Getting)17 b(Started)h(with)h(Y)-5 b(ale)19
  793. b(Hask)n(ell)75 2191 y Ff(First)c(time)e(users)i(of)f(Y)m(ale)g(Hask)o(ell)f
  794. (should)h(refer)i(to)e(section)h(13)f(whic)o(h)g(con)o(tains)g(instructions)h
  795. (for)f(installing)75 2241 y(and)g(con\014guring)g(Y)m(ale)g(Hask)o(ell.)19
  796. b(Y)m(ou)14 b(need)h(to)f(c)o(ho)q(ose)i(b)q(et)o(w)o(een)f(running)f(the)h
  797. (system)g(using)f(the)h(command)75 2291 y(in)o(terface)g(\(as)g(describ)q(ed)
  798. h(in)e(5\))g(or)h(using)f(it)g(through)h(Emacs.)k(W)m(e)14
  799. b(suggest)h(y)o(ou)f(use)i(the)f(Emacs)f(in)o(terface)h(if)75
  800. 2341 y(p)q(ossible.)137 2416 y(W)m(e)e(pro)o(vide)f(an)h(online)f(supplemen)o
  801. (t)h(to)f(the)i(Hudak)e(and)h(F)m(asel)g(tutorial)e(\(lo)q(cated)j(in)e(the)h
  802. Fd($HASKELL/doc)75 2465 y Ff(directory)18 b(and)e(published)i(in)e(Sigplan)g
  803. (Notices\))h(as)g(part)h(of)e(b)q(oth)h(the)g(Emacs)g(and)g(Macin)o(tosh)f
  804. (in)o(terfaces.)75 2515 y(W)m(e)f(strongly)g(recommend)f(that)i(no)o(vice)f
  805. (programmers)f(b)q(egin)h(b)o(y)h(running)f(this)g(tutorial,)g(since)h(it)f
  806. (explains)75 2565 y(b)q(oth)h(the)g(editor)f(commands)f(and)h(the)h(features)
  807. h(of)e(the)h(Hask)o(ell)f(language.)22 b(Unless)16 b(y)o(ou)f(need)i(some)d
  808. (of)h(the)75 2615 y(more)d(adv)n(anced)i(features,)g(running)f(the)h
  809. (tutorial)f(should)g(explain)g(enough)h(of)e(the)i(editor)g(in)o(terface)g
  810. (for)f(most)75 2665 y(programming)o(.)p eop
  811. %%Page: 3 4
  812. bop 75 50 a Fg(2)41 b(USER)14 b(INTERF)-5 b(A)o(CE)15 b(O)o(VER)-5
  813. b(VIEW)1097 b Ff(3)137 195 y(F)m(rom)12 b(the)j(Emacs)e(in)o(terface,)h
  814. (start)h(this)f(tutorial)f(using)g(the)i(command)c Fd(M-x)75
  815. 245 y(haskell-tutorial)m Ff(.)34 b(F)m(rom)17 b(the)j(Macin)o(tosh)f(in)o
  816. (terface,)i(select)f(the)g Fd(Tutorial)d Ff(item)h(from)g(the)h
  817. Fd(Haskell)75 295 y Ff(men)o(u.)31 b(If)18 b(y)o(ou)g(can)h(not)f(use)h(an)g
  818. (editor)f(in)o(terface,)i(y)o(ou)e(can)h(still)e(run)i(the)g(example)e
  819. (programs)h(from)e(the)75 345 y(tutorial)i(b)o(y)g(breaking)h(them)f(out)g
  820. (of)g(the)i(tutorial)d(\014le)i(b)o(y)g(hand.)32 b(The)19 b(text)g(of)f(the)i
  821. (tutorial)e(is)g(found)g(in)75 394 y Fd($HASKELL/progs/tu)o(toria)o(l.lhs)l
  822. Ff(.)137 469 y(Sections)g(2,)g(3,)f(4,)h(and)f(5)g(describ)q(e)i(the)f(user)g
  823. (in)o(terface)g(to)f(Y)m(ale)g(Hask)o(ell.)27 b(If)17 b(y)o(ou)g(are)h
  824. (writing)e(Hask)o(ell)75 519 y(programs)h(that)h(consist)g(of)f(more)g(than)h
  825. (one)g(mo)q(dule)e(or)i(source)h(\014le,)g(y)o(ou)e(should)h(read)g(section)h
  826. (6)e(to)h(\014nd)75 569 y(out)d(ho)o(w)g(to)g(structure)j(y)o(our)d(program.)
  827. 21 b(The)15 b(remainder)g(of)g(the)h(man)o(ual)d(con)o(tains)i(information)d
  828. (ab)q(out)j(the)75 619 y(extensions)g(supp)q(orted)g(b)o(y)f(Y)m(ale)f(Hask)o
  829. (ell)g(and)h(hin)o(ts)g(for)g(debugging)f(and)h(e\016ciency)m(.)75
  830. 781 y Fi(2)69 b(User)23 b(In)n(terface)f(Ov)n(erview)75 897
  831. y Ff(W)m(e)14 b(curren)o(tly)h(supp)q(ort)h(three)g(di\013eren)o(t)f(user)h
  832. (in)o(terfaces)f(for)f(Y)m(ale)g(Hask)o(ell:)19 b(a)14 b(simple)f(command-l)o
  833. (ine)f(in)o(ter-)75 946 y(face,)i(an)f(Emacs-based)h(in)o(terface,)g(and)g(a)
  834. f(Macin)o(tosh)h(in)o(terface)h(with)e(its)h(o)o(wn)g(em)o(b)q(edded)g
  835. (editor.)137 1021 y(The)g(editor-based)g(in)o(terfaces)g(are)g(the)g(b)q(est)
  836. h(w)o(a)o(y)d(to)h(use)i(the)e(Y)m(ale)g(Hask)o(ell)g(system.)18
  837. b(Both)13 b(of)g(the)h(editor-)75 1071 y(based)e(in)o(terfaces)g(allo)o(w)e
  838. (y)o(ou)h(to)g(in)o(teract)h(with)g(the)g(command)c(in)o(terface)k(in)f(a)g
  839. (listener)h(windo)o(w)f(if)g(y)o(ou)g(c)o(ho)q(ose,)75 1121
  840. y(so)j(y)o(ou)g(ma)o(y)f(\014nd)h(it)g(useful)h(to)f(skim)f(the)i
  841. (description)g(of)e(the)i(command)d(in)o(terface)j(in)f(section)h(5)f(ev)o
  842. (en)h(if)e(y)o(ou)75 1170 y(use)i(the)f(editor)g(in)o(terfaces.)137
  843. 1245 y(The)h(remainder)e(of)g(this)h(section)h(describ)q(es)h(some)d
  844. (concepts)i(that)f(are)h(common)c(to)i(all)g(three)i(in)o(terfaces.)75
  845. 1386 y Fh(2.1)56 b(Incremen)n(tal)16 b(Compilation)75 1488
  846. y Ff(All)10 b(of)g(the)h(user)h(in)o(terfaces)g(supp)q(ort)f(an)g(incremen)o
  847. (tal)e(compilation)f(facilit)o(y)h(as)i(w)o(ell)f(as)h(commands)d(for)i
  848. (compil-)75 1538 y(ing)h(and)h(loading)e(programs)g(from)g(\014les.)18
  849. b(Incremen)o(tal)11 b(compilation)e(is)j(used)g(to)g(ev)n(aluate)f(Hask)o
  850. (ell)g(expressions)75 1587 y(in)i(the)i(con)o(text)g(of)e(a)g(selected)j
  851. (program.)137 1662 y(There)c(are)g(t)o(w)o(o)f(fundamen)o(tal)e(incremen)o
  852. (tal)h(compilation)e(op)q(erations.)17 b(The)12 b(\014rst)g(is)e(executing)i
  853. (a)f Fc(dialo)n(gue)s Ff(,)75 1712 y(or)k(an)g(expression)h(of)e(t)o(yp)q(e)h
  854. Fd(IO\(\))p Ff(.)21 b(The)15 b(second)h(op)q(eration)f(is)f(ev)n(aluating)g
  855. (Hask)o(ell)g(expressions)j(of)d(arbitrary)75 1762 y(t)o(yp)q(e)g(and)f(prin)
  856. o(ting)f(the)i(result.)19 b(\(This)13 b(second)h(op)q(eration)f(is)g
  857. (actually)g(handled)g(b)o(y)g(running)g(a)g(dialogue)f(that)75
  858. 1812 y(prin)o(ts)j(the)h(v)n(alue)e(of)h(the)h(expression)g(using)f(the)g
  859. Fd(Text)g Ff(class.\))22 b(In)15 b(b)q(oth)g(cases,)h(the)g(expression)g(is)f
  860. (ev)n(aluated)75 1861 y(in)e(the)i(con)o(text)g(of)e(a)g(program)g(mo)q
  861. (dule.)137 1936 y(When)18 b(y)o(ou)e(start)i(a)f(fresh)h(Hask)o(ell)e
  862. (without)h(an)o(y)g(\014les)g(loaded,)g(it)g(initially)d(creates)19
  863. b(an)e(empt)o(y)f(mo)q(dule)75 1986 y(named)f Fd(Main)g Ff(in)h(whic)o(h)g
  864. (expressions)h(ma)o(y)d(b)q(e)j(ev)n(aluated.)24 b(Y)m(ou)16
  865. b(can)g(use)h(this)f(to)g(explore)h(functions)f(in)f(the)75
  866. 2036 y(Hask)o(ell)e(prelude)i(in)o(teractiv)o(ely)f(without)f(creating)h(a)g
  867. (Hask)o(ell)f(source)j(\014le.)137 2111 y(In)g(addition)e(to)i(simply)d(prin)
  868. o(ting)i(or)h(executing)g(expressions,)h(the)f(incremen)o(tal)f(compiler)f
  869. (can)i(add)g(new)75 2160 y(de\014nitions)h(to)g(an)g(existing)f(mo)q(dule)g
  870. (without)h(recompiling)e(the)i(mo)q(dule.)26 b(This)17 b(is)g(primarily)d
  871. (useful)j(when)75 2210 y(editing)i(the)h(source)g(co)q(de)g(of)f(a)g(mo)q
  872. (dule)f(w)o(ould)g(cause)j(noticeable)e(recompilation)e(dela)o(ys.)34
  873. b(These)21 b(added)75 2260 y(de\014nitions)16 b(are)h(stored)g(in)f(a)g
  874. Fc(scr)n(atch)i(p)n(ad)j Ff(asso)q(ciated)c(with)f(a)g(mo)q(dule.)24
  875. b(The)17 b(presen)o(tation)g(of)f(the)h(scratc)o(h)75 2310
  876. y(pad)c(dep)q(ends)i(on)e(the)g(in)o(terface)h(but)g(in)e(all)g(cases)j
  877. (there)f(are)g(a)f(n)o(um)o(b)q(er)f(of)h(restrictions)h(on)f(de\014nitions)g
  878. (whic)o(h)75 2360 y(y)o(ou)g(can)i(place)f(in)f(a)h(scratc)o(h)h(pad:)137
  879. 2476 y Fe(\017)21 b Ff(A)16 b(scratc)o(h)h(pad)f(ma)o(y)d(not)j(con)o(tain)g
  880. (an)o(y)f(imp)q(ort)f(or)i(\014xit)o(y)f(declarations.)24 b(Only)16
  881. b(names)f(visible)g(in)g(the)179 2526 y(asso)q(ciated)f(mo)q(dule)f(or)h
  882. (within)f(the)h(pad)g(itself)g(can)g(b)q(e)g(referenced.)137
  883. 2609 y Fe(\017)21 b Ff(No)14 b(de\014nition)f(in)g(a)h(pad)g(can)g(b)q(e)g
  884. (exp)q(orted)h(from)e(the)h(asso)q(ciated)h(mo)q(dule.)137
  885. 2692 y Fe(\017)21 b Ff(The)14 b(pad)g(cannot)g(rede\014ne)i(an)o(ything)c(in)
  886. i(the)g(asso)q(ciated)h(mo)q(dule.)p eop
  887. %%Page: 4 5
  888. bop 75 50 a Fg(3)41 b(USING)14 b(HASKELL)h(FR)o(OM)e(EMA)o(CS)1069
  889. b Ff(4)137 195 y(In)14 b(addition)f(to)h(program)e(execution,)i(the)h(v)n
  890. (arious)e(in)o(terfaces)i(pro)o(vide)e(the)i(follo)o(wing)c(basic)j
  891. (services:)137 303 y Fe(\017)21 b Ff(Compilatio)o(n)12 b(of)h(Hask)o(ell)h
  892. (programs)f(and)h(in)o(terfaces.)20 b(Tw)o(o)14 b(basic)g(compilation)d(mo)q
  893. (des)j(are)g(used:)20 b(fast)179 353 y(compilation)8 b(to)i(in)o(terpreted)j
  894. (Lisp)d(co)q(de)i(for)e(immediate)e(execution,)k(and)e(slo)o(w)o(er)h
  895. (compilation)d(to)i(nativ)o(e)179 403 y(co)q(de)16 b(whic)o(h)g(is)g(b)q(oth)
  896. g(written)g(to)g(output)g(\014les)g(and)g(a)o(v)n(ailable)d(for)j(immedia)o
  897. (te)e(execution.)24 b(These)18 b(are)179 452 y(describ)q(ed)d(as)f
  898. Fc(lo)n(ad)19 b Ff(and)13 b Fc(c)n(ompile)s Ff(,)h(resp)q(ectiv)o(ely)m(.)137
  899. 535 y Fe(\017)21 b Ff(V)m(erb)q(osit)o(y)d(con)o(trol)f(for)h(the)g(compiler)
  900. f(and)h(system.)29 b(A)18 b(large)g(set)h(of)e(prin)o(ters)i(is)f(a)o(v)n
  901. (ailable)d(to)j(sho)o(w)179 585 y(in)o(termediate)c(results)j(during)e
  902. (compilation)d(and)j(con)o(trol)g(the)h(prin)o(ting)e(of)h(v)n(arious)f
  903. (system)h(messages.)179 635 y(There)g(are)f(not)g(generally)f(useful)h(to)g
  904. (the)h(casual)e(user.)137 718 y Fe(\017)21 b Ff(Optimizer)e(con)o(trols.)38
  905. b(Although)20 b(it)g(is)h(not)f(usually)g(necessary)i(to)e(c)o(hange)h(the)g
  906. (default)f(optimizer)179 768 y(settings,)14 b(commands)d(are)k(pro)o(vided)f
  907. (whic)o(h)f(con)o(trol)h(the)g(v)n(arious)g(optimizations.)137
  908. 851 y Fe(\017)21 b Ff(In)o(teraction)f(with)f(the)h(underlying)f(Lisp)g
  909. (system.)34 b(This)20 b(is)f(o)q(ccasionally)f(useful)i(when)g(the)g(foreign)
  910. 179 901 y(function)13 b(in)o(terface)i(is)f(used.)75 1042 y
  911. Fh(2.2)56 b(Non-In)n(teractiv)n(e)17 b(Use)75 1143 y Ff(It)11
  912. b(is)g(also)f(p)q(ossible)h(to)g(run)g(Y)m(ale)f(Hask)o(ell)g(non-in)o
  913. (teractiv)o(ely)g(b)o(y)h(in)o(v)o(oking)e(it)i(from)e(a)h(shell)h(with)f
  914. (command-li)o(ne)75 1193 y(argumen)o(ts,)j(lik)o(e)g(this:)75
  915. 1309 y Fd(\045)22 b(haskell)e(file)h(arg1)g(arg2)g(...)137
  916. 1426 y Ff(This)16 b(causes)i(Hask)o(ell)e(to)g(load)f(the)h(compilation)e
  917. (unit)i Fd(file)o Ff(,)g(run)g(the)h(dialogue)e(named)g Fd(main)h
  918. Ff(with)f(the)75 1476 y(giv)o(en)e(command-line)e(argumen)o(ts,)i(and)g(then)
  919. i(exit.)137 1550 y(\(Of)f(course,)h(this)f(do)q(esn't)g(w)o(ork)g(on)f(the)i
  920. (Macin)o(tosh,)e(whic)o(h)h(do)q(esn't)h(ha)o(v)o(e)e(a)h(shell.\))75
  921. 1712 y Fi(3)69 b(Using)23 b(Hask)n(ell)e(from)i(Emacs)75 1828
  922. y Ff(This)14 b(section)g(describ)q(es)i(ho)o(w)e(to)g(use)g(Y)m(ale)g(Hask)o
  923. (ell)f(from)f(Gn)o(u)h(Emacs.)137 1903 y(Before)19 b(using)f(the)g(Emacs)f
  924. (Hask)o(ell)h(mo)q(de,)f(y)o(ou)g(m)o(ust)g(\014rst)i(con\014gure)f(y)o(our)g
  925. Fd(.emacs)e Ff(\014le)i(as)g(describ)q(ed)75 1953 y(in)d(section)h(13.)23
  926. b(Once)17 b(y)o(our)e Fd(.emacs)f Ff(\014le)i(has)f(b)q(een)i(mo)q(di\014ed)d
  927. (to)i(recognize)g(Hask)o(ell)f(programs,)f(the)j(Emacs)75 2003
  928. y(editor)d(will)e(en)o(ter)j(Hask)o(ell)f(mo)q(de)f(whenev)o(er)i(a)f(\014le)
  929. f(with)h(extension)h Fd(.hs)e Ff(or)h Fd(.lhs)f Ff(is)g(visited.)75
  930. 2144 y Fh(3.1)56 b(In)n(teraction)18 b(with)g(the)h(Hask)n(ell)e(Pro)r(cess)
  931. 75 2245 y Ff(Hask)o(ell)10 b(mo)q(de)f(pro)o(vides)i(Emacs)f(commands)e(for)i
  932. (comm)o(uni)o(cating)e(directly)i(with)g(the)h(Hask)o(ell)f(pro)q(cess.)19
  933. b(There)75 2295 y(are)f(t)o(w)o(o)g(basic)g(commands:)23 b(ev)n(aluating)17
  934. b(and)g(prin)o(ting)g(an)h(expression)h(\()p Fd(C-c)i(e)p Ff(\))d(and)g
  935. (running)g(a)f(dialogue)75 2345 y(\()p Fd(C-c)k(r)p Ff(\).)d(They)c(op)q
  936. (erate)h(as)f(follo)o(ws:)126 2461 y(1.)20 b(Emacs)14 b(prompts)f(y)o(ou)h
  937. (for)h(a)f(Hask)o(ell)g(expression.)21 b(F)m(or)14 b Fd(C-c)21
  938. b(e)p Ff(,)14 b(the)h(v)n(alue)f(of)g(the)h(expression)h(m)o(ust)d(b)q(e)179
  939. 2511 y(in)g(class)i Fd(Text)o Ff(.)j(F)m(or)13 b Fd(C-c)21
  940. b(r)p Ff(,)14 b(the)g(v)n(alue)f(m)o(ust)g(b)q(e)i(of)e(t)o(yp)q(e)h
  941. Fd(IO\(\))o Ff(.)126 2594 y(2.)20 b(An)14 b(inferior)f(Hask)o(ell)h(pro)q
  942. (cess)h(is)f(started)h(if)e(one)h(is)g(not)g(already)f(running.)126
  943. 2677 y(3.)20 b(All)13 b(bu\013ers)i(con)o(taining)e(Hask)o(ell)g(source)i
  944. (\014les)g(are)f(sa)o(v)o(ed.)p eop
  945. %%Page: 5 6
  946. bop 75 50 a Fg(3)41 b(USING)14 b(HASKELL)h(FR)o(OM)e(EMA)o(CS)1069
  947. b Ff(5)126 195 y(4.)20 b(The)14 b(compilation)d(unit)j(b)q(eing)g(edited)g
  948. (is)g(loaded)f(in)o(to)g(the)i(Hask)o(ell)e(system)h(if)f(necessary)m(.)126
  949. 276 y(5.)20 b(The)15 b(expression)h(is)f(ev)n(aluated)g(or)g(run)g(in)g(the)h
  950. (con)o(text)f(of)g(the)g(mo)q(dule)f(con)o(taining)g(the)h(cursor)h(\(there)
  951. 179 326 y(ma)o(y)c(b)q(e)i(more)f(than)h(one)g(mo)q(dule)f(in)g(a)h
  952. (\014le\).)126 407 y(6.)20 b(The)14 b Fd(*haskell*)e Ff(bu\013er)j(p)q(ops)f
  953. (up)g(to)g(displa)o(y)f(the)h(result.)137 515 y(As)f(w)o(ell)e(as)h
  954. (receiving)h(diagnostic)e(and)h(error)h(messages)f(and)g(I/O)g(op)q(erations)
  955. g(on)g Fd(stdin)f Ff(and)h Fd(stdout)n Ff(,)g(the)75 565 y
  956. Fd(*haskell*)h Ff(bu\013er)i(acts)g(as)g(a)f(listener)i(windo)o(w)d(for)i
  957. (the)g(Hask)o(ell)f(command)e(in)o(terpreter.)22 b(Y)m(ou)14
  958. b(can)g(in)o(teract)75 615 y(directly)d(with)f(the)h(command)d(in)o
  959. (terpreter)k(in)e(this)h(bu\013er)h(if)d(y)o(ou)h(c)o(ho)q(ose.)18
  960. b(See)12 b(section)f(5)f(for)g(more)g(information)75 664 y(ab)q(out)k(the)g
  961. (command)d(in)o(terface.)137 737 y(The)18 b(mo)q(de)f(line)g(for)g(the)h
  962. Fd(*haskell*)e Ff(bu\013er)j(includes)f(information)c(ab)q(out)k(the)g
  963. (status)g(of)f(the)h(inferior)75 787 y(Hask)o(ell)d(pro)q(cess.)23
  964. b(The)16 b(v)n(alues)f(are:)21 b Fd(ready)14 b Ff(\(the)h(pro)q(cess)i(is)e
  965. (w)o(aiting)f(for)h(a)g(command\),)d Fd(busy)i Ff(\(the)i(pro)q(cess)75
  966. 837 y(is)e(busy)h(pro)q(cessing)h(a)e(command\),)d(and)j Fd(input)g
  967. Ff(\(the)h(pro)q(cess)h(is)e(w)o(aiting)f(for)h(input)h(on)f
  968. Fd(stdin)o Ff(\).)20 b(Note)14 b(that,)75 886 y(since)f(the)g(Hask)o(ell)e
  969. (pro)q(cess)j(runs)f(async)o(hronously)m(,)e(y)o(ou)h(can)g(do)g(other)h
  970. (things)f(in)f(Emacs)h(and)g(queue)h(up)f(more)75 936 y(commands)f(to)j(b)q
  971. (e)h(executed)h(ev)o(en)e(when)g(the)h(Hask)o(ell)e(pro)q(cess)j(is)e(busy)m
  972. (.)75 1074 y Fh(3.2)56 b(Ev)m(aluation)17 b(Con)n(text)75 1173
  973. y Ff(The)h Fc(curr)n(ent)g(mo)n(dule)g Ff(for)f(ev)n(aluation)f(is)h
  974. (determined)h(b)o(y)f(the)i(t)o(yp)q(e)f(of)f(bu\013er)h(from)e(whic)o(h)i
  975. (the)g(command)75 1223 y(w)o(as)e(giv)o(en.)23 b(In)16 b(a)g
  976. Fd(.hs)f Ff(bu\013er,)i(the)f(curren)o(t)i(mo)q(dule)c(is)i(the)h(mo)q(dule)d
  977. (de\014nition)h(con)o(taining)g(the)i(cursor.)25 b(In)75 1273
  978. y(a)15 b(scratc)o(h)i(pad)e(bu\013er,)h(it)f(is)g(the)h(mo)q(dule)e(asso)q
  979. (ciated)i(with)f(the)g(pad.)23 b(In)15 b(the)h Fd(*haskell*)d
  980. Ff(bu\013er,)j(the)g(most)75 1323 y(recen)o(tly)f(used)g(mo)q(dule)d(is)i
  981. (remem)o(b)q(ered.)137 1395 y(The)g(Emacs)f(in)o(terface)g(implemen)o(ts)e(a)
  982. i Fc(scr)n(atch)h(p)n(ad)g Ff(as)f(a)g(sp)q(ecial)h(bu\013er)g(asso)q(ciated)
  983. g(with)f(a)g(mo)q(dule)f(\(not)75 1445 y(with)e(a)g(\014le!\).)16
  984. b(When)10 b(y)o(ou)g(ev)n(aluate)g(an)g(expression)h(or)f(dialogue,)g(Emacs)f
  985. (arranges)i(for)f(the)g(ev)n(aluation)f(con)o(text)75 1495
  986. y(to)15 b(b)q(e)h(augmen)o(ted)f(b)o(y)g(the)h(con)o(ten)o(ts)g(of)f(the)h
  987. (scratc)o(h)g(pad)g(bu\013er)g(for)f(the)h(curren)o(t)h(mo)q(dule.)k(\(This)
  988. 15 b(happ)q(ens)75 1545 y(ev)o(en)f(if)f(the)h(command)d(w)o(as)j(not)f
  989. (actually)g(issued)h(from)e(the)j(scratc)o(h)f(bad)g(bu\013er.\))19
  990. b(Y)m(ou)13 b(can)h(use)g(the)h(scratc)o(h)75 1595 y(pad)e
  991. Fd(*Main-pad*)e Ff(to)i(pla)o(y)g(with)g(the)h(system)f(without)g(creating)g
  992. (a)g Fd(.hs)g Ff(\014le.)18 b(The)c Fd(C-c)21 b(p)13 b Ff(command)d(p)q(ops)k
  993. (up)75 1644 y(the)g(bu\013er)h(con)o(taining)e(the)i(scratc)o(h)g(pad)f(for)f
  994. (the)i(curren)o(t)g(mo)q(dule.)75 1782 y Fh(3.3)56 b(Emacs)17
  995. b(Commands)75 1882 y Ff(This)d(section)g(describ)q(es)i(in)e(detail)f(the)i
  996. (commands)c(a)o(v)n(ailable)h(when)i(running)g(Hask)o(ell)f(mo)q(de.)137
  997. 1954 y(If)g(y)o(ou)g(are)g(running)g(Emacs)g(v)o(ersion)g(19)g(and)g(ha)o(v)o
  998. (e)g(enabled)g Fd(menu-bar-mode)p Ff(,)d(y)o(ou)j(can)g(also)g(select)h(most)
  999. 75 2004 y(of)f(these)j(commands)11 b(from)h(the)j Fd(Haskell)d
  1000. Ff(men)o(u)h(as)h(w)o(ell)f(as)h(b)o(y)g(the)g(k)o(ey)g(bindings)f(listed)h
  1001. (b)q(elo)o(w.)75 2112 y Fd(haskell-eval)19 b(\(C-c)i(e\))179
  1002. 2162 y Ff(This)12 b(command)e(prompts)i(y)o(ou)g(for)g(a)h(Hask)o(ell)f
  1003. (expression)i(to)e(b)q(e)h(ev)n(aluated)g(within)f(the)h(con)o(text)g(of)f
  1004. (the)179 2212 y(curren)o(t)j(mo)q(dule.)i(The)d(v)n(alue)f(prin)o(ted)i(m)o
  1005. (ust)d(b)q(e)j(in)e(class)i Fd(Text)o Ff(.)75 2293 y Fd(haskell-run)20
  1006. b(\(C-c)g(r\))179 2343 y Ff(This)f(command)d(prompts)i(y)o(ou)h(for)f(a)h
  1007. (Hask)o(ell)f(dialogue)g(and)h(runs)h(it.)33 b(Its)19 b(b)q(eha)o(vior)g(is)g
  1008. (similar)d(to)179 2393 y Fd(haskell-eval)p Ff(.)75 2473 y Fd
  1009. (haskell-run-main)i(\(C-c)j(m\))179 2523 y Ff(This)14 b(command)d(runs)j(the)
  1010. h(dialogue)d(named)h Fd(main)g Ff(in)h(the)g(curren)o(t)i(mo)q(dule.)75
  1011. 2604 y Fd(haskell-report-ty)o(pe)j(\(C-c)i(t\))179 2654 y Ff(This)13
  1012. b(is)g(similar)d(to)j Fd(haskell-eval)p Ff(,)d(but)k(merely)e(prin)o(ts)h
  1013. (the)h(inferred)g(t)o(yp)q(e)f(of)g(the)g(expression)i(instead)179
  1014. 2704 y(of)e(ev)n(aluating)g(it.)p eop
  1015. %%Page: 6 7
  1016. bop 75 50 a Fg(3)41 b(USING)14 b(HASKELL)h(FR)o(OM)e(EMA)o(CS)1069
  1017. b Ff(6)75 195 y Fd(haskell-load)19 b(\(C-c)i(l\))179 245 y
  1018. Ff(This)e(command)d(loads)j(the)h(compilation)c(unit)j(curren)o(tly)h(b)q
  1019. (eing)g(edited)f(in)o(to)g(the)h(Hask)o(ell)f(pro)q(cess,)179
  1020. 295 y(without)13 b(ev)n(aluating)g(an)o(y)g(of)g(its)h(con)o(ten)o(ts.)19
  1021. b(This)14 b(is)g(used)h(to)f(c)o(hec)o(k)g(for)g(compilation)d(errors.)75
  1022. 378 y Fd(haskell-compile)19 b(\(C-c)i(c\))179 428 y Ff(This)11
  1023. b(is)g(similar)d(to)j Fd(haskell-load)n Ff(,)g(but)g(also)g(compiles)e(the)j
  1024. (Lisp)f(co)q(de)h(generated)g(b)o(y)f(the)h(Y)m(ale)e(Hask)o(ell)179
  1025. 477 y(compiler.)15 b(Since)10 b(this)f(is)h(fairly)e(slo)o(w,)h(y)o(ou)g
  1026. (probably)g(don't)g(w)o(an)o(t)g(to)g(do)g(this)h(frequen)o(tly)f(during)h
  1027. (program)179 527 y(dev)o(elopmen)o(t.)16 b(Commands)9 b(suc)o(h)j(as)f
  1028. Fd(C-c)22 b(e)11 b Ff(and)g Fd(C-c)21 b(r)12 b Ff(do)f(not)g(compile)f(the)i
  1029. (co)q(de)g(generated)h(or)f(write)179 577 y(an)o(y)k(compiled)e(co)q(de)k(in)
  1030. o(to)d(\014les.)26 b(When)16 b(y)o(ou)g(are)h(ready)g(to)f(create)i(fully)d
  1031. (compiled)g(co)q(de)i(and)f(sa)o(v)o(e)g(it)179 627 y(in)i(output)g(\014les,)
  1032. i(use)f(the)g Fd(C-c)i(c)d Ff(command.)29 b(This)18 b(command)d(recursiv)o
  1033. (ely)20 b(compiles)d(all)g(imp)q(orted)179 677 y(compilation)11
  1034. b(units.)75 760 y Fd(haskell-run-file)18 b(\(C-c)j(C-r\))179
  1035. 809 y Ff(Loads)14 b(the)g(curren)o(t)h(compilation)c(unit)j(and)g(then)g
  1036. (runs)h(the)f(dialogue)f(named)g Fd(main)p Ff(.)75 892 y Fd(haskell-get-pad)
  1037. 19 b(\(C-c)i(p\))179 942 y Ff(P)o(ops)12 b(up)f(the)h(bu\013er)h(con)o
  1038. (taining)d(the)i(scratc)o(h)h(pad)e(for)g(the)i(curren)o(t)f(mo)q(dule,)f
  1039. (and)g(mak)o(es)f(it)h(the)h(curren)o(t)179 992 y(bu\013er.)75
  1040. 1075 y Fd(haskell-printers)18 b(\(C-c)j(C-p\))179 1125 y Ff(This)13
  1041. b(command)d(p)q(ops)k(up)f(a)g(bu\013er)h(that)f(lets)h(y)o(ou)e(set)i(Hask)o
  1042. (ell)f(compiler)f(prin)o(t)h(options)f(from)g(a)g(men)o(u.)179
  1043. 1175 y(Use)j Fd(?)j Ff(to)c(get)g(further)g(help.)179 1241
  1044. y(Y)m(ou)f(can)h(sp)q(ecify)h(prin)o(ter)f(settings)h(for)e(a)h(particular)g
  1045. (program)e(within)h(its)h(unit)f(\014le.)19 b(See)14 b(section)h(6.)75
  1046. 1324 y Fd(haskell-optimizer)o(s)k(\(C-c)i(C-o\))179 1374 y
  1047. Ff(This)15 b(command)e(p)q(ops)i(up)h(a)f(bu\013er)h(that)g(lets)f(y)o(ou)g
  1048. (set)i(Hask)o(ell)d(compiler)g(optimizer)g(settings)j(from)c(a)179
  1049. 1424 y(men)o(u.)k(Use)e Fd(?)j Ff(to)c(get)g(further)g(help.)179
  1050. 1490 y(Y)m(ou)f(can)h(sp)q(ecify)h(optimizer)d(settings)j(for)e(a)h
  1051. (particular)g(program)e(within)h(its)h(unit)g(\014le.)k(See)c(section)h(6.)75
  1052. 1573 y Fd(haskell-exit)k(\(C-c)i(q\))179 1623 y Ff(This)14
  1053. b(command)d(terminates)i(the)i(Hask)o(ell)e(subpro)q(cess.)20
  1054. b(It)14 b(lea)o(v)o(es)g(all)f(bu\013ers)i(op)q(en.)75 1706
  1055. y Fd(haskell-switch)k(\(C-c)i(h\))179 1756 y Ff(P)o(ops)14
  1056. b(up)g(the)g Fd(*haskell*)e Ff(bu\013er)j(and)f(mak)o(es)f(it)g(the)i(curren)
  1057. o(t)g(bu\013er.)75 1839 y Fd(haskell-kill)k(\(C-c)i(C-k\))179
  1058. 1889 y Ff(Delete)14 b(the)h(curren)o(t)g(con)o(ten)o(ts)g(of)e(the)i
  1059. Fd(*haskell*)d Ff(bu\013er.)75 1972 y Fd(haskell-interrupt)18
  1060. b(\(C-c)j(i\))179 2022 y Ff(This)d(command)e(sends)k(an)f(in)o(terrupt)g(to)f
  1061. (the)i(Hask)o(ell)e(subpro)q(cess.)34 b(Y)m(ou)19 b(can)f(use)i(it)e(to)h
  1062. (terminate)179 2071 y(execution)13 b(of)g(a)f(running)h(program)e(\(for)h
  1063. (example,)g(if)f(it)i(gets)g(stuc)o(k)h(in)e(an)h(in\014nite)f(lo)q(op\))h
  1064. (and)f(return)i(to)179 2121 y(the)g(command)d(lo)q(op.)75 2204
  1065. y Fd(haskell-command)19 b(\(C-c)i(:\))179 2254 y Ff(Y)m(ou)12
  1066. b(can)g(submit)f(commands)f(directly)j(to)f(the)h(command)c(in)o(terface)k
  1067. (with)f(this)g(command.)j(See)e(section)179 2304 y(5)g(for)h(more)f
  1068. (information)e(ab)q(out)j(the)g(command)d(in)o(terface.)75
  1069. 2387 y Fd(haskell)179 2437 y Ff(Starts)16 b(up)g(a)f(Hask)o(ell)h(subpro)q
  1070. (cess,)i(p)q(opping)d(up)h(the)g Fd(*haskell*)e Ff(bu\013er.)24
  1071. b(Y)m(ou)16 b(normally)d(don't)i(need)179 2487 y(to)e(do)g(this)g(explicitly)
  1072. f(since)i(the)g(default)f(b)q(eha)o(vior)g(for)g(an)o(y)g(of)f(the)i
  1073. (commands)d(that)i(cause)h(co)q(de)g(to)f(b)q(e)179 2536 y(ev)n(aluated)g(or)
  1074. h(compiled)f(is)g(to)h(start)h(up)e(a)h(Hask)o(ell)f(subpro)q(cess)k(if)c
  1075. (there)i(isn't)e(already)h(one)g(running.)75 2619 y Fd(haskell-mode)179
  1076. 2669 y Ff(Puts)g(the)h(curren)o(t)g(bu\013er)g(in)o(to)e(the)i(Hask)o(ell)e
  1077. (editing)h(mo)q(de.)p eop
  1078. %%Page: 7 8
  1079. bop 75 50 a Fg(4)41 b(USING)14 b(HASKELL)h(ON)f(THE)g(MA)o(CINTOSH)918
  1080. b Ff(7)75 195 y Fd(haskell-tutorial)179 245 y Ff(Starts)14
  1081. b(the)h(online)e(Hask)o(ell)g(tutorial.)137 361 y(In)i(addition,)e(the)i
  1082. (minibu\013er)e(commands)f Fd(M-p)i Ff(and)g Fd(M-n)g Ff(allo)o(w)f(y)o(ou)h
  1083. (to)g(searc)o(h)i(bac)o(k)e(and)h(forth)f(through)75 411 y(the)g(history)f
  1084. (of)f(the)i(last)f(30)f(expressions)j(y)o(ou)d(ha)o(v)o(e)h(t)o(yp)q(ed)h(in)
  1085. f(when)g(Hask)o(ell)g(prompts)f(y)o(ou)h(for)f(something)g(to)75
  1086. 461 y(ev)n(aluate.)75 602 y Fh(3.4)56 b(Customization)17 b(Ho)r(oks)75
  1087. 703 y Ff(Y)m(ou)h(can)g(customize)h(some)e(asp)q(ects)j(of)e(the)h(Emacs)f
  1088. (Hask)o(ell)g(in)o(terface)h(b)o(y)f(c)o(hanging)g(the)h(v)n(alues)f(of)g
  1089. (these)75 753 y(v)n(ariables)13 b(\(e.g.,)g(in)g(y)o(our)h
  1090. Fd(.emacs)o Ff(\).)75 869 y Fd(haskell-program-n)o(ame)179
  1091. 919 y Ff(This)i(is)f(the)i(name)d(of)h(the)i(executable)g(that)f(is)g(run)g
  1092. (as)g(the)g(inferior)f(Hask)o(ell)h(pro)q(cess.)25 b(It)16
  1093. b(defaults)g(to)179 969 y(the)e(v)n(alue)g(of)f(the)h(en)o(vironmen)o(t)f(v)n
  1094. (ariable)g Fd(HASKELLPROG)n Ff(.)75 1052 y Fd(haskell-auto-crea)o(te-pr)o
  1095. (ocess)179 1102 y Ff(If)g(this)h(v)n(ariable)e(is)i(true)g(\(the)h
  1096. (default\),)e(then)h(an)o(y)f(of)g(the)i(Hask)o(ell)e(commands)e(that)j(in)o
  1097. (teract)g(with)f(the)179 1152 y(inferior)h(Hask)o(ell)h(pro)q(cess)i
  1098. (automatically)12 b(start)k(up)f(suc)o(h)h(a)f(pro)q(cess)i(if)e(one)g(do)q
  1099. (esn't)h(already)f(exist.)22 b(If)179 1202 y(false,)13 b(all)g(of)g(these)i
  1100. (commands)d(just)i(refuse)h(to)f(do)f(an)o(ything)g(useful.)75
  1101. 1285 y Fd(haskell-auto-swit)o(ch-in)o(put)179 1334 y Ff(If)g(this)h(v)n
  1102. (ariable)f(is)h(true)h(\(the)f(default\),)g(then)g(Emacs)f(automatically)e(p)
  1103. q(ops)j(up)g(the)h Fd(*haskell*)d Ff(bu\013er)179 1384 y(and)i(mak)o(es)f(it)
  1104. g(the)i(curren)o(t)h(bu\013er)f(whenev)o(er)g(the)g(inferior)e(Hask)o(ell)h
  1105. (pro)q(cess)i(issues)f(a)f(request)i(to)d(read)179 1434 y(from)f
  1106. Fd(stdin)o Ff(.)18 b(Remem)o(b)q(er)12 b(that)i(input)g(requests)i(arriv)o(e)
  1107. d(async)o(hronously!)75 1517 y Fd(haskell-ask-befor)o(e-sav)o(ing)179
  1108. 1567 y Ff(If)d(this)h(v)n(ariable)e(is)i(true)g(\(the)h(default\),)e(then)i
  1109. (Emacs)e(explicitly)g(asks)h(y)o(ou)f(if)g(y)o(ou)g(w)o(an)o(t)g(to)h(sa)o(v)
  1110. o(e)f(mo)q(di\014ed)179 1617 y(bu\013ers)17 b(con)o(taining)d(Hask)o(ell)h
  1111. (source)i(\014les)f(b)q(efore)g(ev)n(aluating)f(or)g(running)g(an)o(ything.)
  1112. 23 b(If)15 b(it's)g(false,)g(all)179 1666 y(of)e(these)i(bu\013ers)h(are)e
  1113. (simply)e(sa)o(v)o(ed)i(quietly)m(.)75 1749 y Fd(haskell-initial-p)o(rinte)o
  1114. (rs)179 1799 y Ff(This)h(v)n(ariable)f(con)o(tains)h(the)h(prin)o(ters)g(to)f
  1115. (set)h(when)f(starting)h(a)e(new)i(Hask)o(ell)f(pro)q(cess,)h(sp)q(eci\014ed)
  1116. h(as)e(a)179 1849 y(list)c(of)g(strings.)17 b(\(Some)11 b(p)q(eople)h(prefer)
  1117. h(di\013eren)o(t)f(default)f(prin)o(ters)i(for)e(the)h(Emacs)f(in)o(terface)h
  1118. (than)f(when)179 1899 y(running)i(Hask)o(ell)h(using)f(the)i(v)n(anilla)c
  1119. (command)h(in)o(terface.\))75 2061 y Fi(4)69 b(Using)23 b(Hask)n(ell)e(on)i
  1120. (the)g(Macin)n(tosh)75 2177 y Ff(Y)m(ale)13 b(Hask)o(ell)f(runs)i(on)f(the)h
  1121. (Macin)o(tosh)f(under)i(Macin)o(tosh)e(Common)d(Lisp)j(\(MCL\).)g(The)h
  1122. (default)f(user)h(in)o(ter-)75 2227 y(face)g(on)g(the)g(Macin)o(tosh)g(is)g
  1123. (la)o(y)o(ered)g(on)g(top)f(of)h(MCL's)f(built-in)g(Emacs-lik)o(e)f(editor,)i
  1124. (F)m(red.)137 2301 y(This)d(section)h(assumes)e(that)h(y)o(ou)f(ha)o(v)o(e)h
  1125. (some)f(familia)o(rit)o(y)e(with)i(the)i(Macin)o(tosh)f(\(e.g.,)f(that)h(y)o
  1126. (ou)f(kno)o(w)g(ho)o(w)75 2351 y(to)16 b(manipulate)e(windo)o(ws)i(and)g(ab)q
  1127. (out)g(the)h(standard)f(Macin)o(tosh)g(text)h(editing)f(facilities)f(and)h
  1128. (\014le)g(selection)75 2401 y(dialogs\).)h(The)d(items)f(on)h(the)g
  1129. Fd(File)f Ff(and)h Fd(Edit)f Ff(men)o(us)g(are)i(fairly)d(standard)i(in)g
  1130. (this)g(resp)q(ect.)75 2542 y Fh(4.1)56 b(In)n(teraction)18
  1131. b(with)g(the)h(Hask)n(ell)e(Pro)r(cess)75 2644 y Ff(There)22
  1132. b(are)f(t)o(w)o(o)f(basic)g(editor)h(commands)d(for)i(in)o(teracting)h(with)f
  1133. (Hask)o(ell:)31 b(ev)n(aluating)19 b(and)h(prin)o(ting)g(an)75
  1134. 2694 y(expression)15 b(\()p Fd(C-c)21 b(e)p Ff(\))14 b(and)g(running)f(a)h
  1135. (dialogue)f(\()p Fd(C-c)21 b(r)p Ff(\).)d(They)c(op)q(erate)h(as)f(follo)o
  1136. (ws:)p eop
  1137. %%Page: 8 9
  1138. bop 75 50 a Fg(4)41 b(USING)14 b(HASKELL)h(ON)f(THE)g(MA)o(CINTOSH)918
  1139. b Ff(8)126 195 y(1.)20 b(Y)m(ou)13 b(are)h(prompted)e(for)h(a)h(Hask)o(ell)e
  1140. (expression.)20 b(F)m(or)13 b Fd(C-c)21 b(e)p Ff(,)13 b(the)h(v)n(alue)e(of)h
  1141. (the)h(expression)h(m)o(ust)d(b)q(e)i(in)179 245 y(class)g
  1142. Fd(Text)o Ff(.)k(F)m(or)c Fd(C-c)21 b(r)p Ff(,)13 b(the)i(v)n(alue)e(m)o(ust)
  1143. g(b)q(e)h(of)f(t)o(yp)q(e)i Fd(IO\(\))o Ff(.)126 328 y(2.)20
  1144. b(All)13 b(bu\013ers)i(con)o(taining)e(Hask)o(ell)g(source)i(\014les)g(are)f
  1145. (sa)o(v)o(ed.)126 411 y(3.)20 b(The)14 b(compilation)d(unit)j(b)q(eing)g
  1146. (edited)g(is)g(loaded)f(in)o(to)g(the)i(Hask)o(ell)e(system)h(if)f(necessary)
  1147. m(.)126 494 y(4.)20 b(The)15 b(expression)h(is)f(ev)n(aluated)g(or)g(run)g
  1148. (in)g(the)h(con)o(text)f(of)g(the)g(mo)q(dule)f(con)o(taining)g(the)h(cursor)
  1149. h(\(there)179 543 y(ma)o(y)c(b)q(e)i(more)f(than)h(one)g(mo)q(dule)f(in)g(a)h
  1150. (\014le\).)126 626 y(5.)20 b(The)14 b Fd(Listener)e Ff(windo)o(w)h(p)q(ops)i
  1151. (up)f(to)f(displa)o(y)g(the)i(result.)137 742 y(Y)m(ou)h(can)h(in)o(teract)g
  1152. (with)g(Hask)o(ell)f(b)o(y)g(issuing)g(F)m(red)h(commands,)e(or)i(b)o(y)f
  1153. (selecting)h(commands)d(from)h(the)75 792 y Fd(Haskell)9 b
  1154. Ff(men)o(u.)16 b(The)c(basic)f(Hask)o(ell)f(command)e(in)o(terpreter,)13
  1155. b(describ)q(ed)g(in)d(section)i(5,)e(runs)i(in)e(the)i Fd(Listener)75
  1156. 842 y Ff(windo)o(w.)29 b(This)18 b(windo)o(w)f(also)g(receiv)o(es)i(I/O)f(op)
  1157. q(erations)g(on)g Fd(stdin)e Ff(and)i Fd(stdout)e Ff(and)i(is)g(used)g(to)g
  1158. (displa)o(y)75 892 y(v)n(arious)13 b(status)i(and)f(diagnostic)f(messages.)
  1159. 137 966 y(The)21 b(mo)q(de)f(line)f(for)i(the)g Fd(Listener)d
  1160. Ff(windo)o(w)i(includes)h(information)c(ab)q(out)k(the)g(status)g(of)f(Hask)o
  1161. (ell's)75 1016 y(command)13 b(lo)q(op.)22 b(The)16 b(v)n(alues)g(are:)22
  1162. b Fd(ready)14 b Ff(\(the)i(pro)q(cess)i(is)d(w)o(aiting)g(for)g(a)g
  1163. (command\),)e Fd(busy)i Ff(\(the)h(pro)q(cess)75 1066 y(is)e(busy)h(pro)q
  1164. (cessing)h(a)e(command\),)d(and)j Fd(input)g Ff(\(the)h(pro)q(cess)h(is)e(w)o
  1165. (aiting)f(for)h(input)h(on)f Fd(stdin)o Ff(\).)20 b(Note)14
  1166. b(that,)75 1116 y(since)g(the)h(Hask)o(ell)e(command)d(lo)q(op)j(pro)q(cess)j
  1167. (runs)e(async)o(hronously)m(,)f(y)o(ou)g(can)h(do)f(other)h(things)g(in)f
  1168. (the)h(editor)75 1165 y(and)g(queue)g(up)g(more)f(commands)f(to)i(b)q(e)g
  1169. (executed)i(ev)o(en)e(when)h(the)f(Hask)o(ell)g(pro)q(cess)h(is)f(busy)m(.)75
  1170. 1306 y Fh(4.2)56 b(Ev)m(aluation)17 b(Con)n(text)75 1408 y
  1171. Ff(The)h Fc(curr)n(ent)g(mo)n(dule)g Ff(for)f(ev)n(aluation)f(is)h
  1172. (determined)h(b)o(y)f(the)i(t)o(yp)q(e)f(of)f(bu\013er)h(from)e(whic)o(h)i
  1173. (the)g(command)75 1458 y(w)o(as)e(giv)o(en.)23 b(In)16 b(a)g
  1174. Fd(.hs)f Ff(bu\013er,)i(the)f(curren)o(t)i(mo)q(dule)c(is)i(the)h(mo)q(dule)d
  1175. (de\014nition)h(con)o(taining)g(the)i(cursor.)25 b(In)75 1507
  1176. y(a)16 b(scratc)o(h)i(pad)e(bu\013er,)i(it)e(is)g(the)h(mo)q(dule)e(asso)q
  1177. (ciated)i(with)f(the)h(pad.)25 b(In)17 b(the)g Fd(Listener)e
  1178. Ff(bu\013er,)i(the)g(most)75 1557 y(recen)o(tly)e(used)g(mo)q(dule)d(is)i
  1179. (remem)o(b)q(ered.)137 1632 y(The)h(Macin)o(tosh)g(in)o(terface)h(implem)o
  1180. (en)o(ts)d(a)h Fc(scr)n(atch)i(p)n(ad)f Ff(as)g(a)f(sp)q(ecial)h(bu\013er)h
  1181. (asso)q(ciated)g(with)e(a)g(mo)q(dule)75 1682 y(\(not)f(with)g(a)h
  1182. (\014le!\).)j(When)d(y)o(ou)f(ev)n(aluate)g(an)g(expression)h(or)g(dialogue,)
  1183. e(Hask)o(ell)g(arranges)i(for)f(the)h(ev)n(aluation)75 1731
  1184. y(con)o(text)j(to)f(b)q(e)h(augmen)o(ted)e(b)o(y)h(the)h(con)o(ten)o(ts)g(of)
  1185. f(the)g(scratc)o(h)i(pad)e(bu\013er)h(for)f(the)h(curren)o(t)g(mo)q(dule.)24
  1186. b(\(This)75 1781 y(happ)q(ens)13 b(ev)o(en)g(if)f(the)h(command)c(w)o(as)k
  1187. (not)f(actually)f(issued)j(from)c(the)j(scratc)o(h)h(bad)e(bu\013er.\))19
  1188. b(Y)m(ou)12 b(can)g(use)h(the)75 1831 y(scratc)o(h)i(pad)f
  1189. Fd(Pad)21 b(for)g(module)g(Main)13 b Ff(to)h(pla)o(y)e(with)i(the)g(system)g
  1190. (without)g(creating)g(a)f Fd(.hs)h Ff(\014le.)k(The)c Fd(C-c)21
  1191. b(p)75 1881 y Ff(command)11 b(p)q(ops)j(up)g(the)h(bu\013er)g(con)o(taining)d
  1192. (the)j(scratc)o(h)g(pad)f(for)f(the)i(curren)o(t)g(mo)q(dule.)75
  1193. 2022 y Fh(4.3)56 b(Hask)n(ell)17 b(Commands)75 2123 y Ff(The)h
  1194. Fd(Haskell)e Ff(men)o(u)g(con)o(tains)h(the)h(Hask)o(ell-sp)q(eci\014c)g
  1195. (commands.)26 b(Eac)o(h)18 b(of)e(these)j(commands)c(also)i(has)g(a)75
  1196. 2173 y(F)m(red)d(k)o(ey)g(binding,)f(as)h(follo)o(ws.)75 2289
  1197. y Fd(Eval)21 b(Expression)f(\(C-c)h(e\))179 2339 y Ff(This)12
  1198. b(command)d(prompts)i(y)o(ou)h(for)f(a)h(Hask)o(ell)f(expression)i(to)f(b)q
  1199. (e)h(ev)n(aluated.)k(Ev)n(aluation)10 b(o)q(ccurs)k(in)d(the)179
  1200. 2388 y(con)o(text)j(of)g(the)g(curren)o(t)i(mo)q(dule.)g(The)e(result)h(is)f
  1201. (then)g(prin)o(ted;)g(the)h(v)n(alue)e(m)o(ust)g(b)q(e)h(in)g(class)g
  1202. Fd(Text)p Ff(.)75 2471 y Fd(Run)21 b(Dialogue)f(\(C-c)h(r\))179
  1203. 2521 y Ff(This)14 b(command)d(prompts)i(y)o(ou)g(for)h(a)f(Hask)o(ell)h
  1204. (dialogue)e(and)i(runs)h(it.)75 2604 y Fd(Type)21 b(Check)g(Expression)e
  1205. (\(C-c)i(t\))179 2654 y Ff(This)e(is)f(similar)f(to)i Fd(Eval)i(Expression)m
  1206. Ff(,)f(but)f(merely)f(prin)o(ts)h(the)h(inferred)g(t)o(yp)q(e)f(of)f(the)i
  1207. (expression)179 2704 y(instead)14 b(of)f(ev)n(aluating)g(it.)p
  1208. eop
  1209. %%Page: 9 10
  1210. bop 75 50 a Fg(4)41 b(USING)14 b(HASKELL)h(ON)f(THE)g(MA)o(CINTOSH)918
  1211. b Ff(9)75 195 y Fd(Load)21 b(File)g(\(C-c)g(l\))179 245 y Ff(This)14
  1212. b(command)d(loads)j(the)h(compilation)c(unit)k(curren)o(tly)g(b)q(eing)f
  1213. (edited)h(in)o(to)e(Hask)o(ell,)h(without)g(ev)n(alu-)179 295
  1214. y(ating)f(an)o(y)g(of)h(its)f(con)o(ten)o(ts.)20 b(This)13
  1215. b(is)h(used)h(to)f(c)o(hec)o(k)g(for)g(compilation)d(errors.)75
  1216. 377 y Fd(Run)21 b(File)g(\(C-c)g(C-r\))179 427 y Ff(Loads)14
  1217. b(the)g(curren)o(t)h(compilation)c(unit)j(and)g(then)g(runs)h(the)f(dialogue)
  1218. f(named)g Fd(main)p Ff(.)75 509 y Fd(Compile)20 b(File)h(\(C-c)g(c\))179
  1219. 559 y Ff(This)15 b(is)g(similar)e(to)j Fd(Load)21 b(File)o
  1220. Ff(,)15 b(but)h(also)f(compiles)f(the)i(Lisp)f(co)q(de)i(generated)f(b)o(y)g
  1221. (the)g(Y)m(ale)e(Hask)o(ell)179 608 y(compiler.)28 b(Since)18
  1222. b(this)f(is)h(fairly)e(slo)o(w,)i(y)o(ou)f(probably)g(don't)g(w)o(an)o(t)g
  1223. (to)g(do)h(this)f(during)h(program)e(de-)179 658 y(v)o(elopmen)o(t.)i
  1224. (Commands)12 b(suc)o(h)j(as)g Fd(C-c)21 b(e)14 b Ff(and)g Fd(C-c)21
  1225. b(r)15 b Ff(do)f(not)g(compile)f(the)i(co)q(de)g(generated)h(or)f(write)179
  1226. 708 y(an)o(y)h(compiled)e(co)q(de)k(in)o(to)d(\014les.)26 b(When)16
  1227. b(y)o(ou)g(are)h(ready)g(to)f(create)i(fully)d(compiled)g(co)q(de)i(and)f(sa)
  1228. o(v)o(e)g(it)179 758 y(in)i(output)g(\014les,)i(use)f(the)g
  1229. Fd(C-c)i(c)d Ff(command.)29 b(This)18 b(command)d(recursiv)o(ely)20
  1230. b(compiles)d(all)g(imp)q(orted)179 808 y(compilation)11 b(units.)75
  1231. 890 y Fd(Scratch)20 b(Pad)i(\(C-c)e(p\))179 940 y Ff(P)o(ops)12
  1232. b(up)f(the)h(bu\013er)h(con)o(taining)d(the)i(scratc)o(h)h(pad)e(for)g(the)i
  1233. (curren)o(t)f(mo)q(dule,)f(and)g(mak)o(es)f(it)h(the)h(curren)o(t)179
  1234. 989 y(bu\013er.)75 1071 y Fd(Printers)20 b(\(C-c)h(C-p\))179
  1235. 1121 y Ff(This)14 b(command)d(p)q(ops)j(up)g(a)f(dialog)g(b)q(o)o(x)g(that)h
  1236. (lets)h(y)o(ou)e(set)i(Hask)o(ell)e(compiler)g(prin)o(t)g(options.)179
  1237. 1187 y(Y)m(ou)g(can)h(sp)q(ecify)h(prin)o(ter)f(settings)h(for)e(a)h
  1238. (particular)g(program)e(within)h(its)h(unit)f(\014le.)19 b(See)14
  1239. b(section)h(6.)75 1269 y Fd(Optimizers)20 b(\(C-c)h(C-o\))179
  1240. 1319 y Ff(This)14 b(command)d(p)q(ops)j(up)g(a)f(dialog)g(b)q(o)o(x)g(that)h
  1241. (lets)h(y)o(ou)e(set)i(Hask)o(ell)e(compiler)g(optimizer)f(settings.)179
  1242. 1385 y(Y)m(ou)h(can)h(sp)q(ecify)h(optimizer)d(settings)j(for)e(a)h
  1243. (particular)g(program)e(within)h(its)h(unit)g(\014le.)k(See)c(section)h(6.)75
  1244. 1467 y Fd(Tutorial)179 1517 y Ff(This)e(loads)f(the)i(on-line)f(Hask)o(ell)f
  1245. (tutorial.)17 b(The)d(tutorial)e(is)h(split)g(in)o(to)f(pages,)i(eac)o(h)f
  1246. (of)g(whic)o(h)g(con)o(tains)179 1567 y(some)k(small)e(example)i(programs)f
  1247. (that)i(y)o(ou)f(can)h(run.)30 b(Within)17 b(the)h(tutorial)f(windo)o(w,)h(y)
  1248. o(ou)f(can)h(use)179 1617 y(t)o(w)o(o)13 b(additional)f(editor)h(commands:)j
  1249. Fd(C-c)21 b(C-f)13 b Ff(to)g(go)g(forw)o(ard)g(to)h(the)g(next)g(page)g(of)f
  1250. (the)h(tutorial,)e(and)179 1666 y Fd(C-c)21 b(C-b)13 b Ff(to)h(go)f(bac)o(kw)
  1251. o(ard)h(to)g(the)g(previous)g(page.)75 1749 y Fd(Abort)21 b(\(C-c)g(i\))179
  1252. 1798 y Ff(This)11 b(command)f(in)o(terrupts)i(Hask)o(ell)g(and)f(causes)j(it)
  1253. d(to)h(return)h(to)e(the)i(command)c(lo)q(op.)16 b(Y)m(ou)c(can)g(use)g(it)
  1254. 179 1848 y(to)i(terminate)f(execution)h(of)g(a)f(running)h(program)e(\(for)i
  1255. (example,)e(if)h(it)h(gets)g(stuc)o(k)h(in)e(an)h(in\014nite)g(lo)q(op\))179
  1256. 1898 y(and)f(return)j(to)d(the)i(command)c(lo)q(op.)137 2011
  1257. y(Note)k(that)f(y)o(ou)f(can)h(get)g(a)g(complete)f(list)h(of)f(F)m(red)h(k)o
  1258. (ey)g(bindings)f(b)o(y)h(doing)f Fd(C-?)o Ff(.)75 2151 y Fh(4.4)56
  1259. b(Customization)17 b(Ho)r(oks)75 2251 y Ff(Y)m(ou)11 b(can)g(customize)g
  1260. (some)f(asp)q(ects)j(of)e(the)g(Hask)o(ell)g(user)h(in)o(terface)g(b)o(y)f(c)
  1261. o(hanging)f(the)i(v)n(alue)f(of)f(these)j(v)n(ariables)75 2301
  1262. y(\(for)h(example,)e(in)h(y)o(our)h(initialization)d(\014le\).)75
  1263. 2414 y Fd(*mac-auto-switch-)o(input)o(*)179 2464 y Ff(If)h(this)g(v)n
  1264. (ariable)f(is)h(true)h(\(the)h(default\),)d(then)i(Hask)o(ell)f
  1265. (automatically)d(p)q(ops)k(up)f(the)h Fd(Listener)e Ff(windo)o(w)179
  1266. 2514 y(and)i(selects)j(it)e(as)g(the)g(activ)o(e)g(windo)o(w)f(whenev)o(er)i
  1267. (Hask)o(ell)f(issues)h(a)e(request)j(to)e(read)g(from)e Fd(stdin)o
  1268. Ff(.)75 2596 y Fd(*mac-ask-before-s)o(aving)o(*)179 2646 y
  1269. Ff(If)d(this)h(v)n(ariable)f(is)h(true)h(\(the)g(default\),)f(then)g(Hask)o
  1270. (ell)g(explicitly)f(asks)h(y)o(ou)f(if)g(y)o(ou)h(w)o(an)o(t)f(to)h(sa)o(v)o
  1271. (e)g(mo)q(di\014ed)179 2696 y(bu\013ers)j(b)q(efore)g(ev)n(aluating)d(or)i
  1272. (running)f(an)o(ything.)17 b(If150 y(\(INCLUDING)15
  1273. b(D)o(AMA)o(GES)h(F)o(OR)f(LOSS)h(OF)g(BUSINESS)h(PR)o(OFITS,)f(BUSINESS)g
  1274. (INTERR)o(UPTION,)75 2200 y(LOSS)21 b(OF)g(BUSINESS)g(INF)o(ORMA)m(TION,)f
  1275. (AND)g(THE)h(LIKE\))g(ARISING)f(OUT)h(OF)g(THE)f(USE)h(OR)75
  1276. 2250 y(INABILITY)c(TO)g(USE)g(MA)o(CINTOSH)g(COMMON)g(LISP)g(EVEN)g(IF)g
  1277. (APPLE)g(HAS)g(BEEN)g(AD)o(VISED)75 2299 y(OF)d(THE)g(POSSIBILITY)h(OF)g
  1278. (SUCH)f(D)o(AMA)o(GES.)137 2374 y(BECA)o(USE)g(SOME)g(ST)m(A)m(TES)e(DO)h
  1279. (NOT)h(ALLO)o(W)e(THE)i(EX)o(CLUSION)f(OR)g(LIMIT)m(A)m(TION)g(OF)g(LIA-)75
  1280. 2424 y(BILITY)j(F)o(OR)f(CONSEQUENTIAL)h(OR)f(INCIDENT)m(AL)g(D)o(AMA)o(GES,)
  1281. g(THE)g(ABO)o(VE)h(LIMIT)m(A)m(TIONS)75 2474 y(MA)m(Y)c(NOT)h(APPL)m(Y)g(TO)f
  1282. (YOU.)h(Apple's)f(liabilit)o(y)e(to)i(y)o(ou)g(for)g(actual)g(damages)f(for)h
  1283. (an)o(y)g(cause)h(whatso)q(ev)o(er,)75 2523 y(and)i(regardless)i(of)e(the)h
  1284. (form)d(of)i(the)h(action)f(\(whether)i(in)e(con)o(tract,)h(tort)g
  1285. (\(including)e(negligence\),)i(pro)q(duct)75 2573 y(liabilit)o(y)11
  1286. b(or)j(otherwise\),)h(will)d(b)q(e)i(limited)e(to)i($50.)p
  1287. eop
  1288. %%Page: 11 12
  1289. bop 75 50 a Fg(5)41 b(THE)14 b(COMMAND)h(INTERF)-5 b(A)o(CE)1101
  1290. b Ff(11)75 195 y Fi(5)69 b(The)23 b(Command)f(In)n(terface)75
  1291. 310 y Ff(When)13 b(y)o(ou)f(run)h(the)g(Hask)o(ell)g(executable)g
  1292. Fd($HASKELLPROG)e Ff(directly)m(,)h(it)g(puts)i(y)o(ou)e(in)o(to)g(a)g
  1293. (command)e(lo)q(op)i(that)75 360 y(allo)o(ws)e(y)o(ou)i(to)f(compile,)f
  1294. (load,)h(and)h(run)g(programs.)k(This)11 b(section)i(giv)o(es)e(brief)h
  1295. (descriptions)h(of)e(all)f(commands)75 410 y(recognized)15
  1296. b(b)o(y)f(the)g(command)d(in)o(terface.)137 483 y(The)i(command)c(in)o
  1297. (terface)k(main)o(tains)d(a)h(single)h(scratc)o(h)h(pad)f(for)g(Hask)o(ell)g
  1298. (source)h(co)q(de.)18 b(An)o(y)12 b(line)g(starting)75 533
  1299. y(with)j Fd(:)g Ff(is)g(assumed)h(to)f(b)q(e)h(a)f(command.)20
  1300. b(Other)c(lines)g(are)f(added)h(to)f(the)h(curren)o(t)h(con)o(ten)o(ts)g(of)e
  1301. (the)h(scratc)o(h)75 583 y(pad.)h(There)c(is)f(only)g(one)g(pad)g(and)g(it)f
  1302. (is)h(asso)q(ciated)h(with)f(the)g(curren)o(t)i(mo)q(dule)c(that)i(the)h
  1303. (system)f(has)g(fo)q(cused)75 633 y(on,)i(as)g(selected)i(b)o(y)e(the)h
  1304. Fd(:module)e Ff(command)f(or)i(loading)f(a)h(Hask)o(ell)g(program.)k(This)c
  1305. (mo)q(dule)f(name)g(is)h(used)75 683 y(as)i(the)h(prompt.)25
  1306. b(Whenev)o(er)17 b(an)f(error)h(is)f(encoun)o(tered)j(during)d(compilation)d
  1307. (of)j(the)h(pad,)f(the)h(pad)f(rev)o(erts)75 732 y(to)g(whatev)o(er)i(v)n
  1308. (alue)d(last)i(compiled)d(successfully)m(.)27 b(The)17 b(command)d(in)o
  1309. (terface)j(scratc)o(h)g(pad)g(is)f(not)g(in)o(tended)75 782
  1310. y(for)f(serious)h(program)d(dev)o(elopmen)o(t)i(but)g(rather)h(serv)o(es)h
  1311. (as)e(a)g(place)g(to)g(easily)g(sa)o(v)o(e)g(a)g(few)g(de\014nitions)g(while)
  1312. 75 832 y(debugging)e(a)h(program.)137 906 y(Command)9 b(argumen)o(ts)j(are)g
  1313. (separated)i(b)o(y)e(whitespace.)18 b(All)12 b(commands)e(ma)o(y)g(b)q(e)j
  1314. (abbreviated)f(using)g(the)75 956 y(shortest)j(unique)f(pre\014x)h(of)e(the)i
  1315. (command)c(name.)17 b(Here)e(are)f(brief)g(descriptions)h(of)e(the)i
  1316. (commands.)75 1068 y Fd(:=)21 b Fc(exp)179 1118 y Ff(Ev)n(aluates)14
  1317. b(the)g(Hask)o(ell)f(expression)i Fc(exp)g Ff(\(whic)o(h)f(m)o(ust)f(b)q(e)h
  1318. (in)g(class)g Fd(Text)p Ff(\))f(and)h(prin)o(ts)g(the)g(result.)75
  1319. 1200 y Fd(:@)21 b Fc(exp)179 1250 y Ff(Runs)14 b(the)g(Hask)o(ell)g(dialogue)
  1320. e Fc(exp)j Ff(in)e(the)i(curren)o(t)g(mo)q(dule.)75 1332 y
  1321. Fd(:>)21 b Fc(exp)179 1382 y Ff(This)14 b(executes)i Fc(exp)p
  1322. Ff(,)e(whic)o(h)f(m)o(ust)g(b)q(e)i(of)e(t)o(yp)q(e)h Fd(Text)21
  1323. b(a)h(=>)f(IO)h(a)p Ff(,)13 b(and)h(prin)o(ts)g(the)g(result.)75
  1324. 1464 y Fd(::)43 b Fc(exp)179 1514 y Ff(This)20 b(is)f(similar)f(to)h(the)i
  1325. Fd(:=)e Ff(command,)f(but)i(merely)f(prin)o(ts)h(the)h(inferred)f(t)o(yp)q(e)
  1326. h(of)e Fc(exp)h Ff(instead)h(of)179 1564 y(ev)n(aluating)12
  1327. b(it.)75 1646 y Fd(:clear)179 1696 y Ff(Clear)i(the)g(scratc)o(h)h(pad.)75
  1328. 1778 y Fd(:list)179 1827 y Ff(Prin)o(ts)f(out)g(the)g(scratc)o(h)i(pad.)75
  1329. 1909 y Fd(:module)k Fc(name)179 1959 y Ff(Selects)14 b(the)g(mo)q(dule)e(to)h
  1330. (use)h(as)f(con)o(text)h(for)f(subsequen)o(t)i(ev)n(aluations.)i(The)d(mo)q
  1331. (dule)d(m)o(ust)i(b)q(e)g(presen)o(t)179 2009 y(in)j(the)h(most)e(recen)o
  1332. (tlyen)o(tation.)75
  1333. 1758 y Fh(6.2)56 b(Compilation)17 b(Unit)h(Files)75 1859 y
  1334. Ff(A)d(unit)f(\014le)h(\(one)g(with)f(the)h Fd(.hu)f Ff(extension\))i(con)o
  1335. (tains)e(a)h(list)f(of)g(\014le)h(names)e(and)i(compiler)e(options,)h(one)h
  1336. (p)q(er)75 1909 y(line.)j(File)13 b(names)g(and)h(options)f(ma)o(y)f(app)q
  1337. (ear)j(in)e(an)o(y)g(order)i(inside)f(the)g Fd(.hu)g Ff(\014le.)k(Sp)q
  1338. (eci\014cally)m(,)137 2025 y Fe(\017)j Ff(A)d(\014le)h(name)e(with)i(a)f
  1339. Fd(.hs)g Ff(or)g Fd(.lhs)g Ff(extension)h(sp)q(eci\014es)i(a)d(constituen)o
  1340. (t)i(Hask)o(ell)e(source)i(\014le)e(of)g(the)179 2075 y(compilation)11
  1341. b(unit.)137 2158 y Fe(\017)21 b Ff(A)15 b(\014le)g(name)g(with)f(a)h
  1342. Fd(.hi)g Ff(or)g Fd(.lhi)g Ff(extension)h(sp)q(eci\014es)h(an)e(in)o(terface)
  1343. h(\014le)f(that)g(is)h(imp)q(orted)e(in)o(to)g(the)179 2208
  1344. y(compilation)d(unit.)137 2291 y Fe(\017)21 b Ff(A)11 b(\014le)g(name)f(with)
  1345. h(a)g Fd(.hu)g Ff(extension)h(sp)q(eci\014es)h(a)e(compilation)d(unit)j(to)g
  1346. (imp)q(ort.)16 b(\(If)11 b(y)o(ou)g(w)o(an)o(t)f(to)i(imp)q(ort)179
  1347. 2341 y(a)h(single)h(source)h(\014le)f(that)g(y)o(ou)f(wish)h(to)g(compile)e
  1348. (separately)m(,)i(y)o(ou)f(m)o(ust)g(create)i(a)f(unit)f(\014le)h(for)g
  1349. (it.\))137 2424 y Fe(\017)21 b Ff(Compiler)14 b(options)h(are)i(pre\014xed)g
  1350. (with)e(a)h(colon.)23 b(The)17 b(compiler)d(options)h(that)h(y)o(ou)g(can)g
  1351. (include)g(in)f(a)179 2474 y Fd(.hu)e Ff(\014le)h(are)g(summarized)e(in)i
  1352. (Figure)g(1.)137 2557 y Fe(\017)21 b Ff(T)m(o)14 b(sp)q(ecify)i(the)g(imp)q
  1353. (ortation)c(of)j(programs)f(written)i(in)e(other)i(languages)f(\(see)h
  1354. (section)g(6.4\),)e(y)o(ou)h(can)179 2607 y(include)i(\014le)h(names)f(with)g
  1355. (a)g(a)h Fd(.scm)e Ff(or)i Fd(.lisp)e Ff(extension)j(\(for)e(Lisp)g(co)q
  1356. (de\))i(or)e(a)h Fd(.o)f Ff(extension)h(\(for)179 2656 y(other)c
  1357. (languages\).)p eop
  1358. %%Page: 14 15
  1359. bop 75 50 a Fg(6)41 b(THE)14 b(COMPILA)m(TION)h(SYSTEM)1100
  1360. b Ff(14)p 75 201 1856 2 v 75 692 2 492 v 128 266 a Fd(:input)12
  1361. b Fc(\014lename)76 b Ff(Sp)q(ecify)14 b(di\013eren)o(t)h(\014lename)e
  1362. (directory)h(defaults)g(for)g(source)h(\014les.)128 316 y Fd(:output)d
  1363. Fc(\014lename)54 b Ff(Sp)q(ecify)14 b(di\013eren)o(t)h(\014lename)e
  1364. (directory)h(defaults)g(for)g(output)g(\014les.)128 366 y Fd(:import)e
  1365. Fc(\014lename)54 b Ff(Sp)q(ecify)14 b(di\013eren)o(t)h(\014lename)e
  1366. (directory)h(defaults)g(for)g(imp)q(orted)e(units.)128 416
  1367. y Fd(:stable)216 b Ff(Don't)13 b(try)h(to)g(recompile)f(this)h(unit)f(if)g
  1368. (already)h(compiled)e(or)i(loaded.)128 465 y Fd(:prelude)194
  1369. b Ff(Don't)13 b(implicitly)e(imp)q(ort)h(the)i(standard)h(prelude.)128
  1370. 515 y Fd(:p=)e Fc(printers)148 b Ff(Sp)q(ecify)14 b(prin)o(ters)h(for)e(this)
  1371. h(unit.)128 565 y Fd(:o=)f Fc(optimizers)104 b Ff(Sp)q(ecify)14
  1372. b(optimizers)f(for)g(this)h(unit.)128 615 y Fd(:o=)21 b(all)217
  1373. b Ff(T)m(urn)14 b(on)f(all)g(optimizers.)128 665 y Fd(:chunk-size)e
  1374. Fc(n)94 b Ff(Set)14 b(c)o(h)o(unk)g(size)h(for)f(Lisp)f(compiler.)p
  1375. 1929 692 V 75 694 1856 2 v 656 831 a(Figure)h(1:)j(Compilation)11
  1376. b(unit)j(options)137 981 y(Y)m(ou)e(m)o(ust)f(supply)h(extensions)i(for)e
  1377. (all)f(of)g(the)i(\014le)f(names)g(listed)g(in)g(the)h(unit)f(\014le.)17
  1378. b(The)c(directory)g(for)f(b)q(oth)75 1031 y(source)17 b(\014les)e(and)h(imp)q
  1379. (orted)e(units)i(\(as)f(w)o(ell)g(as)g(that)h(for)f(the)h(output)f(\014les)h
  1380. (of)f(the)h(compilation\))d(defaults)i(to)75 1081 y(the)f(same)e(directory)i
  1381. (as)g(the)g Fd(.hu)e Ff(\014le,)h(although)f(y)o(ou)h(can)h(sp)q(ecify)f
  1382. (di\013eren)o(t)i(defaults)e(using)g(the)h(compilation)75 1131
  1383. y(unit)g(options)f(listed)h(in)g(\014gure)g(1.)137 1205 y(Compiling)e(a)i
  1384. (unit)g(with)g(the)i Fd(C-c)21 b(c)14 b Ff(or)h Fd(:compile)e
  1385. Ff(normally)e(writes)16 b(t)o(w)o(o)e(output)h(\014les:)k(an)c(ob)r(ject)g
  1386. (co)q(de)75 1255 y(\014le)g(and)g(a)g(compiled)e(in)o(terface)j(\014le.)22
  1387. b(Both)15 b(of)g(these)h(\014les)g(con)o(tain)e(Lisp)h(co)q(de.)23
  1388. b(The)15 b(name)f(of)h(the)h(compiled)75 1305 y(in)o(terface)j(\014le)g(is)g
  1389. (su\016xed)g(with)f Fd(-hci)o Ff(.)33 b(The)19 b(extension)g(used)h(for)e
  1390. (the)h(output)g(\014les)g(v)n(aries)g(dep)q(ending)g(on)75
  1391. 1355 y(the)g(underlying)g(Lisp)f(implemen)o(tation.)29 b(F)m(or)19
  1392. b(example,)f(compiling)e Fd(foo.hu)h Ff(in)h(the)i(CMU-based)f(system)75
  1393. 1405 y(pro)q(duces)c Fd(foo-hci.scm)d Ff(and)i Fd(foo.sparcf)e
  1394. Ff(as)h(output.)137 1479 y(If)j(the)g(unit)g(con)o(tains)g(man)o(y)e(source)j
  1395. (\014les,)g(or)f(v)o(ery)g(long)f(\014les,)h(the)h(co)q(de)g(\014le)f(is)f
  1396. (automatically)e(split)j(up)75 1529 y(in)o(to)g(smaller)g(c)o(h)o(unks)h(to)g
  1397. (mak)o(e)f(it)h(easier)g(for)g(the)h(Lisp)f(compiler)e(to)i(pro)q(cess.)30
  1398. b(The)17 b(individual)e(pieces)k(are)75 1579 y(giv)o(en)13
  1399. b(names)g(lik)o(e)h Fd(foo-part1.sparc)o(f)m Ff(.)75 1720 y
  1400. Fh(6.3)56 b(Separate)18 b(Compilation)75 1822 y Ff(If)d(y)o(ou)g(ha)o(v)o(e)g
  1401. (a)g(large)g(program,)f(it)h(is)h(helpful)e(to)i(break)f(it)g(up)h(in)o(to)f
  1402. (smaller)e(pieces)k(that)f(can)f(b)q(e)h(separately)75 1871
  1403. y(compiled.)g(In)d(order)h(to)f(do)g(this,)g(the)h(compiler)e(m)o(ust)g(ha)o
  1404. (v)o(e)h(information)e(ab)q(out)i(the)h(in)o(terfaces)g(b)q(et)o(w)o(een)g
  1405. (the)75 1921 y(compilation)d(units.)18 b(There)d(are)f(t)o(w)o(o)g(t)o(yp)q
  1406. (es)h(of)e(in)o(terfaces:)126 2037 y(1.)20 b(Y)m(ou)15 b(can)g(create)i(an)e
  1407. (in)o(terface)h(\()p Fd(.hi)o Ff(\))g(\014le)f(for)g(an)o(y)g(mo)q(dule)f
  1408. (and)h(include)g(it)g(in)g(units)g(whic)o(h)g(reference)179
  1409. 2087 y(that)f(mo)q(dule.)126 2170 y(2.)20 b(Compiling)7 b(a)j(mo)q(dule)g
  1410. (implem)o(en)o(tation)e(also)i(creates)i(an)e(in)o(terface)i(whic)o(h)e(is)h
  1411. (more)e(detailed)i(than)f(those)179 2220 y(in)j Fd(.hi)g Ff(\014les)i
  1412. (\(these)g(are)f(stored)h(in)f Fd(-hci)f Ff(\014les)h(when)g(compiling)e(to)h
  1413. (a)h(\014le\).)137 2336 y(A)21 b(compilation)c(unit)j(ma)o(y)e(imp)q(ort)h
  1414. (an)h(outside)g(mo)q(dule)f(b)o(y)h(referencing)h(either)g(of)f(these)h(in)o
  1415. (terfaces.)75 2386 y(Ho)o(w)o(ev)o(er,)14 b(there)h(are)f(signi\014can)o(t)g
  1416. (di\013erences)i(b)q(et)o(w)o(een)f(the)g(t)o(w)o(o.)137 2461
  1417. y(When)e(a)g(unit)g(\014le)f(con)o(tains)h(the)h(name)d(of)i(another)g(unit)g
  1418. (\014le,)f(this)h(included)g(unit)g(is)f(compiled)g(b)q(efore)h(the)75
  1419. 2511 y(curren)o(t)j(unit)e(and)h(the)g(detailed)f(in)o(terface)i(information)
  1420. 11 b(for)j(the)i(imp)q(orted)d(unit)i(collected)g(b)o(y)f(the)h(compiler)75
  1421. 2560 y(is)h(used)i(to)e(do)g(cross-unit)h(optimizations)d(in)i(the)h(co)q(de)
  1422. g(for)f(the)h(curren)o(t)h(unit.)25 b(The)17 b(disadv)n(an)o(tages)f(of)g
  1423. (this)75 2610 y(approac)o(h)f(are)h(that)g(the)g(relation)f(b)q(et)o(w)o(een)
  1424. i(compilation)c(units)i(m)o(ust)g(b)q(e)h(hierarc)o(hical,)f(and)h(an)o(y)f
  1425. (c)o(hange)g(in)75 2660 y(an)f(imp)q(orted)e(unit)i(triggers)g(recompilation)
  1426. e(of)h(units)h(that)g(include)g(it.)p eop
  1427. %%Page: 15 16
  1428. bop 75 50 a Fg(6)41 b(THE)14 b(COMPILA)m(TION)h(SYSTEM)1100
  1429. b Ff(15)137 195 y(When)18 b(a)f(mo)q(dule)f(is)h(brough)o(t)g(in)o(to)g(a)g
  1430. (unit)g(through)h(only)e(a)i Fd(.hi)e Ff(\014le,)i(no)f(cross)i(mo)q(dule)d
  1431. (optimization)75 245 y(can)h(b)q(e)h(p)q(erformed)e(on)h(references)i(to)e(v)
  1432. n(alues)g(in)f(the)i(imp)q(orted)d(mo)q(dule.)26 b(On)17 b(the)g(other)h
  1433. (hand,)f(when)g(the)75 295 y(implemen)o(tatio)o(n)c(corresp)q(onding)k(to)f
  1434. (the)h(in)o(terface)f(c)o(hanges,)h(this)f(do)q(es)h(not)f(require)g
  1435. (recompilation)e(unless)75 345 y(the)g Fd(.hi)e Ff(\014le)i(is)f(also)f(c)o
  1436. (hanged.)18 b(This)13 b(also)g(allo)o(ws)f(m)o(utually)e(recursiv)o(e)15
  1437. b(mo)q(dules)d(to)h(b)q(e)h(separately)g(compiled,)75 394 y(something)f(that)
  1438. h(cannot)g(b)q(e)g(done)g(without)g Fd(.hi)f Ff(\014les.)137
  1439. 469 y(When)e(b)q(oth)g(the)g(implemen)o(tation)c(and)k(user)h(supplied)e(in)o
  1440. (terface)i(for)e(a)g(mo)q(dule)f(are)j(part)e(of)g(a)h(compilation)75
  1441. 519 y(unit,)k(the)h(system)f(c)o(hec)o(ks)i(for)e(agreemen)o(t)g(b)q(et)o(w)o
  1442. (een)i(the)f(t)o(w)o(o)e(in)o(terfaces)j(and)e(noti\014es)h(y)o(ou)e(of)h(an)
  1443. o(y)g(inconsis-)75 569 y(tencies)h(b)q(et)o(w)o(een)f(the)g(mo)q(dule)e(and)h
  1444. (its)g(in)o(terface.)20 b(An)o(y)14 b(program)e(whic)o(h)i(uses)i
  1445. Fd(.hi)d Ff(\014les)i(should)f(include)g(the)75 619 y Fd(.hi)f
  1446. Ff(in)o(terface)i(in)e(an)o(y)h(unit)f(where)i(the)g(corresp)q(onding)g
  1447. (implem)o(en)o(tations)c(are)k(de\014ned.)137 693 y(In)e(practice,)h(y)o(ou)f
  1448. (ma)o(y)e(w)o(an)o(t)h(to)h(start)h(out)f(b)o(y)f(using)h Fd(.hi)g
  1449. Ff(\014les)g(to)g(de\014ne)h(the)f(in)o(terfaces)h(b)q(et)o(w)o(een)h(compi-)
  1450. 75 743 y(lation)d(units)h(as)h(y)o(ou)e(are)i(writing)e(and)h(debugging)g(y)o
  1451. (our)g(program,)e(and)i(switc)o(h)h(to)f(imp)q(orting)e Fd(.hu)i
  1452. Ff(\014les)g(once)75 793 y(the)h(co)q(de)h(has)f(stabilized)g(to)g(increase)h
  1453. (the)f(amoun)o(t)e(of)i(cross)h(mo)q(dule)d(optimization.)137
  1454. 868 y(Here)20 b(is)e(an)g(example)f(sho)o(wing)h(ho)o(w)f(y)o(ou)h(can)h(set)
  1455. g(up)f(y)o(our)g Fd(.hu)g Ff(\014les)h(for)e(eac)o(h)i(of)f(these)i(approac)o
  1456. (hes.)75 917 y(Supp)q(ose)h(y)o(ou)e(ha)o(v)o(e)g(a)h(program)e
  1457. Fd(p)h Ff(that)h(consists)g(of)f(t)o(w)o(o)g(source)i(\014les)f
  1458. Fd(a)g Ff(and)f Fd(b)h Ff(that)f(con)o(tain)h(m)o(utually)75
  1459. 967 y(recursiv)o(e)15 b(references,)i(and)c(a)h(library)f Fd(l)h
  1460. Ff(that)g(is)f(used)i(b)o(y)f(b)q(oth)g Fd(a)g Ff(and)f Fd(b)p
  1461. Ff(.)137 1042 y(When)j(debugging)e(y)o(our)h(co)q(de,)h(y)o(ou)e(could)h(b)q
  1462. (egin)g(b)o(y)g(creating)h(a)f Fd(.hi)f Ff(\014le)h(for)g(eac)o(h)h(of)e
  1463. Fd(a)p Ff(,)h Fd(b)p Ff(,)f(and)h Fd(l)p Ff(,)g(and)75 1092
  1464. y(structuring)g(the)f Fd(.hu)g Ff(\014les)g(lik)o(e)f(this:)75
  1465. 1208 y Fd(p.hu:)162 1258 y(l.hu)162 1308 y(a.hu)162 1357 y(b.hu)75
  1466. 1457 y(l.hu:)162 1507 y(l.hs)162 1557 y(l.hi)75 1656 y(a.hu:)162
  1467. 1706 y(a.hs)162 1756 y(a.hi)162 1806 y(b.hi)162 1856 y(l.hi)75
  1468. 1955 y(b.hu:)162 2005 y(b.hs)162 2055 y(b.hi)162 2105 y(a.hi)162
  1469. 2154 y(l.hi)137 2271 y Ff(Then,)k(once)g(y)o(ou)e(are)h(no)g(longer)g(making)
  1470. e(c)o(hanges)i(to)g(the)h(co)q(de)g(and)e(w)o(an)o(t)h(to)g(get)g(it)g(to)g
  1471. (compile)e(more)75 2320 y(e\016cien)o(tly)m(,)f(y)o(ou)g(can)h(restructure)j
  1472. (the)e Fd(.hu)e Ff(\014les)h(lik)o(e)f(this:)75 2437 y Fd(p.hu:)162
  1473. 2487 y(l.hu)162 2536 y(a.hs)162 2586 y(a.hi)162 2636 y(b.hs)162
  1474. 2686 y(b.hi)p eop
  1475. %%Page: 16 17
  1476. bop 75 50 a Fg(6)41 b(THE)14 b(COMPILA)m(TION)h(SYSTEM)1100
  1477. b Ff(16)75 245 y Fd(l.hu:)162 295 y(l.hs)162 345 y(l.hi)137
  1478. 461 y Ff(Note)16 b(that,)f(in)f(b)q(oth)h(cases,)i(w)o(e)e(ha)o(v)o(e)g(b)q
  1479. (een)h(careful)f(to)g(include)g(the)h Fd(.hi)e Ff(\014les)h(in)g(the)h(same)e
  1480. (compilation)75 511 y(unit)d(that)g(con)o(tains)g(the)h(corresp)q(onding)g
  1481. (implemen)o(tatio)o(ns,)d(so)i(that)g(the)h(compiler)e(can)h(automatically)d
  1482. (detect)75 560 y(inconsistencies)15 b(b)q(et)o(w)o(een)h(the)e(t)o(w)o(o.)75
  1483. 702 y Fh(6.4)56 b(Compilation)17 b(Units)h(for)h(F)-5 b(oreign)18
  1484. b(F)-5 b(unctions)75 803 y Ff(In)o(terface)18 b(\014les)e(that)h(de\014ne)h
  1485. (an)e(in)o(terface)h(to)f(co)q(de)i(written)f(in)f(Lisp,)g(C,)g(or)h(other)g
  1486. (languages)f(are)h(di\013eren)o(t)75 853 y(from)g(ordinary)i(in)o(terface)h
  1487. (\014les)f(in)g(that)g(they)g(generate)i(some)d(amoun)o(t)f(of)i(executable)h
  1488. (co)q(de)g(\(to)f(p)q(erform)75 903 y(con)o(v)o(ersions)14
  1489. b(on)g(function)f(argumen)o(ts)g(and)h(results\).)19 b(Y)m(ou)13
  1490. b Fc(must)h Ff(put)g(eac)o(h)g(foreign-co)q(de)g(in)o(terface)g(\014le)g(in)f
  1491. (its)75 952 y(o)o(wn)f(compilation)e(unit)j(along)f(with)g(only)g(the)i(asso)
  1492. q(ciated)f Fd(.scm)o Ff(,)g Fd(.lisp)o Ff(,)f(or)h Fd(.o)g
  1493. Ff(\014les)g(in)f(order)i(to)e(ensure)j(that)75 1002 y(ev)o(erything)i(is)f
  1494. (loaded)g(and)g(initialized)f(in)h(the)g(correct)i(order.)27
  1495. b(It)16 b(do)q(esn't)h(w)o(ork)f(to)g(mix)e(foreign)i(co)q(de)h(and)75
  1496. 1052 y(in)o(terface)d(\014les)h(in)e(the)i(same)e(compilation)e(unit)i(as)h
  1497. (Hask)o(ell)g(source)h(\014les.)137 1127 y(If)h(y)o(ou)f(list)g(Lisp)h
  1498. (source)h(\014les)f(with)g Fd(.scm)f Ff(or)g Fd(.lisp)g Ff(extensions)i(in)e
  1499. (a)h(compilation)d(unit,)i(the)i(system)e(is)75 1177 y(smart)e(enough)h(to)g
  1500. (also)g(lo)q(ok)f(for)h(corresp)q(onding)h(compiled)d(\014les,)i(and)g
  1501. (reload)g(or)g(recompile)f(the)i(source)h(\014les)75 1226 y(if)g(necessary)m
  1502. (.)26 b(If)16 b(y)o(ou)g(are)h(linking)e(to)h(C)g(or)h(some)e(other)i
  1503. (language,)f(though,)g(y)o(ou)g(m)o(ust)f(compile)g(this)h(co)q(de)75
  1504. 1276 y(y)o(ourself)e(to)f(generate)j(the)e Fd(.o)g Ff(\014les.)75
  1505. 1417 y Fh(6.5)56 b(Recompilation)15 b(as)k(Needed)75 1519 y
  1506. Ff(Y)m(ale)12 b(Hask)o(ell)g(attempts)g(to)h(reduce)h(the)f(amoun)o(t)e(of)h
  1507. (pro)q(cessing)i(needed)g(when)f(compiling)d(a)j(program)e(b)o(y)h(not)75
  1508. 1569 y(recompiling)g(units)i(that)g(ha)o(v)o(e)f(not)h(b)q(een)h(mo)q
  1509. (di\014ed)f(->)g(\(b)h(->)f(c\))h(->)f(Either)g
  1510. (a)g(b)h(->)f(c)75 703 y(either)g(f)g(g)h(\(Left)e(x\))i(=)f(f)h(x)75
  1511. 753 y(either)f(f)g(g)h(\(Right)e(y\))i(=)f(g)h(y)75 853 y(thenMaybe)e(::)h
  1512. (Maybe)g(a)h(->)f(\(a)g(->)h(Maybe)f(b\))g(->)g(Maybe)g(b)75
  1513. 903 y(thenMaybe)f(Nothing)g(_)i(=)f(Nothing)75 953 y(thenMaybe)f(\(Just)h
  1514. (x\))g(f)h(=)f(f)h(x)75 1052 y(curry)64 b(::)22 b(\(\(a,b\))e(->)i(c\))f(->)g
  1515. (a)h(->)f(b)h(->)f(c)75 1102 y(curry)g(f)g(x)h(y)g(=)f(f)h(\(x,y\))75
  1516. 1202 y(uncurry)e(::)i(\(a)f(->)g(b)h(->)f(c\))h(->)f(\(a,b\))g(->)g(c)75
  1517. 1251 y(uncurry)f(f)i(\(x,y\))f(=)g(f)h(x)f(y)75 1351 y(copy)108
  1518. b(::)22 b(Int)f(->)g(a)h(->)f([a])75 1401 y(copy)43 b(n)21
  1519. b(x)h(=)g(take)e(n)i(\(repeat)e(x\))75 1500 y(lookup)h(::)g(Eq)g(a)h(=>)f
  1520. ([\(a,b\)])g(->)g(a)h(->)f(Maybe)g(b)75 1550 y(lookup)g([])g(_)h(=)f(Nothing)
  1521. 75 1600 y(lookup)g(\(\(key,val\))e(:)j(rest\))f(x)g(|)h(key)f(==)g(x)h(=)g
  1522. (Just)e(val)685 1650 y(|)i(otherwise)e(=)h(lookup)g(rest)g(x)137
  1523. 1758 y Ff(Another)d(Prelude)h(c)o(hange)e(is)g(that)h(the)f
  1524. Fd(Assoc)g Ff(data)g(t)o(yp)q(e)g(has)h(b)q(een)g(remo)o(v)o(ed.)27
  1525. b(The)18 b(arra)o(y)f(op)q(erators)75 1808 y(no)o(w)c(use)i(2-tuples.)137
  1526. 1882 y(The)k Fd(_)f Ff(sym)o(b)q(ol)f(can)i(no)o(w)f(b)q(e)h(used)g(in)f(an)g
  1527. (expression)i(to)e(denote)h(an)f(error)i(v)n(alue.)31 b Fd(_)18
  1528. b Ff(is)g(seman)o(tically)75 1932 y(equivilen)o(t)13 b(to)h(b)q(ottom)e(but)j
  1529. (the)f(compiler)e(will)h(use)i(a)e(nice)i(error)f(message.)k(The)c
  1530. (de\014nition)75 2040 y Fd(foo)21 b(=)h(_)75 2148 y Ff(can)14
  1531. b(b)q(e)f(used)i(to)e(create)h(a)f(stub)h(for)f Fd(foo)p Ff(.)k(Y)m(ale)c
  1532. (Hask)o(ell)g(will)f(generate)i(an)f(informativ)o(e)e(error)j(message)f(if)g
  1533. Fd(foo)75 2198 y Ff(is)h(ev)n(aluated.)137 2273 y(Another)i(new)g(feature)f
  1534. (is)g(that)g(p)q(olymorphic)f(recursion)i(is)f(allo)o(w)o(ed.)20
  1535. b(F)m(or)14 b(example,)g(the)i(follo)o(wing)c(co)q(de)75 2322
  1536. y(fragmen)o(t)g(will)h(not)h(compile:)75 2430 y Fd(data)21
  1537. b(Foo)g(a)h(=)f(A)h(|)f(B)h(\(Foo)f([a]\))75 2530 y(f)h(A)196
  1538. b(=)21 b(\(\))75 2580 y(f)h(\(B)f(thing\))g(=)g(f)h(thing)75
  1539. 2688 y Ff(Adding)13 b(a)h(signature)g(to)g Fd(f)p Ff(,)p eop
  1540. %%Page: 19 20
  1541. bop 75 50 a Fg(8)41 b(ANNOT)m(A)m(TIONS)1385 b Ff(19)75 195
  1542. y Fd(f)22 b(::)f(Foo)g(a)h(->)f(\(\))75 303 y Ff(will)12 b(allo)o(w)g(the)i
  1543. (recursiv)o(e)h(call)e(to)g(b)q(e)h(p)q(olymorphic)e(and)h(a)o(v)o(oid)f(a)i
  1544. (t)o(yp)q(e)g(error.)k(An)c(explicit)f(t)o(yp)q(e)h(signature)g(is)75
  1545. 353 y(required)h(to)f(mak)o(e)e(use)j(of)e(p)q(olymorphic)f(recursion.)137
  1546. 428 y(The)g(Hask)o(ell)f(1.3)f(committee)g(is)h(seriously)h(considering)f
  1547. (dropping)g Fd(+)g Ff(patterns)i(from)c(the)j(language.)17
  1548. b(These)75 477 y(are)d(still)f(in)h(the)g(Y)m(ale)f(system)h(but)g(should)g
  1549. (b)q(e)g(a)o(v)o(oided.)75 640 y Fi(8)69 b(Annotations)75 755
  1550. y Ff(The)13 b(Y)m(ale)f(compiler)f(recognizes)j(a)e(n)o(um)o(b)q(er)g(of)g
  1551. (annotations)g(in)g(the)h(source)h(program.)i(Annotations)c(are)h(used)75
  1552. 805 y(for)h(strictness)i(prop)q(erties,)e(optimizer)f(con)o(trol,)g(and)h
  1553. (the)g(in)o(terface)h(to)f(the)g(Lisp)g(en)o(vironmen)o(t.)75
  1554. 946 y Fh(8.1)56 b(Annotation)18 b(Syn)n(tax)75 1048 y Ff(Annotations)13
  1555. b(are)h(a)f(sp)q(ecial)g(form)f(of)h(commen)o(ts.)j(They)d(b)q(egin)h(with)f
  1556. Fd({-#)f Ff(and)h(end)h(with)f Fd(#-})o Ff(.)18 b(Within)13
  1557. b(these)75 1098 y(delimiters,)g(annotations)h(are)h(separated)h(b)o(y)e
  1558. (semicolons)g(in)g(the)h(same)f(manner)f(as)i(declarations.)20
  1559. b(La)o(y)o(out)14 b(is)75 1147 y(in)f(e\013ect)j(allo)o(wing)c(the)i
  1560. (semicolons)f(to)g(b)q(e)i(omitted.)137 1222 y(Eac)o(h)f(annotation)f(has)h
  1561. (a)f(name)f(and)i(p)q(ossibly)f(a)g(set)i(of)e(argumen)o(ts,)f(enclosed)j(in)
  1562. e(paren)o(theses)j(and)e(sepa-)75 1272 y(rated)h(b)o(y)e(commas.)j(The)e
  1563. (exact)h(syn)o(tax)e(of)h(the)g(argumen)o(ts)f(v)n(aries)h(with)g(the)g(t)o
  1564. (yp)q(e)h(of)e(annotation.)137 1347 y(Annotations)h(generally)g(refer)h(to)f
  1565. (some)f(ob)r(ject)i(in)e(the)i(program.)i(Sometimes)12 b(this)i(ob)r(ject)h
  1566. (is)f(implicit)d(in)75 1397 y(the)16 b(placemen)o(t)f(of)g(the)h(annotation.)
  1567. 21 b(Otherwise,)c(the)f(ob)r(ject)g(b)q(eing)g(annotated)f(is)h(explicitly)e
  1568. (named)g(using)75 1446 y Fd(::)g Ff(syn)o21 b(f)h(::)f(Specialize)f(\(Int->Int->Int->In)o(t\))f(#-})137
  1569. 1371 y Ff(Y)m(ou)12 b(can)h(sp)q(ecify)h(sev)o(eral)f(annotations)f(that)h
  1570. (sp)q(ecialize)h(the)f(same)f(function)g(for)h(di\013eren)o(t)h(signatures.)k
  1571. (In)75 1421 y(this)13 b(case,)h(the)g(optimizer)d(attempts)i(to)g(matc)o(h)f
  1572. (calls)g(against)h(these)h(signatures)g(in)f(the)g(same)g(order)g(in)g(whic)o
  1573. (h)75 1471 y(the)h(annotations)g(app)q(eared.)137 1542 y(As)e(a)f(practical)g
  1574. (matter,)g(it's)g(only)f(useful)i(to)f(supply)g Fd(Specialize)e
  1575. Ff(annotations)i(for)g(o)o(v)o(erloaded)g(functions)75 1592
  1576. y(whose)g(signatures)g(ha)o(v)o(e)f(non-empt)o(y)f(con)o(texts.)17
  1577. b(If)10 b(y)o(ou)g(w)o(an)o(t)g(to)g(generate)h(sp)q(ecialized)g(v)o(ersions)
  1578. g(of)f(the)g(default)75 1641 y(metho)q(ds)j(in)g(a)f Fd(Class)h
  1579. Ff(de\014nition,)f(y)o(ou)h(should)g(not)g(use)h(the)g Fd(Specialize)d
  1580. Ff(annotation.)17 b(Instead,)c(y)o(ou)g(should)75 1691 y(put)j
  1581. Fd(Inline)e Ff(annotations)h(for)g(the)h(appropriate)g(metho)q(ds)f(in)g(the)
  1582. h(b)q(o)q(dy)g(of)f(the)h Fd(Class)e Ff(de\014nition.)23 b(\(And)16
  1583. b(if)75 1741 y(y)o(ou)f(w)o(an)o(t)f(the)i(optimizer)e(to)g(completely)g
  1584. (inline)g(the)i(metho)q(ds)f(for)f(a)h(particular)g(instance,)g(y)o(ou)g
  1585. (should)g(put)75 1791 y(another)f Fd(Inline)f Ff(annotation)g(in)g(the)i(b)q
  1586. (o)q(dy)f(of)f(that)h Fd(Instance)e Ff(de\014nition.\))137
  1587. 1862 y(The)18 b Fd(Complexity)e Ff(annotation)h(indicates)g(the)i(appro)o
  1588. (ximate)c(time)i(of)g(ev)n(aluation)f(of)h(a)g(function.)30
  1589. b(The)75 1911 y(optimizer)18 b(uses)i(this)g(information)c(to)j(a)o(v)o(oid)f
  1590. (dela)o(ying)g(relativ)o(ely)g(trivial)g(expressions.)36 b(This)19
  1591. b(annotation)75 1961 y(tak)o(es)14 b(an)g(in)o(teger)g(argumen)o(t,)f(lik)o
  1592. (e:)137 2032 y Fd({-#)21 b(f)h(::)f(Complexity\(3\))f(#-})137
  1593. 2103 y Ff(The)13 b(optimizer)d(curren)o(tly)j(ignores)f(the)h(magnitude)d(of)
  1594. h(the)i(complexit)o(y)d(argumen)o(t,)h(but)h(this)g(ma)o(y)e(c)o(hange)75
  1595. 2153 y(in)j(future)i(releases.)20 b(W)m(e)13 b(suggest)i(that)f(y)o(ou)f(use)
  1596. i(v)n(alues)e(b)q(et)o(w)o(een)j(1)d(and)h(10.)75 2288 y Fh(8.4)56
  1597. b(Other)18 b(Annotations)75 2385 y Ff(The)c(Lisp)g(in)o(terface)h(uses)g(man)
  1598. o(y)d(other)i(annotations;)f(these)i(are)g(describ)q(ed)g(in)f(a)f(separate)i
  1599. (do)q(cumen)o(t.)75 2542 y Fi(9)69 b(In)n(terfacing)23 b(with)e(Other)h
  1600. (Languages)75 2654 y Ff(Y)m(ale)15 b(Hask)o(ell)f(pro)o(vides)i(a)f(simple)f
  1601. (metho)q(d)g(for)h(calling)f(functions)h(written)h(in)f(other)h(languages.)21
  1602. b(Both)16 b(Lisp)75 2704 y(and)i(C)f(routines)i(can)f(b)q(e)g(called)g(from)e
  1603. (Hask)o(ell)h(using)h(the)h(foreign)e(function)g(in)o(terface.)31
  1604. b(This)18 b(in)o(terface)g(is)p eop
  1605. %%Page: 21 22
  1606. bop 75 50 a Fg(10)41 b(D)o(YNAMIC)14 b(TYPING)1286 b Ff(21)75
  1607. 195 y(based)14 b(on)f(in)o(terface)h(\014les)g(whic)o(h)f(describ)q(e)i(Lisp)
  1608. e(co)q(de)h(instead)g(of)f(Hask)o(ell)g(functions.)k(F)m(ull)12
  1609. b(details)i(are)f(found)75 245 y(in)g(a)h(tec)o(hnical)g(rep)q(ort)h
  1610. (included)f(in)g(the)g(standard)g(distribution)g(of)f(the)h(Y)m(ale)g
  1611. (system.)75 405 y Fi(10)69 b(Dynamic)22 b(T)n(yping)75 520
  1612. y Ff(Y)m(ale)13 b(Hask)o(ell)h(has)f(b)q(een)i(extended)h(with)d(an)h(exp)q
  1613. (erimen)o(tal)f(dynamic)f(t)o(yping)h(system.)18 b(Dynamic)12
  1614. b(t)o(yping)h(has)75 570 y(b)q(een)j(used)f(to)f(implemen)o(t)e(deriv)o(ed)j
  1615. (instances)h(in)e(our)g(compiler.)19 b(Some)13 b(minor)g(extensions)i(to)g
  1616. (the)g(language)75 619 y(ha)o(v)o(e)e(b)q(een)i(made,)d(namely)g(the)i(use)h
  1617. (of)e(patterns)i(in)e(the)h(form)e Fc(p)n(at)18 b Fd(::)13
  1618. b Fc(typ)n(e)k Ff(and)c(the)i Fd(deriving)d Ff(declaration,)75
  1619. 669 y(but)i(otherwise)h(these)g(extensions)g(are)g(not)e(noticeable)h(unless)
  1620. h(the)g(mo)q(dule)d Fd(Dynamic)g Ff(is)i(imp)q(orted.)137 743
  1621. y(A)32 b(preliminary)d(tec)o(hnical)j(rep)q(ort)h(describing)f(dynamic)e(t)o
  1622. (yping)h(is)g(included)h(in)f(the)h(distribu-)75 792 y(tion.)80
  1623. b(The)36 b(principal)e(do)q(cumen)o(tation)f(is)i(in)f(the)i(prelude)f
  1624. (extensions.)82 b(Lo)q(ok)34 b(at)h(the)h(\014les)75 842 y
  1625. Fd($PRELUDE/PreludeD)o(ynami)o(c.hs)10 b Ff(and)k Fd($PRELUDE/PreludeDe)o
  1626. (rivin)o(g)d Ff(for)j(complete)f(do)q(cumen)o(tation.)75 1002
  1627. y Fi(11)69 b(Errors)25 b(and)f(Debugging)75 1117 y Ff(Most)12
  1628. b(error)h(messages)f(pro)q(duced)h(b)o(y)f(the)g(Y)m(ale)f(compiler)g(should)
  1629. h(p)q(oin)o(t)f(directly)h(to)g(ob)o(vious)f(problems)g(in)g(the)75
  1630. 1167 y(user)k(program.)h(W)m(e)e(ha)o(v)o(e)g(tried)g(to)g(mak)o(e)e(error)j
  1631. (messages)f(as)g(readable)g(and)g(informativ)o(e)d(as)j(p)q(ossible.)75
  1632. 1306 y Fh(11.1)56 b(T)n(yp)r(e)18 b(Chec)n(king)g(Errors)75
  1633. 1406 y Ff(The)e(most)f(di\016cult)g(errors)i(to)e(deal)h(with)f(are)h(t)o(yp)
  1634. q(e)g(errors.)25 b(Generally)m(,)15 b(the)h(compiler)e(cannot)i(easily)f(p)q
  1635. (oin)o(t)75 1456 y(to)h(the)g(exact)h(source)g(of)f(a)f(t)o(yp)q(e)i(mismatc)
  1636. o(h.)22 b(W)m(e)15 b(ha)o(v)o(e)h(made)f(ev)o(ery)i(e\013ort)f(to)g(explain)f
  1637. (errors)j(during)d(t)o(yp)q(e)75 1506 y(c)o(hec)o(king)f(but)g(there)i(are)e
  1638. (times)f(when)h(\014nding)f(the)i(true)g(cause)g(of)e(a)h(t)o(yp)q(e)g(error)
  1639. h(tak)o(es)f(some)f(e\013ort.)137 1579 y(One)h(w)o(a)o(y)f(to)g(a)o(v)o(oid)f
  1640. (obscure)j(t)o(yp)q(e)f(errors)g(and)f(generally)g(impro)o(v)o(e)f(program)f
  1641. (readabilit)o(y)i(is)g(to)g(a\016x)f(t)o(yp)q(e)75 1629 y(signatures)j(to)e
  1642. (all)g(top)h(lev)o(el)f(de\014nitions.)18 b(This)c(practice)h(has)f(a)g(n)o
  1643. (um)o(b)q(er)f(of)g(adv)n(an)o(tages:)137 1733 y Fe(\017)21
  1644. b Ff(Incorrect)16 b(de\014nitions)f(of)g(a)f(function)h(are)g(caugh)o(t)g(b)o
  1645. (y)g(the)g(t)o(yp)q(e)g(signature)h(instead)f(of)f(causing)h(a)f(t)o(yp)q(e)
  1646. 179 1783 y(error)h(at)e(a)h(call)f(site.)137 1864 y Fe(\017)21
  1647. b Ff(Un)o(w)o(an)o(ted)14 b(o)o(v)o(erloading)e(is)i(eliminated.)137
  1648. 1946 y Fe(\017)21 b Ff(The)14 b(signatures)h(pro)o(vide)e(an)h(additional)e
  1649. (lev)o(el)i(of)f(do)q(cumen)o(tation.)75 2050 y(Y)m(ou)j(can)h(also)f
  1650. (monitor)e(the)k(inferred)f(t)o(yp)q(es)g(b)o(y)g(turning)f(on)h(the)g
  1651. Fd(type)e Ff(prin)o(ter.)27 b(Do)16 b(this)h(from)e(the)i(editor)75
  1652. 2100 y(in)o(terface)c(via)e Fd(C-c)22 b(C-p)11 b Ff(and)h(selecting)h(the)g
  1653. (prin)o(ter)g(for)f Fd(type)o Ff(,)g(or)h(use)g Fd(:p+)21 b(type)12
  1654. b Ff(in)f(the)i(command)d(in)o(terface.)137 2173 y(The)k(pattern)h(binding)d
  1655. (rule)i(can)g(b)q(e)g(the)g(source)h(of)e(unexp)q(ected)j(errors.)j(This)13
  1656. b(rule)h(restricts)h(o)o(v)o(erloading)75 2223 y(of)d(v)n(ariables)h(b)q
  1657. (ound)g(in)f(pattern)i(bindings.)j(Global)11 b(o)o(v)o(erloaded)i(constan)o
  1658. (ts,)g(structures)j(whic)o(h)d(con)o(tain)f(o)o(v)o(er-)75
  1659. 2273 y(loaded)g(functions,)g(and)h(functions)f(without)g(argumen)o(ts)g
  1660. (\(that)g(is,)h(de\014ned)g(b)o(y)f(a)g(pattern)i(binding\))d(can)i(cause)75
  1661. 2323 y(an)h(error)g(when)h(they)f(ha)o(v)o(e)g(no)g(explicit)f(t)o(yp)q(e)h
  1662. (signature.)137 2396 y(The)d(class)f(system)g(causes)i(t)o(yp)q(e)f(c)o(hec)o
  1663. (king)f(to)g(fail)f(in)g(a)h(di\013eren)o(t)h(w)o(a)o(y)f(for)f(o)o(v)o
  1664. (erloaded)h(function)g(parameters)75 2446 y(than)k(for)f(non-o)o(v)o
  1665. (erloaded)h(parameters.)k(F)m(or)13 b(example,)75 2550 y Fd(length)21
  1666. b(True)75 2654 y Ff(giv)o(es)d(a)g(standard)g(t)o(yp)q(e)h(mismatc)o(h)d
  1667. (error.)31 b(An)19 b(o)o(v)o(erloaded)e(function,)i(lik)o(e)e
  1668. Fd(+)p Ff(,)i(handles)f(t)o(yp)q(e)h(mismatc)o(hes)75 2704
  1669. y(di\013eren)o(tly)m(.)f(The)c Fd(+)f Ff(function)g(accepts)i(an)o(y)e(t)o
  1670. (yp)q(e)h(of)f(argumen)o(t)f(in)h(class)h Fd(Num)o Ff(.)k(An)13
  1671. b(error)i(in)e(a)g(call)f(to)i Fd(+)o Ff(,)f(as)h(in:)p eop
  1672. %%Page: 22 23
  1673. bop 75 50 a Fg(11)41 b(ERR)o(ORS)13 b(AND)h(DEBUGGING)1114
  1674. b Ff(22)75 195 y Fd(True)21 b(+)h(False)75 303 y Ff(results)d(in)e(a)g
  1675. (message)g(indicating)g(that)g Fd(Bool)g Ff(is)g(not)h(in)f(class)h
  1676. Fd(Num)o Ff(.)29 b(Suc)o(h)18 b(messages)g(usually)e(result)j(from)75
  1677. 353 y(ordinary)13 b(t)o(yp)q(e)i(mismatc)o(hes.)137 428 y(Another)d(source)g
  1678. (of)d(subtle)j(t)o(yp)q(e)f(errors)h(is)e(o)o(v)o(erloaded)g(n)o(umeric)g
  1679. (constan)o(ts.)18 b(An)11 b(in)o(teger)g(constan)o(t)g(has)f(the)75
  1680. 477 y(t)o(yping)i Fd(Num)21 b(a)g(=>)h(a)o Ff(.)c(When)12 b(in)o(tegers)i
  1681. (are)e(used)i(unexp)q(ectedly)m(,)f(the)g(t)o(yp)q(e)g(uni\014cation)e
  1682. (algorithm)f(complains)75 527 y(that)k(the)g(parameter)g(t)o(yp)q(e)g(is)g
  1683. (not)g(in)f(class)i Fd(Num)o Ff(.)j(F)m(or)c(example,)e(in:)75
  1684. 635 y Fd(length)21 b(3)75 743 y Ff(the)f(t)o(yp)q(e)g(error)g(generated)g
  1685. (indicates)g(that)f(lists)g-exhaustiv)o(e)h
  1686. (case)h(statemen)o(ts)g(and)e(function)h(de\014nitions;)h(this)75
  1687. 245 y(is)e(go)q(o)q(d)f(co)q(ding)g(practice)i(and)f(eases)h(debugging.)23
  1688. b(It)16 b(is)g(also)f(go)q(o)q(d)g(co)q(ding)g(practice)i(to)f(a)o(v)o(oid)e
  1689. (non-disjoin)o(t)75 295 y(patterns)f(whenev)o(er)f(p)q(ossible)g(\(suc)o(h)g
  1690. (patterns)h(also)e(tend)h(to)f(translate)h(in)o(to)e(less)i(e\016cien)o(t)g
  1691. (co)q(de)g(than)g(patterns)75 345 y(written)i(disjoin)o(tly\).)137
  1692. 419 y(Using)g Fd(Int)g Ff(arithmetic)f(can)h(lead)g(to)g(serious)h(run)o
  1693. (time)e(errors)j(when)f(o)o(v)o(er\015o)o(ws)f(o)q(ccur.)20
  1694. b(Only)14 b(unsafe)h Fd(Int)75 469 y Ff(op)q(erations)20 b(are)f(curren)o
  1695. (tly)h(pro)o(vided.)34 b(If)19 b(y)o(ou)g(run)h(in)o(to)e(memory)f
  1696. (protection)j(problems,)f(illegal)e(instruc-)75 519 y(tions,)c(or)g(other)g
  1697. (m)o(ysterious)g(errors)h(when)g(the)g(program)d(executes,)k(c)o(hec)o(k)f
  1698. (for)f(p)q(oten)o(tial)g(o)o(v)o(er\015o)o(w)f(problems.)75
  1699. 569 y(Changing)h Fd(Int)g Ff(to)h Fd(Integer)e Ff(should)i(\014x)g(this)g
  1700. (problem.)137 643 y(If)g(y)o(ou)g(think)h(y)o(our)f(program)f(is)h(in)g(an)g
  1701. (in\014nite)h(lo)q(op,)e(use)i Fd(C-c)21 b(i)15 b Ff(from)d(the)k(editor)e
  1702. (in)o(terface)h(or)g Fd(^C)f Ff(from)75 693 y(the)g(command)e(in)o(terface)i
  1703. (to)g(in)o(terrupt)g(the)h(Hask)o(ell)e(pro)q(cess.)75 834
  1704. y Fh(11.3)56 b(Lisp)18 b(Errors)75 936 y Ff(Bugs)c(in)f(the)i(Y)m(ale)e(Hask)
  1705. o(ell)g(implemen)o(tati)o(on)e(ma)o(y)h(cause)i(an)g(error)g(to)g(b)q(e)g
  1706. (rep)q(orted)h(b)o(y)f(the)g(underlying)f(Lisp)75 986 y(system.)35
  1707. b(Lisp)19 b(errors)i(ma)o(y)d(also)h(o)q(ccur)h(as)g(a)f(result)h(of)f
  1708. (executing)i(co)q(de)f(y)o(ou)f(ha)o(v)o(e)h(loaded)f(in)o(to)f(Hask)o(ell)75
  1709. 1035 y(through)f(the)h(foreign-function)e(in)o(terface.)28
  1710. b(If)17 b(this)g(happ)q(ens,)i(there)f(is)f(a)g(handler)g(in)g(place)g(that)h
  1711. (normally)75 1085 y(causes)d(con)o(trol)f(to)g(b)q(e)g(returned)i(to)d(the)i
  1712. (main)d(command)f(lo)q(op,)h(rather)j(than)f(en)o(tering)h(the)f(Lisp)g
  1713. (debugger.)137 1160 y(If)g(y)o(ou)g(w)o(an)o(t)g(to)g(b)q(e)h(able)f(to)g
  1714. (mess)g(around)g(with)g(the)h(Lisp)f(debugger,)h(y)o(ou)f(should)g(issue)h
  1715. (the)g Fd(:debug)20 b(on)75 1210 y Ff(command,)11 b(or)i(put)i(this)f(in)f(y)
  1716. o(our)h(Hask)o(ell)f(initialization)e(\014le:)75 1326 y Fd(\(setf)21
  1717. b(*haskell-debug-i)o(n-lis)o(p*)e('#t\))75 1488 y Fi(12)69
  1718. b(P)n(erformance)23 b(Issues)75 1604 y Ff(Man)o(y)12 b(di\013eren)o(t)i
  1719. (factors)f(a\013ect)h(the)f(sp)q(eed)h(of)e(the)h(compiled)e(Hask)o(ell)i(co)
  1720. q(de)g(and)g(the)g(compilation)d(time.)16 b(This)75 1654 y(section)f(deals)f
  1721. (with)f(b)q(oth)h(of)f(these)j(issues.)75 1795 y Fh(12.1)56
  1722. b(Generating)17 b(F)-5 b(aster)19 b(Co)r(de)75 1897 y Ff(The)14
  1723. b(co)q(de)h(executed)g(under)g(the)f(Hask)o(ell)f(system)h(ma)o(y)d(b)q(e)k
  1724. (either)f(compiled)e(\(using)i Fd(:compile)e Ff(or)h Fd(C-c)21
  1725. b(c)p Ff(\))14 b(or)75 1946 y(in)o(terpreted.)20 b(If)13 b(y)o(our)h(program)
  1726. e(is)i(running)g(to)q(o)f(slo)o(w,)g(ensure)j(that)d(all)g(comp)q(onen)o(ts)h
  1727. (are)g(compiled)e(\014rst.)137 2021 y(Using)e(strict)h(structures)h(often)e
  1728. (greatly)g(sp)q(eeds)i(program)c(execution.)17 b(While)9 b(care)i(m)o(ust)e
  1729. (b)q(e)i(tak)o(en)f(to)f(a)o(v)o(oid)75 2071 y(losing)h(laziness)h(that)g(a)g
  1730. (program)e(dep)q(ends)k(on,)d(attac)o(hing)h(strictness)i(annotations)d(to)h
  1731. (y)o(our)f(data)h(declarations)75 2121 y(can)j(ha)o(v)o(e)g(a)f(dramatic)g
  1732. (e\013ect)i(of)f(execution)g(time)f(and)h(memory)d(usage.)137
  1733. 2195 y(Arithmetic)17 b(op)q(erations)h(can)g(often)g(b)q(e)g(impro)o(v)o(ed)e
  1734. (b)o(y)i(pa)o(ying)e(careful)i(atten)o(tion)g(to)f(the)h(t)o(yp)q(e)h
  1735. (system.)75 2245 y(First,)d Fd(Int)f Ff(arithmetic)g(is)g(m)o(uc)o(h)g
  1736. (faster)h(than)g Fd(Integer)e Ff(arithmetic.)22 b(Complex)14
  1737. b(and)i(rational)e(n)o(um)o(b)q(ers)i(are)75 2295 y(not)k(implemen)o(ted)f
  1738. (in)h(a)g(particularly)g(e\016cien)o(t)h(manner.)37 b(Arithmetic)20
  1739. b(primitiv)o(es)f(implem)o(en)o(ted)g(b)o(y)h(the)75 2345 y(prelude)15
  1740. b(instead)g(of)e(imp)q(orted)h(as)g(primitiv)o(es)e(are)j(often)f(v)o(ery)h
  1741. (slo)o(w.)k(Ov)o(erloaded)14 b(arithmetic)f(op)q(erators)j(are)75
  1742. 2395 y(particularly)g(slo)o(w.)27 b(Y)m(ou)16 b(should)h(use)h(t)o(yp)q(e)g
  1743. (signatures)f(or)g(the)h Fd(Specialize)d Ff(annotation)h(to)h(a)o(v)o(oid)e
  1744. (calling)75 2444 y(o)o(v)o(erloaded)f(functions)f(at)h(run)g(time.)137
  1745. 2519 y(Other)21 b(asp)q(ects)g(of)e(the)h(p)q(erformance)f(re\015ect)i(the)f
  1746. (Hask)o(ell)f(compiler)f(itself.)35 b(The)19 b(compiler)f(p)q(erforms)75
  1747. 2569 y(man)o(y)f(optimizations,)h(including)g(strictness)j(analysis,)f
  1748. (inlining,)e(function)h(sp)q(ecialization,)g(deforestation,)75
  1749. 2619 y(and)c(others.)23 b(Y)m(ou)15 b(ma)o(y)e(wish)i(to)g(lo)q(ok)g(at)g
  1750. (the)h(co)q(de)g(generated)g(b)o(y)f(the)h(compiler)e(to)h(observ)o(e)h(the)g
  1751. (results)h(of)75 2669 y(these)e(optimizations.)p eop
  1752. %%Page: 24 25
  1753. bop 75 50 a Fg(12)41 b(PERF)o(ORMANCE)14 b(ISSUES)1184 b Ff(24)137
  1754. 195 y(The)12 b(co)q(de)h(generator)f(is)g(able)f(to)h(p)q(erform)f(man)o(y)f
  1755. (more)g(optimizations)g(on)h(\014rst-order)i(function)f(calls)f(than)75
  1756. 245 y(on)16 b(higher)f(order)i(calls.)23 b(The)16 b Fd(Inline)f
  1757. Ff(declaration)g(and)h(optimizer)e(can)i(help)g(turn)g(higher)g(order)g
  1758. (calls)g(in)o(to)75 295 y(\014rst)f(order)f(ones.)137 366 y(If)e(y)o(ou)f(ha)
  1759. o(v)o(e)h(functions)g(that)g(iterate)h(o)o(v)o(er)f(lists,)f(try)i(to)e
  1760. (write)i(them)e(using)g(primitiv)o(es)g(suc)o(h)h(as)g Fd(foldr)f
  1761. Ff(and)75 416 y Fd(map)i Ff(so)h(that)g(y)o(ou)g(can)g(tak)o(e)g(adv)n(an)o
  1762. (tage)f(of)g(the)h(deforestation)h(optimizations)c(p)q(erformed)j(b)o(y)f
  1763. (the)i(compiler.)75 553 y Fh(12.2)56 b(Av)n(oiding)18 b(Stac)n(k)h(Ov)n
  1764. (er\015o)n(w)75 651 y Ff(If)14 b(y)o(ou)g(ha)o(v)o(e)g(problems)f(with)h
  1765. (stac)o(k)h(o)o(v)o(er\015o)o(w,)e(y)o(ou)h(should)g(\014rst)h(c)o(hec)o(k)g
  1766. (for)f(in\014nite)g(lo)q(ops)g(in)g(y)o(our)g(program.)75 701
  1767. y(If)g(the)g(o)o(v)o(er\015o)o(w)g(is)f(not)h(caused)h(b)o(y)f(an)f
  1768. (in\014nite)h(lo)q(op,)f(y)o(ou)g(ha)o(v)o(e)h(few)g(options.)137
  1769. 772 y(If)f(y)o(ou)g(ha)o(v)o(e)g(built)f(Y)m(ale)h(Hask)o(ell)f(from)g
  1770. (sources)j(using)e(CMU)g(Lisp,)g(y)o(ou)f(are)i(lik)o(ely)e(to)h(run)g(in)o
  1771. (to)g(problems)75 822 y(b)q(ecause)20 b(the)e(stac)o(k)g(size)h(in)e(the)i
  1772. (standard)f(CMU)g(distribution)g(is)f(really)h(to)q(o)f(small)f(for)h
  1773. (running)h(Hask)o(ell.)75 872 y(Changing)13 b(the)h(stac)o(k)h(size)f(in)o(v)
  1774. o(olv)o(es)f(rebuilding)g(CMU)h(Lisp)g(from)e(sources.)20 b(W)m(e)13
  1775. b(ha)o(v)o(e)h(already)f(done)h(this)g(for)75 922 y(the)g(precompiled)g
  1776. (CMU-based)g(Hask)o(ell)f(system)h(w)o(e)g(distribute.)137
  1777. 993 y(Other)j(Lisp)f(systems)g(ha)o(v)o(e)f(v)n(arious)g(pro)q(cedures)j(for)
  1778. d(allo)q(cating)f(larger)i(stac)o(ks.)24 b(Y)m(ou)16 b(will)e(ha)o(v)o(e)h
  1779. (to)h(lo)q(ok)75 1043 y(in)o(to)d(the)i(do)q(cumen)o(tation)d(of)i(y)o(our)f
  1780. (Lisp)h(system)g(to)f(\014nd)h(out)g(what)g(to)g(do.)75 1179
  1781. y Fh(12.3)56 b(Optimizer)16 b(Options)75 1278 y Ff(By)i(default,)g(compiling)
  1782. d(co)q(de)k(to)e(a)h(\014le)g(mak)o(es)e(use)j(of)e(all)g(optimizations)e(p)q
  1783. (ossible.)30 b(Unless)19 b(y)o(ou)e(need)i(to)75 1328 y(impro)o(v)o(e)11
  1784. b(compilation)e(time,)i(c)o(hanging)h(the)h(optimization)c(settings)14
  1785. b(should)e(not)g(b)q(e)h(necessary)m(.)19 b(Here)14 b(is)e(a)g(list)75
  1786. 1377 y(of)h(the)i(v)n(arious)e(optimizers)g(and)h(what)f(they)i(do.)75
  1787. 1482 y Fa(inline)i Ff(If)h(this)h(option)f(is)g(enabled,)h(the)g(optimizer)e
  1788. (marks)h(functions)g(that)h(ha)o(v)o(e)f(\\trivial")e(de\014nitions)j(as)179
  1789. 1532 y(inlinable,)c(and)h(also)g(inlines)g(references)k(to)c(b)q(oth)h(v)n
  1790. (ariables)f(and)g(functions)h(that)f(ha)o(v)o(e)h(already)f(b)q(een)179
  1791. 1582 y(noted)e(as)g(inlinable.)j(If)c(it's)g(disabled,)h(the)g(optimizer)f
  1792. (is)h(m)o(uc)o(h)e(more)h(conserv)n(ativ)o(e)i(ab)q(out)e(inlining.)75
  1793. 1662 y Fa(constan)o(t)19 b Ff(This)12 b(option)g(con)o(trols)h(whether)h(the)
  1794. g(optimizer)d(attempts)i(to)f(detect)j(function)d(applications)g(that)179
  1795. 1712 y(ev)n(aluate)18 b(to)g(constan)o(t)h(v)n(alues,)f(sp)q(eci\014cally)h
  1796. (applications)e(of)g(data)h(constructors)i(to)f(constan)o(t)f(argu-)179
  1797. 1761 y(men)o(ts.)f(If)d(enabled,)f(the)i(optimizer)d(hoists)i(suc)o(h)h
  1798. (applications)d(to)i(top)g(lev)o(el)f(to)h(a)o(v)o(oid)e(rep)q(eated)k(ev)n
  1799. (alu-)179 1811 y(ations.)75 1891 y Fa(foldr)j Ff(If)9 b(this)i(optimization)c
  1800. (is)j(enabled,)h(f(Hask)o
  1801. (ell)e(executable)j(and)e(the)h Fd(Get)21 b(Info)14 b Ff(men)o(u)g(item,)g
  1802. (and)h(then)h(set)g(the)g(size)75 728 y(listed)10 b(under)i
  1803. Fd(Memory)n Ff(.)17 b(Y)m(ou)10 b(ma)o(y)e(also)i(need)h(to)g(go)f(to)g(the)h
  1804. Fd(Memory)e Ff(con)o(trol)h(panel)g(to)g(enable)h(32-bit)e(addressing)75
  1805. 778 y(and)14 b(p)q(ossibly)f(virtual)g(memory)m(.)75 919 y
  1806. Fh(12.5)56 b(Impro)n(ving)17 b(Compilation)g(Time)75 1021 y
  1807. Ff(The)e(b)q(est)h(w)o(a)o(y)e(to)g(reduce)j(the)e(time)e(of)h(compilation)e
  1808. (is)j(to)f(break)h(y)o(our)g(program)e(in)o(to)h(smaller)f(compilation)75
  1809. 1071 y(units.)28 b(This)17 b(is)g(not)g(only)f(go)q(o)q(d)h(programmi)o(ng)d
  1810. (st)o(yle,)k(but)f(also)f(helps)i(to)f(isolate)g(compilation)d(errors)k(and)
  1811. 75 1120 y(allo)o(ws)10 b(y)o(ou)i(to)f(tak)o(e)h(adv)n(an)o(tage)f(of)g(the)h
  1812. (separate)h(compilation)c(capabilit)o(y)h(of)h(the)h(system.)17
  1813. b(In)12 b(particular,)f(y)o(ou)75 1170 y(should)17 b(place)g(common)d(datat)o
  1814. (yp)q(e)j(declarations)g(in)g(a)f(separate)i(\014le)f(whenev)o(er)i(p)q
  1815. (ossible)e(|)f(this)h(conforms)75 1220 y(with)d(go)q(o)q(d)f(application)f
  1816. (of)i(abstract)h(datat)o(yp)q(e)f(principles,)f(if)g(nothing)h(else.)137
  1817. 1295 y(W)m(e)19 b(ha)o(v)o(e)g(found)g(that)h(the)f(time)f(required)j(for)e
  1818. (the)g(Lisp)h(compiler)e(to)h(pro)q(cess)i(the)f(co)q(de)g(usually)e(far)75
  1819. 1345 y(out)o(w)o(eighs)10 b(the)g(time)e(required)j(to)f(translate)g(Hask)o
  1820. (ell)f(to)h(Lisp.)16 b(Some)9 b(Lisp)h(compilers)e(seem)i(to)g(ha)o(v)o(e)f
  1821. (particular)75 1394 y(problems)14 b(with)g(the)h(large)f(n)o(um)o(b)q(er)g
  1822. (of)g(lexical)g(closures)i(that)f(can)f(app)q(ear)i(in)e(the)h(generated)h
  1823. (co)q(de.)21 b(T)o(ypical)75 1444 y(symptoms)13 b(of)h(this)h(trouble)g(are)g
  1824. (when)g(the)h(Lisp)e(compiler)g(tak)o(es)h(a)f(v)o(ery)m(,)h(v)o(ery)g(long)f
  1825. (time)f(and/or)i(runs)g(out)75 1494 y(of)f(memory)m(.)i(Large)f(compilation)c
  1826. (units)j(are)h(split)f(in)o(to)g(smaller)f(c)o(h)o(unks)h(\(as)h(describ)q
  1827. (ed)h(in)e(section)h(6\))f(b)q(efore)75 1544 y(pro)q(cessing)g(them)e(with)g
  1828. (the)h(Lisp)f(compiler)g(in)g(an)g(attempt)g(to)g(a)o(v)o(oid)g(these)i
  1829. (problems.)i(Ho)o(w)o(ev)o(er,)d(if)f(y)o(ou)g(still)75 1594
  1830. y(run)i(in)o(to)f(trouble,)h(here)h(are)f(some)f(other)i(things)f(that)g(y)o
  1831. (ou)f(can)h(try:)137 1710 y Fe(\017)21 b Ff(Sp)q(ecify)12 b(a)g(smaller)e
  1832. Fd(:chunk-size)g Ff(in)i(the)h(unit)e(\014le.)18 b(The)12 b(default)g(v)n
  1833. (alue)f(is)h(300)g(for)f(most)g(Lisp)h(systems,)179 1760 y(so)i(y)o(ou)f
  1834. (migh)o(t)f(try)i(a)g(v)n(alue)f(of)g(100)g(or)h(less.)137
  1835. 1843 y Fe(\017)21 b Ff(Disable)13 b(the)i Fd(lisp)e Ff(optimizer.)137
  1836. 1926 y Fe(\017)21 b Ff(Enable)14 b(the)g Fd(delays)f Ff(optimizer.)137
  1837. 2009 y Fe(\017)21 b Ff(Flatten)13 b(the)g(structure)i(of)e(y)o(our)f(co)q(de)
  1838. i(so)f(that)g(y)o(ou)g(ha)o(v)o(e)f(more)g(top-lev)o(el)h(de\014nitions)f
  1839. (and)h(few)o(er)h(large,)179 2059 y(deeply)g(nested)h(functions.)137
  1840. 2142 y Fe(\017)21 b Ff(Mak)o(e)14 b(structure)i(slots)e(strict)g(when)h(p)q
  1841. (ossible.)j(See)d(section)f(8.)75 2304 y Fi(13)69 b(Installation)22
  1842. b(Pro)r(cedures)75 2428 y Fh(13.1)56 b(Hask)n(ell)17 b(Users)75
  1843. 2529 y Ff(All)c(users)j(of)d(the)i(Hask)o(ell)e(system)h(on)g(Unix)g(need)h
  1844. (to)f(mo)q(dify)d(their)k Fd(.cshrc)d Ff(\014le)i(to)g(de\014ne)h(the)g(en)o
  1845. (vironmen)o(t)75 2579 y(v)n(ariable)f Fd(HASKELL)f Ff(and)i(read)g(the)h
  1846. (Hask)o(ell)e(shell)h(init)f(\014le.)21 b(The)16 b(v)n(ariable)e
  1847. Fd(HASKELL)f Ff(p)q(oin)o(ts)i(to)g(the)g(directory)75 2629
  1848. y(in)e(whic)o(h)h(the)h(system)e(has)h(b)q(een)h(installed.)j(The)c(follo)o
  1849. (wing)d(lines)j(go)g(in)f Fd(.cshrc)o Ff(:)p eop
  1850. %%Page: 27 28
  1851. bop 75 50 a Fg(13)41 b(INST)m(ALLA)m(TION)14 b(PR)o(OCEDURES)1053
  1852. b Ff(27)75 195 y Fd(setenv)21 b(HASKELL)f(<directory)g(containing)f(Haskell>)
  1853. 75 245 y(source)i($HASKELL/haskel)o(l-set)o(up)75 353 y Ff(Remem)o(b)q(er)12
  1854. b(to)i(reload)g(y)o(our)f Fd(.cshrc)g Ff(b)q(efore)i(y)o(ou)e(run)h(Hask)o
  1855. (ell)g(for)f(the)i(\014rst)f(time.)137 428 y(Users)i(of)d(the)h(Emacs)g(Hask)
  1856. o(ell)f(mo)q(de)g(need)i(to)f(mak)o(e)e(a)i(few)f(c)o(hanged)i(to)e(their)i
  1857. Fd(.emacs)d Ff(\014le.)137 535 y Fe(\017)21 b Ff(Add)14 b(the)g(Hask)o(ell)g
  1858. (Emacs)f(to)q(ols)h(directory)g(to)g(the)g(searc)o(h)h(path:)179
  1859. 635 y Fd(\(setq)21 b(load-path)310 685 y(\(cons)f(\(concat)h(\(getenv)f
  1860. ("HASKELL"\))g("/emacs-tools"\))440 735 y(load-path\)\))137
  1861. 834 y Fe(\017)h Ff(Change)14 b(the)g(v)n(alue)f(of)h(the)g(Emacs)f(v)n
  1862. (ariable)g Fd(auto-mode-alist)m Ff(:)179 934 y Fd(\(setq)21
  1863. b(auto-mode-alist)310 984 y(\(append)f('\(\("\\\\.hs$")f(.)j(haskell-mode\))d
  1864. (\("\\\\.lhs$")h(.)h(haskell-mode\))506 1034 y(auto-mode-alist\))o(\))179
  1865. 1133 y Ff(This)14 b(causes)h(Hask)o(ell)e(mo)q(de)g(to)h(b)q(e)g(selected)i
  1866. (whenev)o(er)f(a)f(Hask)o(ell)f(source)j(\014le)d(is)h(edited.)137
  1867. 1216 y Fe(\017)21 b Ff(Mak)o(e)14 b(Emacs)f(load)g(the)h(Hask)o(ell)g(mo)q
  1868. (de)f(from)f(the)i(start:)179 1316 y Fd(\(load-library)19 b("haskell"\))75
  1869. 1457 y Fh(13.2)56 b(Init)18 b(Files)75 1559 y Ff(It)g(is)f(p)q(ossible)h(to)f
  1870. (customize)h(the)g(Hask)o(ell)f(en)o(vironmen)o(t)f(using)i(init)e(\014les)i
  1871. (whic)o(h)g(are)g(read)g(to)f(the)h(Hask)o(ell)75 1608 y(system)j(at)g
  1872. (startup.)41 b(These)23 b(can)e(b)q(e)h(used)g(to)g(con)o(trol)f(the)h
  1873. (underlying)e(Lisp)i(en)o(vironmen)o(t.)39 b(The)22 b(\014les)75
  1874. 1658 y Fd($HASKELL/.yhaskel)o(l)13 b Ff(and)k Fd(~/.yhaskell)d
  1875. Ff(are)i(read)h(in)o(to)e(the)i(Lisp)f(system)g(on)h(startup.)25
  1876. b(These)18 b(\014les)f(are)75 1708 y(dep)q(enden)o(t)f(on)d(the)i(particular)
  1877. e(Lisp)h(b)q(eing)g(used)h(and)f(are)g(not)g(further)g(describ)q(ed)i(here.)
  1878. 75 1849 y Fh(13.3)56 b(Installing)17 b(the)i(Distribution)75
  1879. 1951 y Ff(If)13 b(y)o(ou)g(are)i(using)e(the)h(executable)h(distribution,)e
  1880. (installation)e(of)j(the)g(Y)m(ale)f(Hask)o(ell)g(system)g(is)h(simple.)i
  1881. (After)75 2000 y(unpac)o(king)h(the)i(tar)f(\014le,)h(the)g(system)e(should)h
  1882. (b)q(e)h(immedia)o(tely)d(runnable)i(b)o(y)g(a)f(user)i(who)f(has)g(made)f
  1883. (the)75 2050 y(necessary)f(mo)q(di\014cations)c(to)i Fd(.cshrc)e
  1884. Ff(and)i Fd(.emacs)o Ff(.)137 2125 y(T)m(o)f(rebuild)g(the)h(system)f(from)e
  1885. (the)j(source)g(distribution,)f(see)h(the)g(instructions)g(in)f(the)g
  1886. Fd(README)f Ff(\014le)i(in)e(the)75 2175 y(appropriate)i(sub)q(directory)h
  1887. (of)f Fd($HASKELL/com)m Ff(.)137 2249 y(Compiling)e(the)k(Y)m(ale)e(Hask)o
  1888. (ell)h(system)f(from)g(the)h(source)i(distribution)d(tak)o(es)i(a)e(few)h
  1889. (hours)h(and)f(requires)75 2299 y(a)20 b(substan)o(tial)h(amoun)o(t)e(of)h
  1890. (virtual)g(memory)m(,)e(particularly)i(for)h(pro)q(cessing)h(the)f(standard)g
  1891. (prelude.)39 b(W)m(e)75 2349 y(recommend)14 b(that)i(y)o(ou)f(ha)o(v)o(e)h
  1892. (at)f(least)h(50)f(megab)o(ytes)g(\(and)h(preferably)g(more\))e(of)h(sw)o(ap)
  1893. h(space)h(a)o(v)n(ailable)c(to)75 2399 y(do)19 b(this.)33 b(Once)20
  1894. b(the)g(system)f(has)g(b)q(een)h(built,)f(w)o(e'v)o(e)g(b)q(een)h(able)f(to)g
  1895. (run)g(reasonably-sized)g(programs)f(on)75 2449 y(w)o(orkstations)c(with)f
  1896. (around)h(20)f(megab)o(ytes)h(of)f(sw)o(ap)h(space.)137 2523
  1897. y(Y)m(ou)e(will)f(also)g(need)j(some)d(disk)h(space)h(to)g(rebuild)f(the)h
  1898. (system.)k(On)c(a)e(Sparc,)i(the)g(Lucid)f(v)o(ersion)h(requires)75
  1899. 2573 y(ab)q(out)j(15)f(megab)o(ytes,)h(the)g(CMU)g(v)o(ersion)g(ab)q(out)g
  1900. (25)f(megab)o(ytes.)24 b(This)16 b(is)g(in)f(addition)g(to)h(the)g(disk)g
  1901. (space)75 2623 y(required)f(to)f(install)e(the)j(Lisp)f(system.)p
  1902. eop
  1903. %%Page: 28 29
  1904. bop 75 50 a Fg(13)41 b(INST)m(ALLA)m(TION)14 b(PR)o(OCEDURES)1053
  1905. b Ff(28)75 195 y Fh(13.4)56 b(Installing)17 b(Y)-5 b(ale)19
  1906. b(Hask)n(ell)f(on)g(the)h(Mac)75 297 y Ff(The)c(Macin)o(tosh)f(v)o(ersion)g
  1907. (of)f(Y)m(ale)h(Hask)o(ell)f(is)h(distributed)h(in)f(a)f(self-extracting)i
  1908. (Compact)e(Pro)h(arc)o(hiv)o(e;)g(just)75 346 y(double-clic)o(k)i(on)g(it)h
  1909. (to)f(extract)i(the)f(\014les.)27 b(This)16 b(arc)o(hiv)o(e)h(con)o(tains)g
  1910. (b)q(oth)f(the)i(full)d(source)j(distribution)e(and)75 396
  1911. y(a)g(ready-to-run)h(executable.)26 b(Y)m(ou)15 b(can)i(also)e(rebuild)i
  1912. (Hask)o(ell)e(on)h(the)h(Macin)o(tosh)f(from)f(scratc)o(h)i(using)f(the)75
  1913. 446 y(normal)c(tar-format)g(Unix)h(source)i(distribution.)137
  1914. 521 y(Apple's)f(licensing)g(restrictions)h(prev)o(en)o(t)f(us)g(from)e
  1915. (distributing)i(an)f(executable)i(that)f(con)o(tains)g(the)g(MCL)75
  1916. 571 y(compiler.)i(This)c(means)f(that,)i(in)e(the)i(executable)g(w)o(e)g(pro)
  1917. o(vide,)f(the)g Fd(Compile)21 b(File)11 b Ff(men)o(u)g(command)f(signals)75
  1918. 620 y(an)16 b(error)h(instead)g(of)f(doing)f(an)o(ything)g(useful.)26
  1919. b(If)16 b(y)o(ou)g(w)o(an)o(t)f(to)i(b)q(e)f(able)g(to)h(compile)d(Hask)o
  1920. (ell)i(programs)f(to)75 670 y(ob)r(ject)h(co)q(de,)g(y)o(ou)f(m)o(ust)g(buy)g
  1921. (a)g(cop)o(y)h(of)f(MCL)g(and)g(rebuild)h(Y)m(ale)e(Hask)o(ell)h(from)f(the)i
  1922. (sources.)25 b(See)16 b(the)g(\014le)75 720 y Fd($HASKELL/com/mcl/)o(READM)o
  1923. (E)11 b Ff(for)j(instructions)g(on)g(ho)o(w)f(to)h(do)g(this.)137
  1924. 795 y(W)m(e)g(ha)o(v)o(e)f(set)i(the)f(default)f(size)i(of)e(the)h
  1925. (executable)h(w)o(e)f(distribute)g(so)g(that)g(it)f(will)f(run)i(comfortably)
  1926. e(on)h(a)75 845 y(Macin)o(tosh)f(with)g(12MB)g(of)g(memory)m(.)j(If)d(y)o
  1927. (our)g(mac)o(hine)f(has)h(less)h(memory)m(,)c(w)o(e)k(recommend)e(that)h(y)o
  1928. (ou)g(enable)75 894 y(virtual)g(memory)f(rather)k(than)e(trying)g(to)g(mak)o
  1929. (e)f(Hask)o(ell)h(run)g(in)g(a)g(smaller)f(partition.)17 b(\(Y)m(ou)c(can)h
  1930. (c)o(hange)f(the)75 944 y(amoun)o(t)j(of)h(memory)e(Hask)o(ell)i(uses)i(from)
  1931. d(the)i(\014nder)g(using)f(the)i Fd(Get)i(Info)c Ff(men)o(u)f(item;)i
  1932. (virtual)e(memory)75 994 y(is)h(enabled)g(from)f(the)i Fd(Memory)d
  1933. Ff(con)o(trol)i(panel.)28 b(Mak)o(e)17 b(sure)h(y)o(ou)f(also)g(enable)g
  1934. (32-bit)f(addressing)i(from)d(the)75 1044 y Fd(Memory)e Ff(con)o(trol)g
  1935. (panel.\))137 1119 y(Rebuilding)f(Hask)o(ell)g(from)f(sources)j(requires)g
  1936. (somewhat)e(more)g(memory;)e(w)o(e)j(ha)o(v)o(e)f(b)q(een)i(installing)d(MCL)
  1937. 75 1168 y(in)i(a)h(20MB)g(partition)f(to)h(do)f(this.)137 1243
  1938. y(The)h(Macin)o(tosh)g(v)o(ersion)g(of)f(Y)m(ale)g(Hask)o(ell)g(do)q(es)h
  1939. Fc(not)k Ff(run)c(on)g(a)f(P)o(o)o(w)o(erPC)h(\(b)q(ecause)i(MCL)d(do)q
  1940. (esn't)h(w)o(ork)75 1293 y(on)g(that)g(platform)d(y)o(et)j(either\).)p
  1941. eop
  1942. %%Page: 29 30
  1943. bop 75 50 a Fg(REFERENCES)1473 b Ff(29)75 195 y Fi(References)75
  1944. 303 y Ff([1])20 b(Ch)o(uc)o(k)j(Consel.)48 b(F)m(ast)24 b(strictness)i
  1945. (analysis)d(via)g(sym)o(b)q(olic)f(\014xp)q(oin)o(t)h(iteration.)47
  1946. b(T)m(ec)o(hnical)24 b(Rep)q(ort)140 352 y(Y)m(ALEU/DCS/RR-867,)11
  1947. b(Y)m(ale)i(Univ)o(ersit)o(y)h(Departmen)o(t)f(of)g(Computer)g(Science,)i
  1948. (Septem)o(b)q(er)g(1991.)75 435 y([2])20 b(Andrew)d(Gill,)e(John)i(Launc)o(h)
  1949. o(bury)m(,)g(and)f(Simon)f(L)i(P)o(eyton)g(Jones.)27 b(A)17
  1950. b(short)g(cut)h(to)e(deforestation.)27 b(In)140 485 y Fc(F)m(unctional)15
  1951. b(Pr)n(o)n(gr)n(amming)f(and)i(Computer)e(A)o(r)n(chite)n(ctur)n(e)p
  1952. Ff(,)e(1993.)75 568 y([3])20 b(P)o(aul)d(Hudak,)i(Simon)d(P)o(eyton)j(Jones,)
  1953. g(Philip)e(L.)h(W)m(adler,)g(Brian)g(Boutel,)h(Jon)g(F)m(airbairn,)e(Joseph)i
  1954. (H.)140 618 y(F)m(asel,)e(Maria)g(M.)g(Guzman,)g(Kevin)h(Hammond,)d(John)i
  1955. (Hughes,)i(Thomas)d(Johnsson,)j(Dic)o(k)e(Kieburtz,)140 668
  1956. y(Rishiyur)12 b(Nikhil,)f(and)i(John)g(P)o(eterson.)18 b(Rep)q(ort)13
  1957. b(on)g(the)h(programmi)o(ng)c(language)i(hask)o(ell:)17 b(a)c(non-strict,)140
  1958. 718 y(purely)d(functional)g(language,)f(v)o(ersion)i(1.1.)g(T)m(ec)o(hnical)f
  1959. (Rep)q(ort)h(Y)m(ALEU/DCS/RR-777,)d(Y)m(ale)i(Univ)o(ersit)o(y)140
  1960. 768 y(Departmen)o(t)j(of)g(Computer)g(Science,)i(August)f(1991.)p
  1961. eop
  1962. %%Trailer
  1963. end
  1964. userdict /end-hook known{end-hook}if
  1965. %%EOF
  1966.