haskelldb-2.2.4: A library of combinators for generating and executing SQL statements.

CopyrightHWT Group (c) 2003, haskelldb-users@lists.sourceforge.net
LicenseBSD-style
Maintainerhaskelldb-users@lists.sourceforge.net
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell98

Database.HaskellDB.BoundedList

Description

The main idea of bounded lists is to create lists with predetermined maximum size.

BoundedList is a simple, fast and type safe approach to implementing this idea. The implementation is based on inductive instances, making it very easy to expand with new bounds. A new bound only requires one instance of size and two instances of Less.

BoundedList works as follows. Every bound is build up by declaring a data-type representing the new bound. The instance of size only returns the size as an Int. The first instance of Less is for telling the typechecker that this bound is greater than the largest smaller bound. The second instance of Less is used by the typechecker to construct a chain of instances if there is no hardcoded instance available. This way the type checker can determine if a bound is smaller/greater then any other bound.

This inductive approach gives the complexity O(n) on the number of instances and very short type checking times compared to an O(n^2) implementation.

BoundedList also comes with a few utility function for manipulation an contructing bounded lists.

To be noted: Since each bound is a unique type: Explicit shrink and/or grow is needed before using (==). BoundedList does not have an instance of Ordering. (This might change)

Synopsis

Documentation

shrink :: (Size n, Size m) => BoundedList a n -> Maybe (BoundedList a m) Source

Shrinks the BoundedList supplied if it can do so without truncating the list. Returns Nothing if the list inside was to long.

grow :: LessEq n m => BoundedList a n -> BoundedList a m Source

Takes a BoundedList add grows it size.

trunc :: Size n => [a] -> BoundedList a n Source

Takes a list and transforms it to a BoundedList. If the list doesn'n fit, the list is truncated to make it fit into the bounded list.

listBound :: Size n => BoundedList a n -> Int Source

Returns the length of a BoundedList.

toBounded :: Size n => [a] -> Maybe (BoundedList a n) Source

Takes a list and transforms it to a BoundedList. If the list doesn't fit, Nothing is returned.

fromBounded :: Size n => BoundedList a n -> [a] Source

Takes a BoundedList and return the list inside.

class Size n Source

Minimal complete definition

size

Instances

