    -----------------------------------------------------------
    -- |
    -- Module      :  BoundedString
    -- Copyright   :  HWT Group (c) 2003, haskelldb-users@lists.sourceforge.net
    -- License     :  BSD-style
    --
    -- Maintainer  :  haskelldb-users@lists.sourceforge.net
    -- Stability   :  experimental
    -- Portability :  non-portable
    --
    --
    -- BoundedString represents the sql types; CHARACTER and CHARACTER VARYING
    -- both defined in SQL 1992.
    -- BoundedString supports sizes in the range [0,255] and 65535.
    -- Greater sizes and the sql type SQL_TEXT (SQL 1992) will might be
    -- supported in the future.
    --
    -- The use of BoundedString together with HaskellDB enables feedback when
    -- the length of a string exceeds the bound of a certain database field.
    -- BoundedString also provides a layer of type safety against loss of data
    -- due to sql string truncation when extracting and re-insert data into fields
    -- with smaller bound.
    --
    --
    -----------------------------------------------------------

    module Database.HaskellDB.BoundedString where

    import Database.HaskellDB.BoundedList

    type BoundedString n = BoundedList Char n

    type BStr0 = BoundedString N0
    type BStr1 = BoundedString N1
    type BStr2 = BoundedString N2
    type BStr3 = BoundedString N3
    type BStr4 = BoundedString N4
    type BStr5 = BoundedString N5
    type BStr6 = BoundedString N6
    type BStr7 = BoundedString N7
    type BStr8 = BoundedString N8
    type BStr9 = BoundedString N9
    type BStr10 = BoundedString N10
    type BStr11 = BoundedString N11
    type BStr12 = BoundedString N12
    type BStr13 = BoundedString N13
    type BStr14 = BoundedString N14
    type BStr15 = BoundedString N15
    type BStr16 = BoundedString N16
    type BStr17 = BoundedString N17
    type BStr18 = BoundedString N18
    type BStr19 = BoundedString N19
    type BStr20 = BoundedString N20
    type BStr21 = BoundedString N21
    type BStr22 = BoundedString N22
    type BStr23 = BoundedString N23
    type BStr24 = BoundedString N24
    type BStr25 = BoundedString N25
    type BStr26 = BoundedString N26
    type BStr27 = BoundedString N27
    type BStr28 = BoundedString N28
    type BStr29 = BoundedString N29
    type BStr30 = BoundedString N30
    type BStr31 = BoundedString N31
    type BStr32 = BoundedString N32
    type BStr33 = BoundedString N33
    type BStr34 = BoundedString N34
    type BStr35 = BoundedString N35
    type BStr36 = BoundedString N36
    type BStr37 = BoundedString N37
    type BStr38 = BoundedString N38
    type BStr39 = BoundedString N39
    type BStr40 = BoundedString N40
    type BStr41 = BoundedString N41
    type BStr42 = BoundedString N42
    type BStr43 = BoundedString N43
    type BStr44 = BoundedString N44
    type BStr45 = BoundedString N45
    type BStr46 = BoundedString N46
    type BStr47 = BoundedString N47
    type BStr48 = BoundedString N48
    type BStr49 = BoundedString N49
    type BStr50 = BoundedString N50
    type BStr51 = BoundedString N51
    type BStr52 = BoundedString N52
    type BStr53 = BoundedString N53
    type BStr54 = BoundedString N54
    type BStr55 = BoundedString N55
    type BStr56 = BoundedString N56
    type BStr57 = BoundedString N57
    type BStr58 = BoundedString N58
    type BStr59 = BoundedString N59
    type BStr60 = BoundedString N60
    type BStr61 = BoundedString N61
    type BStr62 = BoundedString N62
    type BStr63 = BoundedString N63
    type BStr64 = BoundedString N64
    type BStr65 = BoundedString N65
    type BStr66 = BoundedString N66
    type BStr67 = BoundedString N67
    type BStr68 = BoundedString N68
    type BStr69 = BoundedString N69
    type BStr70 = BoundedString N70
    type BStr71 = BoundedString N71
    type BStr72 = BoundedString N72
    type BStr73 = BoundedString N73
    type BStr74 = BoundedString N74
    type BStr75 = BoundedString N75
    type BStr76 = BoundedString N76
    type BStr77 = BoundedString N77
    type BStr78 = BoundedString N78
    type BStr79 = BoundedString N79
    type BStr80 = BoundedString N80
    type BStr81 = BoundedString N81
    type BStr82 = BoundedString N82
    type BStr83 = BoundedString N83
    type BStr84 = BoundedString N84
    type BStr85 = BoundedString N85
    type BStr86 = BoundedString N86
    type BStr87 = BoundedString N87
    type BStr88 = BoundedString N88
    type BStr89 = BoundedString N89
    type BStr90 = BoundedString N90
    type BStr91 = BoundedString N91
    type BStr92 = BoundedString N92
    type BStr93 = BoundedString N93
    type BStr94 = BoundedString N94
    type BStr95 = BoundedString N95
    type BStr96 = BoundedString N96
    type BStr97 = BoundedString N97
    type BStr98 = BoundedString N98
    type BStr99 = BoundedString N99
    type BStr100 = BoundedString N100
    type BStr101 = BoundedString N101
    type BStr102 = BoundedString N102
    type BStr103 = BoundedString N103
    type BStr104 = BoundedString N104
    type BStr105 = BoundedString N105
    type BStr106 = BoundedString N106
    type BStr107 = BoundedString N107
    type BStr108 = BoundedString N108
    type BStr109 = BoundedString N109
    type BStr110 = BoundedString N110
    type BStr111 = BoundedString N111
    type BStr112 = BoundedString N112
    type BStr113 = BoundedString N113
    type BStr114 = BoundedString N114
    type BStr115 = BoundedString N115
    type BStr116 = BoundedString N116
    type BStr117 = BoundedString N117
    type BStr118 = BoundedString N118
    type BStr119 = BoundedString N119
    type BStr120 = BoundedString N120
    type BStr121 = BoundedString N121
    type BStr122 = BoundedString N122
    type BStr123 = BoundedString N123
    type BStr124 = BoundedString N124
    type BStr125 = BoundedString N125
    type BStr126 = BoundedString N126
    type BStr127 = BoundedString N127
    type BStr128 = BoundedString N128
    type BStr129 = BoundedString N129
    type BStr130 = BoundedString N130
    type BStr131 = BoundedString N131
    type BStr132 = BoundedString N132
    type BStr133 = BoundedString N133
    type BStr134 = BoundedString N134
    type BStr135 = BoundedString N135
    type BStr136 = BoundedString N136
    type BStr137 = BoundedString N137
    type BStr138 = BoundedString N138
    type BStr139 = BoundedString N139
    type BStr140 = BoundedString N140
    type BStr141 = BoundedString N141
    type BStr142 = BoundedString N142
    type BStr143 = BoundedString N143
    type BStr144 = BoundedString N144
    type BStr145 = BoundedString N145
    type BStr146 = BoundedString N146
    type BStr147 = BoundedString N147
    type BStr148 = BoundedString N148
    type BStr149 = BoundedString N149
    type BStr150 = BoundedString N150
    type BStr151 = BoundedString N151
    type BStr152 = BoundedString N152
    type BStr153 = BoundedString N153
    type BStr154 = BoundedString N154
    type BStr155 = BoundedString N155
    type BStr156 = BoundedString N156
    type BStr157 = BoundedString N157
    type BStr158 = BoundedString N158
    type BStr159 = BoundedString N159
    type BStr160 = BoundedString N160
    type BStr161 = BoundedString N161
    type BStr162 = BoundedString N162
    type BStr163 = BoundedString N163
    type BStr164 = BoundedString N164
    type BStr165 = BoundedString N165
    type BStr166 = BoundedString N166
    type BStr167 = BoundedString N167
    type BStr168 = BoundedString N168
    type BStr169 = BoundedString N169
    type BStr170 = BoundedString N170
    type BStr171 = BoundedString N171
    type BStr172 = BoundedString N172
    type BStr173 = BoundedString N173
    type BStr174 = BoundedString N174
    type BStr175 = BoundedString N175
    type BStr176 = BoundedString N176
    type BStr177 = BoundedString N177
    type BStr178 = BoundedString N178
    type BStr179 = BoundedString N179
    type BStr180 = BoundedString N180
    type BStr181 = BoundedString N181
    type BStr182 = BoundedString N182
    type BStr183 = BoundedString N183
    type BStr184 = BoundedString N184
    type BStr185 = BoundedString N185
    type BStr186 = BoundedString N186
    type BStr187 = BoundedString N187
    type BStr188 = BoundedString N188
    type BStr189 = BoundedString N189
    type BStr190 = BoundedString N190
    type BStr191 = BoundedString N191
    type BStr192 = BoundedString N192
    type BStr193 = BoundedString N193
    type BStr194 = BoundedString N194
    type BStr195 = BoundedString N195
    type BStr196 = BoundedString N196
    type BStr197 = BoundedString N197
    type BStr198 = BoundedString N198
    type BStr199 = BoundedString N199
    type BStr200 = BoundedString N200
    type BStr201 = BoundedString N201
    type BStr202 = BoundedString N202
    type BStr203 = BoundedString N203
    type BStr204 = BoundedString N204
    type BStr205 = BoundedString N205
    type BStr206 = BoundedString N206
    type BStr207 = BoundedString N207
    type BStr208 = BoundedString N208
    type BStr209 = BoundedString N209
    type BStr210 = BoundedString N210
    type BStr211 = BoundedString N211
    type BStr212 = BoundedString N212
    type BStr213 = BoundedString N213
    type BStr214 = BoundedString N214
    type BStr215 = BoundedString N215
    type BStr216 = BoundedString N216
    type BStr217 = BoundedString N217
    type BStr218 = BoundedString N218
    type BStr219 = BoundedString N219
    type BStr220 = BoundedString N220
    type BStr221 = BoundedString N221
    type BStr222 = BoundedString N222
    type BStr223 = BoundedString N223
    type BStr224 = BoundedString N224
    type BStr225 = BoundedString N225
    type BStr226 = BoundedString N226
    type BStr227 = BoundedString N227
    type BStr228 = BoundedString N228
    type BStr229 = BoundedString N229
    type BStr230 = BoundedString N230
    type BStr231 = BoundedString N231
    type BStr232 = BoundedString N232
    type BStr233 = BoundedString N233
    type BStr234 = BoundedString N234
    type BStr235 = BoundedString N235
    type BStr236 = BoundedString N236
    type BStr237 = BoundedString N237
    type BStr238 = BoundedString N238
    type BStr239 = BoundedString N239
    type BStr240 = BoundedString N240
    type BStr241 = BoundedString N241
    type BStr242 = BoundedString N242
    type BStr243 = BoundedString N243
    type BStr244 = BoundedString N244
    type BStr245 = BoundedString N245
    type BStr246 = BoundedString N246
    type BStr247 = BoundedString N247
    type BStr248 = BoundedString N248
    type BStr249 = BoundedString N249
    type BStr250 = BoundedString N250
    type BStr251 = BoundedString N251
    type BStr252 = BoundedString N252
    type BStr253 = BoundedString N253
    type BStr254 = BoundedString N254
    type BStr255 = BoundedString N255
    type BStr65535 = BoundedString N65535