1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head><title>Hat feature summary</title></head>
<body bgcolor=white text=black>
<center><h1>How complete is Hat?</h1></center>
<p>
<center>
<em>Key:</em><br>
<b>-</b> = no support<br>
<b>+</b> = partial support<br>
<b>*</b> = full support<br>
</center>
<p>
"Partial" support of a language feature means that you <em>will</em>
be able to trace programs using this feature, but that the traces
may not be in convenient source-level terms. Partial support of a
library or type-system feature means that some programs <em>may</em>
trace OK, but others might not.
<p>
<table cellspacing=20 width=100% border=1><tr width=100%><td width=50% valign=top>
<table cellspacing=0 border=0>
<tr>
<th>feature</th><th>Hat (2.04)</th>
</tr><tr>
<td colspan=2><hr></td>
</tr><tr>
<th colspan=2>Language constructs</th>
</tr><tr>
<td>modules</td><td align=center>*</td>
</tr><tr>
<td>lambda abstractions</td><td align=center>*</td>
</tr><tr>
<td>pattern matches</td><td align=center>*</td>
</tr><tr>
<td>guards</td><td align=center>*</td>
</tr><tr>
<td>if-then-else</td><td align=center>*</td>
</tr><tr>
<td>case expr of</td><td align=center>*</td>
</tr><tr>
<td>list comprehensions</td><td align=center>+</td>
</tr><tr>
<td>monadic do</td><td align=center>+</td>
</tr><tr>
<td>infix operators</td><td align=center>*</td>
</tr><tr>
<td>numeric literals</td><td align=center>*</td>
</tr><tr>
<td>numeric sequences</td><td align=center>+</td>
</tr><tr>
<td>n+k patterns</td><td align=center>*</td>
</tr><tr>
<th colspan=2>Basic types</th>
</tr><tr>
<td>Bool</td><td align=center>*</td>
</tr><tr>
<td>Char</td><td align=center>*</td>
</tr><tr>
<td>List</td><td align=center>*</td>
</tr><tr>
<td>Tuples</td><td align=center>*</td>
</tr><tr>
<td>Int</td><td align=center>*</td>
</tr><tr>
<td>Integer</td><td align=center>*</td>
</tr><tr>
<td>Float</td><td align=center>*</td>
</tr><tr>
<td>Double</td><td align=center>*</td>
</tr><tr>
<td>Rational</td><td align=center>*</td>
</tr><tr>
<th colspan=2>User types</th>
</tr><tr>
<td>data types</td><td align=center>*</td>
</tr><tr>
<td>type synonyms</td><td align=center>*</td>
</tr><tr>
<td>newtypes</td><td align=center>*</td>
</tr><tr>
<td>named fields</td><td align=center>*</td>
</tr><tr>
<td>type classes</td><td align=center>*</td>
</tr><tr>
<td>derived instances</td><td align=center>*</td>
</tr><tr>
<td>strict types</td><td align=center>*</td>
</tr>
</table>
</td><td width=50% valign=top>
<table cellspacing=0 border=0>
<tr>
<th>feature</th><th>Hat (2.04)</th>
</tr><tr>
<td colspan=2><hr></td>
</tr><tr>
<th colspan=2>Input/output</th>
</tr><tr>
<td>single I/O streams</td><td align=center>*</td>
</tr><tr>
<td>file handling</td><td align=center>+</td>
</tr><tr>
<th colspan=2>Libraries</th>
</tr><tr>
<td>Haskell'98 Prelude</td><td align=center>*</td>
</tr><tr>
<td>Haskell'98 Libraries</td><td align=center>*</td>
</tr><tr>
<td>base hierarchical libraries</td><td align=center>+</td>
</tr><tr>
<td>other hierarchical libraries</td><td align=center>-</td>
</tr><tr>
<th colspan=2>Platform Portability</th>
</tr><tr>
<td>machine and O/S</td><td align=center>*</td>
</tr><tr>
<td>nhc98</td><td align=center>*</td>
</tr><tr>
<td>ghc</td><td align=center>*</td>
</tr><tr>
<td>hugs</td><td align=center>-</td>
</tr><tr>
<td>hbc</td><td align=center>-</td>
</tr><tr>
<td>helium</td><td align=center>-</td>
</tr><tr>
<th colspan=2>Non-Haskell'98 Extensions</th>
</tr><tr>
<td>primitive FFI</td><td align=center>+</td>
</tr><tr>
<td>hierarchical library namespace</td><td align=center>*</td>
</tr><tr>
<td>unsafePerformIO etc</td><td align=center>*</td>
</tr><tr>
<td>multi-parameter TCs</td><td align=center>*</td>
</tr><tr>
<td>functional dependencies</td><td align=center>*</td>
</tr><tr>
<td>existential types</td><td align=center>+</td>
</tr><tr>
<td>implicit parameters</td><td align=center>-</td>
</tr><tr>
<td>imprecise exceptions</td><td align=center>+</td>
</tr><tr>
<td>concurrency</td><td align=center>-</td>
</tr><tr>
<td>parallelism</td><td align=center>-</td>
</tr>
</table>
</td></tr></table>
</body></html>
|