Size N65535 Source 
Size N255 Source 
Size N254 Source 
Size N253 Source 
Size N252 Source 
Size N251 Source 
Size N250 Source 
Size N249 Source 
Size N248 Source 
Size N247 Source 
Size N246 Source 
Size N245 Source 
Size N244 Source 
Size N243 Source 
Size N242 Source 
Size N241 Source 
Size N240 Source 
Size N239 Source 
Size N238 Source 
Size N237 Source 
Size N236 Source 
Size N235 Source 
Size N234 Source 
Size N233 Source 
Size N232 Source 
Size N231 Source 
Size N230 Source 
Size N229 Source 
Size N228 Source 
Size N227 Source 
Size N226 Source 
Size N225 Source 
Size N224 Source 
Size N223 Source 
Size N222 Source 
Size N221 Source 
Size N220 Source 
Size N219 Source 
Size N218 Source 
Size N217 Source 
Size N216 Source 
Size N215 Source 
Size N214 Source 
Size N213 Source 
Size N212 Source 
Size N211 Source 
Size N210 Source 
Size N209 Source 
Size N208 Source 
Size N207 Source 
Size N206 Source 
Size N205 Source 
Size N204 Source 
Size N203 Source 
Size N202 Source 
Size N201 Source 
Size N200 Source 
Size N199 Source 
Size N198 Source 
Size N197 Source 
Size N196 Source 
Size N195 Source 
Size N194 Source 
Size N193 Source 
Size N192 Source 
Size N191 Source 
Size N190 Source 
Size N189 Source 
Size N188 Source 
Size N187 Source 
Size N186 Source 
Size N185 Source 
Size N184 Source 
Size N183 Source 
Size N182 Source 
Size N181 Source 
Size N180 Source 
Size N179 Source 
Size N178 Source 
Size N177 Source 
Size N176 Source 
Size N175 Source 
Size N174 Source 
Size N173 Source 
Size N172 Source 
Size N171 Source 
Size N170 Source 
Size N169 Source 
Size N168 Source 
Size N167 Source 
Size N166 Source 
Size N165 Source 
Size N164 Source 
Size N163 Source 
Size N162 Source 
Size N161 Source 
Size N160 Source 
Size N159 Source 
Size N158 Source 
Size N157 Source 
Size N156 Source 
Size N155 Source 
Size N154 Source 
Size N153 Source 
Size N152 Source 
Size N151 Source 
Size N150 Source 
Size N149 Source 
Size N148 Source 
Size N147 Source 
Size N146 Source 
Size N145 Source 
Size N144 Source 
Size N143 Source 
Size N142 Source 
Size N141 Source 
Size N140 Source 
Size N139 Source 
Size N138 Source 
Size N137 Source 
Size N136 Source 
Size N135 Source 
Size N134 Source 
Size N133 Source 
Size N132 Source 
Size N131 Source 
Size N130 Source 
Size N129 Source 
Size N128 Source 
Size N127 Source 
Size N126 Source 
Size N125 Source 
Size N124 Source 
Size N123 Source 
Size N122 Source 
Size N121 Source 
Size N120 Source 
Size N119 Source 
Size N118 Source 
Size N117 Source 
Size N116 Source 
Size N115 Source 
Size N114 Source 
Size N113 Source 
Size N112 Source 
Size N111 Source 
Size N110 Source 
Size N109 Source 
Size N108 Source 
Size N107 Source 
Size N106 Source 
Size N105 Source 
Size N104 Source 
Size N103 Source 
Size N102 Source 
Size N101 Source 
Size N100 Source 
Size N99 Source 
Size N98 Source 
Size N97 Source 
Size N96 Source 
Size N95 Source 
Size N94 Source 
Size N93 Source 
Size N92 Source 
Size N91 Source 
Size N90 Source 
Size N89 Source 
Size N88 Source 
Size N87 Source 
Size N86 Source 
Size N85 Source 
Size N84 Source 
Size N83 Source 
Size N82 Source 
Size N81 Source 
Size N80 Source 
Size N79 Source 
Size N78 Source 
Size N77 Source 
Size N76 Source 
Size N75 Source 
Size N74 Source 
Size N73 Source 
Size N72 Source 
Size N71 Source 
Size N70 Source 
Size N69 Source 
Size N68 Source 
Size N67 Source 
Size N66 Source 
Size N65 Source 
Size N64 Source 
Size N63 Source 
Size N62 Source 
Size N61 Source 
Size N60 Source 
Size N59 Source 
Size N58 Source 
Size N57 Source 
Size N56 Source 
Size N55 Source 
Size N54 Source 
Size N53 Source 
Size N52 Source 
Size N51 Source 
Size N50 Source 
Size N49 Source 
Size N48 Source 
Size N47 Source 
Size N46 Source 
Size N45 Source 
Size N44 Source 
Size N43 Source 
Size N42 Source 
Size N41 Source 
Size N40 Source 
Size N39 Source 
Size N38 Source 
Size N37 Source 
Size N36 Source 
Size N35 Source 
Size N34 Source 
Size N33 Source 
Size N32 Source 
Size N31 Source 
Size N30 Source 
Size N29 Source 
Size N28 Source 
Size N27 Source 
Size N26 Source 
Size N25 Source 
Size N24 Source 
Size N23 Source 
Size N22 Source 
Size N21 Source 
Size N20 Source 
Size N19 Source 
Size N18 Source 
Size N17 Source 
Size N16 Source 
Size N15 Source 
Size N14 Source 
Size N13 Source 
Size N12 Source 
Size N11 Source 
Size N10 Source 
Size N9 Source 
Size N8 Source 
Size N7 Source 
Size N6 Source 
Size N5 Source 
Size N4 Source 
Size N3 Source 
Size N2 Source 
Size N1 Source 
Size N0 Source 

data N0 Source

Instances

data N1 Source

Instances

data N2 Source

Instances

data N3 Source

Instances

data N4 Source

Instances

data N5 Source

Instances

data N6 Source

Instances

data N7 Source

Instances

data N8 Source

Instances

data N9 Source

Instances

data N10 Source

Instances

data N11 Source

Instances

data N12 Source

Instances

data N13 Source

Instances

data N14 Source

Instances

data N15 Source

Instances

data N16 Source

Instances

data N17 Source

Instances

data N18 Source

Instances

data N19 Source

Instances

data N20 Source

Instances

data N21 Source

Instances

data N22 Source

Instances

data N23 Source

Instances

data N24 Source

Instances

data N25 Source

Instances

data N26 Source

Instances

data N27 Source

Instances

data N28 Source

Instances

data N29 Source

Instances

data N30 Source

Instances

data N31 Source

Instances

data N32 Source

Instances

data N33 Source

Instances

data N34 Source

Instances

data N35 Source

Instances

data N36 Source

Instances

data N37 Source

Instances

data N38 Source

Instances

data N39 Source

Instances

data N40 Source

Instances

data N41 Source

Instances

data N42 Source

Instances

data N43 Source

Instances

data N44 Source

Instances

data N45 Source

Instances

data N46 Source

Instances

data N47 Source

Instances

data N48 Source

Instances

data N49 Source

Instances

data N50 Source

Instances

data N51 Source

Instances

data N52 Source

Instances

data N53 Source

Instances

data N54 Source

Instances

data N55 Source

Instances

data N56 Source

Instances

data N57 Source

Instances

data N58 Source

Instances

data N59 Source

Instances

data N60 Source

Instances

data N61 Source

Instances

data N62 Source

Instances

data N63 Source

Instances

data N64 Source

Instances

data N65 Source

Instances

data N66 Source

Instances

data N67 Source

Instances

data N68 Source

Instances

data N69 Source

Instances

data N70 Source

Instances

data N71 Source

Instances

data N72 Source

Instances

data N73 Source

Instances

data N74 Source

Instances

data N75 Source

Instances

data N76 Source

Instances

data N77 Source

Instances

data N78 Source

Instances

data N79 Source

Instances

data N80 Source

Instances

data N81 Source

Instances

data N82 Source

Instances

data N83 Source

Instances

data N84 Source

Instances

data N85 Source

Instances

data N86 Source

Instances

data N87 Source

Instances

data N88 Source

Instances

data N89 Source

Instances

data N90 Source

Instances

data N91 Source

Instances

data N92 Source

Instances

data N93 Source

Instances

data N94 Source

Instances

data N95 Source

Instances

data N96 Source

Instances

data N97 Source

Instances

data N98 Source

Instances

data N99 Source

Instances

data N100 Source

Instances

data N101 Source

Instances

data N102 Source

Instances

data N103 Source

Instances

data N104 Source

Instances

data N105 Source

Instances

data N106 Source

Instances

data N107 Source

Instances

data N108 Source

Instances

data N109 Source

Instances

data N110 Source

Instances

data N111 Source

Instances

data N112 Source

Instances

data N113 Source

Instances

data N114 Source

Instances

data N115 Source

Instances

data N116 Source

Instances

data N117 Source

Instances

data N118 Source

Instances

data N119 Source

Instances

data N120 Source

Instances

data N121 Source

Instances

data N122 Source

Instances

data N123 Source

Instances

data N124 Source

Instances

data N125 Source

Instances

data N126 Source

Instances

data N127 Source

Instances

data N128 Source

Instances

data N129 Source

Instances

data N130 Source

Instances

data N131 Source

Instances

data N132 Source

Instances

data N133 Source

Instances

data N134 Source

Instances

data N135 Source

Instances

data N136 Source

Instances

data N137 Source

Instances

data N138 Source

Instances

data N139 Source

Instances

data N140 Source

Instances

data N141 Source

Instances

data N142 Source

Instances

data N143 Source

Instances

data N144 Source

Instances

data N145 Source

Instances

data N146 Source

Instances

data N147 Source

Instances

data N148 Source

Instances

data N149 Source

Instances

data N150 Source

Instances

data N151 Source

Instances

data N152 Source

Instances

data N153 Source

Instances

data N154 Source

Instances

data N155 Source

Instances

data N156 Source

Instances

data N157 Source

Instances

data N158 Source

Instances

data N159 Source

Instances

data N160 Source

Instances

data N161 Source

Instances

data N162 Source

Instances

data N163 Source

Instances

data N164 Source

Instances

data N165 Source

Instances

data N166 Source

Instances

data N167 Source

Instances

data N168 Source

Instances

data N169 Source

Instances

data N170 Source

Instances

data N171 Source

Instances

data N172 Source

Instances

data N173 Source

Instances

data N174 Source

Instances

data N175 Source

Instances

data N176 Source

Instances

data N177 Source

Instances

data N178 Source

Instances

data N179 Source

Instances

data N180 Source

Instances

data N181 Source

Instances

data N182 Source

Instances

data N183 Source

Instances

data N184 Source

Instances

data N185 Source

Instances

data N186 Source

Instances

data N187 Source

Instances

data N188 Source

Instances

data N189 Source

Instances

data N190 Source

Instances

data N191 Source

Instances

data N192 Source

Instances

data N193 Source

Instances

data N194 Source

Instances

data N195 Source

Instances

data N196 Source

Instances

data N197 Source

Instances

data N198 Source

Instances

data N199 Source

Instances

data N200 Source

Instances

data N201 Source

Instances

data N202 Source

Instances

data N203 Source

Instances

data N204 Source

Instances

data N205 Source

Instances

data N206 Source

Instances

data N207 Source

Instances

data N208 Source

Instances

data N209 Source

Instances

data N210 Source

Instances

data N211 Source

Instances

data N212 Source

Instances

data N213 Source

Instances

data N214 Source

Instances

data N215 Source

Instances

data N216 Source

Instances

data N217 Source

Instances

data N218 Source

Instances

data N219 Source

Instances

data N220 Source

Instances

data N221 Source

Instances

data N222 Source

Instances

data N223 Source

Instances

data N224 Source

Instances

data N225 Source

Instances

data N226 Source

Instances

data N227 Source

Instances

data N228 Source

Instances

data N229 Source

Instances

data N230 Source

Instances

data N231 Source

Instances

data N232 Source

Instances

data N233 Source

Instances

data N234 Source

Instances

data N235 Source

Instances

data N236 Source

Instances

data N237 Source

Instances

data N238 Source

Instances

data N239 Source

Instances

data N240 Source

Instances

data N241 Source

Instances

data N242 Source

Instances

data N243 Source

Instances

data N244 Source

Instances

data N245 Source

Instances

data N246 Source

Instances

data N247 Source

Instances

data N248 Source

Instances

data N249 Source

Instances

data N250 Source

Instances

data N251 Source

Instances

data N252 Source

Instances

data N253 Source

Instances

data N254 Source

Instances

data N255 Source

Instances

data N65535 Source

Instances