l      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  The database info The name for the database The ODBC URL for the database File system path to sessions  Session ID "Stylesheets to attach to the view        Similar to $ except splitting against arbitrary  The character to split against The string to split The resultant list Explode for URLs Explode for field names The  FieldName %(Length of the list, Resultant list) Opposite of explode Implode for URLs   ==   Safe head Function application within  Monadic safe head List of  == True Cast maybe to string (with  == '''')  ''camelCase'' to '' Camel Case'' ''hi there'' to ''Hi There''  ''/a/url'' to ''A Url'' [''a'', ''url''] to ''A Url'' Captures failure Test String on failure Nothing if success, (Just  ''message'' ) on success &Same as (?), always returns a string ('''' on success)    1Function to wrap a value associated with a given & #The database to check for the type &Field name that represents this value The value in question The wrapped value Function to unwrap a  to its original type The wrapped type The originally typed value Heterogeneous type wrapper  Empty type !$Type error (specific case of error) " Bool wrapper # Int wrappr $String wrapper %0Collection of heterogenous fields associated by & &Label for a specific field ' Casts the & in fields to string Field name to look up Fields to look in )String representation of field to return ("Purge non mandatory empty fields Fields to purge Purged fields 4Find a FieldDesc(ription) of a particular FieldName $Database description being searched Field name being looked up Description of field found )*Wrap a  representation of an  +Wrap a  representation of a  ,<Returns an error message if there has been a wrapping error The wrapped type to check Error message - A potential  is   if  The potential wrapped type 8Definitely a wrapped type (though perhaps an empty one) .Special version of # that also wraps fields as it goes "Database to use for wrapping info /List of pairs associating a field name to some  representation of a value 1The map associating field names to wrapped types /# !"#$%&'()*+,-./&$#"! %'(*+,)-./$#"! !"#$%&'()*+,-./ 0MA validator is a map associating field names to a list of functions taking a 1 wrapped type to a potential (error) string Type validation functions The wrapped type to validate $The functions to validate that type 19Validate a particular field against a list of validators 2;Validate a whole set of fields against a set of validators 38True if all fields validate against a set of validators 4Cannot be empty The wrapped value to check  Nothing if it'(s not empty, otherwise an error message 5$Must be shorter than a given length Length to be shorter than The wrapped value to check  Nothing if it'&s shorter, otherwise an error message 6$Must be greater than a given number Number to be greater than The wrapped value to check  Nothing if it's greater, otherwise an error 7FA type level check to make sure a string is within the bounds defined The wrapped type to check  Nothing if it'$s within bounds, otherwise an error 01234567021345670123456789:DProvides get access to the state, mirroring Control.Monad.State.put ;DProvides get access to the state, mirroring Control.Monad.State.get <The state record =>Posted fields ?Field validation functions @Has a form been posted? ASession fields BIs this an AJAX request? CQGets a specific component from the state, using the supplied projection function State projection function Projected component DA default empty start state EF?Looks up a specific field in the state by the given field name FieldName to be looked up The field (if found) G>Deletes a specific field in the state by the given field name FieldName to be deleted H!Replaces the fields in the state Fields to replace with -Nothing (but the modified state) is returned IUMerges the given fields with the existing state (existing state fields are favoured) Fields to merge -Nothing (but the modified state) is returned J0Associate a value with a FieldName in the state )The FieldName of the field being updated +The (wrappable) field to update state with -Nothing (but the modified state) is returned K4Look up validators functions for a particular field Validators to look up #The validator functions (if found) L%Replaces the Validators in the state Validators to replace with -Nothing (but the modified state) is returned MEAssociate a set of validator functions with a FieldName in the state -The FieldName of the validator being updated -The validator functions to update state with -Nothing (but the modified state) is returned 89:;<=>?@ABCDEFGHIJKLM<=>?@AB98;:CDEFHIJGKLM89:;<=>?@AB=>?@ABCDEFGHIJKLM NOPLConvenience function for a stringed representation fo a table and attribute Table  Attribute ''TableName.attributeName'' Q=Convenience function for creating a qualified attribute name  Table name Attribute name ''TableName.attributeName'' R+Execute a database function against the DB &The function that requires a database The executed result SLTake the fields updated by some model action and merge them in to the state TUHShould a form have been posted and all of the fields validate, run some K computation which maps fields to a model (with an empty return type) The computation to run Did the computation succeed? VWXYu      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ANOPQRSTUVWXYONQPRSTUVXYW NOPQRSTUVWXY*Z#Form values are just wrapped types [\Special textual button ]Submit button ^Larger text box _ Hidden field `Standard text box aFor grouping elements bA label cdImage element eTextual element fg Line break hElement wrapped in a link iElement wrapped in a link jElement wrapped in a link kPlain element lA URL mContains various ' block level' elements nop Error pane qA form rLists contain list items sLists contain list items tHeader (int is size) uQuote vCode w*Paragraphs can only only contain elements x0Panel matches up with a div when output as HTML y_A generic GUI whose various instances define how it should be output (e.g. Show outputs HTML). z9A frame with a title, some style and a set of containers {|}~BCDEF%Z[\]^_`abcdefghijklmnopqrstuvwxyz{|}~%yz|}~mxwvutsrqpon{lfkjihgcedb[a`_^]\Z%Z[a`_^]\\]^_`abceddefkjihgghijklm xwvutsrqponnopqrstuvwxyzz{|}~}~HA collection of views which can be streamed to the client by the server  Redirection "File not found, 404 HTTP response A file A partial view  A full view  $Helper function for a submit button "Helper function for a delete link Route for deletion "Helper function for a cancel link Route for cancelation <Helper function to create a single simple element paragraph Element  Paragraph GAbstract list generator List item generator Items Classes List Creates element level text  Text to use Element created (Creates a link with just a text element  URL to use  Text to use  The link 6Helper function for generating a potential error list Errors Error list (if errors) *Helper function for creating a form field Set value of field *Potential length restriction of the field List of errors Is the form field hidden?  The field <Helper function to create a simple form with a single group  Group label Form elements  Any classes  The form 1Generates a form based on a database description ,The table for which the form will be gotten -A set of form elements to append to the form A set of form fields to hide/ not display  The form HIJThe < function wraps a ViewPart in a View if not an Ajax request The title of the View The ViewPart to wrap The resulting Data type KB9:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@APZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~P 6A router maps from a path (list of URL parts) to some  The , function maps a URL to a filesystem folder Folder on the file system  Exploded URL Either an Error404 or the File LExecutes a given router and validators against request information from the  server The router being executed The configuration #Validators to check fields against !Initial fields (from the server) The URL (from the server) The session ID  Whether this is an Ajax request The data to be returned  +Recovers a session from persistent storage L&Saves a session to persistent storage M*Deletes a session from persistent storage *Get a field from the session by FieldName &The FieldName to get from the session The session field (if found) N#Replaces the fields in the session Fields to replace with -Nothing (but the modified state) is returned O7Associate a set of value with a FieldName in the state The FieldName being updated #The (wrapped) value to be assigned -Nothing (but the modified state) is returned @Deletes a specific field in the session by the given field name FieldName to be deleted DCopy a particular field to the session from the fields in the state *The FieldName to be copied to the session -Nothing (but the modified state) is returned DCopy a particular field to the session from the fields in the state ,The FieldName to be copied from the session -Nothing (but the modified state) is returned MOverwrite a message to be flashed to the screen (persisting across requests) Message to flash to the screen .Nothing (but the modified state) is returned IGiven a router, flashes the current message to screen before deleting it *The router to have the message flashed to PTA convenience function when running a router, starting and saving a function before " and after the router is run A router to run  A router wrapped with a session Generate a unique session ID QRSTUVWXYZ[Start a test server The router to run The configuration 'The validators to check fields against The server action Start Frame using FastCGI The router to run The configuration 'The validators to check fields against The server action    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMPP\ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{w|}~           !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLKMKNKOKPKQRSTUTVTWTXTYTZT[T\T]T^T_T`TaTbTcTdTeTfTgThTiTjTkTlTmTnToTpTqTrTsTtTuTvTwTxTyTzT{T|T}T~TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT T T T T TTTTTTTTTTTTTTTTTTT T!T"T#T$T%T&T'T(T)T*T+T,T-T.T/T0T1T2T3T4T5T6T7T8T9T:T;T<T=T>T?T@TATBTCTDTETFTGTHTITJTKTLTMTNTOTPTQTRTSTTTUTVWXWYWZW[W\W]W^W_W`WaWbWcWdWeWfWgWhWiWjWkWlWmWnWoWpWqWrWsWtWuWvWwWxWyWzW{W|W}W~WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW W W W W WWWWWWWWWWWWWWWWWWW W!W"W#W$W%W&W'W(W)W*W+W,W-W.W/W0W1W2W3W4W5W6W7W8W9W:W;W<W=W>W?W@WAWBWCWDWEWFWGWHWIWJWKWLWMWNWOWPWQWRWSWTWUWVWWWXWYWZW[W\W]W^W_W`abcde f g h i j k l m n o p q c r s t u v w x yz frame-0.1 Frame.Model Frame.ConfigFrame.Utilities Frame.TypesFrame.Validation Frame.State Frame.GUI Frame.Data Frame.View Frame.Router Frame.Session Frame.ServerFrame mtl-1.1.1.0Control.Monad.TransliftIOhaskelldb-2.0.1.1Database.HaskellDB.Query tableNameControl.Monad.Reader.Classasks FrameConfigConfigdatabasedbNamedbURL sessionPath sessionIdcssexplode explodeURLexplodeFieldNameimplode implodeUrl maybeMaybe headMaybeappMaybepop allNothing humaniseCamelhumanise humaniseUrl humanisePath??? Wrappablewrapunwrap WrapperType WrapEmpty WrapErrorWrapBoolWrapInt WrapStringFields FieldName showFieldpurge isMandatorywrapIntwrapBool wrapError maybeUnwrap fromList' unwrapField Validators validateFieldvalidate allValidatednotEmpty shorterThan greaterThan withinBounds FrameReader FrameStateputgetVarsfields validatorspostsessionajaxgets startStatesetPostgetFielddelField putFields mergeFieldsputField getValidator putValidators putValidator FrameModelFrameIO-.- fieldNamerunmergefieldpostedwrapStringField wrapBoolField wrapIntFieldwrapMaybeIntField FormValue FormElement ButtonLinkButtonTextArea HiddenField TextField FormGroupLabelElement'ImageTextElementBreakEmphasisStrongLinkURL ContainerEmptyLineErrorFormNumListListHeaderQuoteCode ParagraphPanelGUIClass Composable<++>DataRedirectError404FileViewPartView FrameView submitButton deleteLink cancelLink paragraphlisttextlink errorList formFieldformformGentitleRouter FrameRouter fileFolder startRouter startSession saveSession deleteSessiongetSessionFielddelSessionField copyToSessioncopyFromSession updateFlash getDelFlashflash withSession genSessionId testServerserverbase Data.Listwordsghc-prim GHC.TypesChar Data.MaybeMaybeNothingshowMaybeStringhumaniseCamel' humaniseGen humaniseGen' catMaybesmapMaybe listToMaybe maybeToList fromMaybefromJust isNothingisJustmaybeJustcontainers-0.3.0.0Data.MapfromListemptyMappurge' lookupFD' lookupFD''lookupFDlookupTlookupMGHC.BaseStringIntwrapInt'GHC.BoolBool wrapBool'wrap'Database.HaskellDB.FieldType queryFields toHaskellType FieldDescStringTIntTIntegerTDoubleTBoolT CalendarTimeTBStrT FieldTypefromHaskellTypeExprTypefromHaskellTypes ExprTypestypeValidationsvalidateField'maybeAnd validated MonadStatePut MonadStateGetwithODBCDatabase.HaskellDB queryParams showSqlUnOptshowSqlshowQueryUnOpt showQueryParamDatabase.HaskellDB.Database transactiondescribetablesupdatedeleteinsert insertQueryquery!.DatabasesubQueryorderdescasctop variancePvariancestddevPstddevavg_min_max_sumcountcoercecast constNullconstVal constExprfromValfromNullliteralconstant_defaultfunc_casenotNullisNull.%../..*..-..+._length.++.cat_inlike.||..&&._not.>=..>..<=..<..<>..==.param namedParamtableminusdivide intersectunionuniquerestrictprojectcopyAllcopy<<-<<RelExprExprAggrTableAttrQuerytoStrArgsDatabase.HaskellDB.HDBRec#RecordHasFieldrecCat!SelectDatabase.HaskellDB.PrimQuery OrderExpr Database.HaskellDB.BoundedString BoundedStringBStr0BStr1BStr2BStr3BStr4BStr5BStr6BStr7BStr8BStr9BStr10BStr11BStr12BStr13BStr14BStr15BStr16BStr17BStr18BStr19BStr20BStr21BStr22BStr23BStr24BStr25BStr26BStr27BStr28BStr29BStr30BStr31BStr32BStr33BStr34BStr35BStr36BStr37BStr38BStr39BStr40BStr41BStr42BStr43BStr44BStr45BStr46BStr47BStr48BStr49BStr50BStr51BStr52BStr53BStr54BStr55BStr56BStr57BStr58BStr59BStr60BStr61BStr62BStr63BStr64BStr65BStr66BStr67BStr68BStr69BStr70BStr71BStr72BStr73BStr74BStr75BStr76BStr77BStr78BStr79BStr80BStr81BStr82BStr83BStr84BStr85BStr86BStr87BStr88BStr89BStr90BStr91BStr92BStr93BStr94BStr95BStr96BStr97BStr98BStr99BStr100BStr101BStr102BStr103BStr104BStr105BStr106BStr107BStr108BStr109BStr110BStr111BStr112BStr113BStr114BStr115BStr116BStr117BStr118BStr119BStr120BStr121BStr122BStr123BStr124BStr125BStr126BStr127BStr128BStr129BStr130BStr131BStr132BStr133BStr134BStr135BStr136BStr137BStr138BStr139BStr140BStr141BStr142BStr143BStr144BStr145BStr146BStr147BStr148BStr149BStr150BStr151BStr152BStr153BStr154BStr155BStr156BStr157BStr158BStr159BStr160BStr161BStr162BStr163BStr164BStr165BStr166BStr167BStr168BStr169BStr170BStr171BStr172BStr173BStr174BStr175BStr176BStr177BStr178BStr179BStr180BStr181BStr182BStr183BStr184BStr185BStr186BStr187BStr188BStr189BStr190BStr191BStr192BStr193BStr194BStr195BStr196BStr197BStr198BStr199BStr200BStr201BStr202BStr203BStr204BStr205BStr206BStr207BStr208BStr209BStr210BStr211BStr212BStr213BStr214BStr215BStr216BStr217BStr218BStr219BStr220BStr221BStr222BStr223BStr224BStr225BStr226BStr227BStr228BStr229BStr230BStr231BStr232BStr233BStr234BStr235BStr236BStr237BStr238BStr239BStr240BStr241BStr242BStr243BStr244BStr245BStr246BStr247BStr248BStr249BStr250BStr251BStr252BStr253BStr254BStr255 BStr65535Database.HaskellDB.BoundedListtrunc toBounded listBound fromBoundedgrowshrinkSizeN0N1N2N3N4N5N6N7N8N9N10N11N12N13N14N15N16N17N18N19N20N21N22N23N24N25N26N27N28N29N30N31N32N33N34N35N36N37N38N39N40N41N42N43N44N45N46N47N48N49N50N51N52N53N54N55N56N57N58N59N60N61N62N63N64N65N66N67N68N69N70N71N72N73N74N75N76N77N78N79N80N81N82N83N84N85N86N87N88N89N90N91N92N93N94N95N96N97N98N99N100N101N102N103N104N105N106N107N108N109N110N111N112N113N114N115N116N117N118N119N120N121N122N123N124N125N126N127N128N129N130N131N132N133N134N135N136N137N138N139N140N141N142N143N144N145N146N147N148N149N150N151N152N153N154N155N156N157N158N159N160N161N162N163N164N165N166N167N168N169N170N171N172N173N174N175N176N177N178N179N180N181N182N183N184N185N186N187N188N189N190N191N192N193N194N195N196N197N198N199N200N201N202N203N204N205N206N207N208N209N210N211N212N213N214N215N216N217N218N219N220N221N222N223N224N225N226N227N228N229N230N231N232N233N234N235N236N237N238N239N240N241N242N243N244N245N246N247N248N249N250N251N252N253N254N255N65535 BoundedListshowCSS showClass showClasses showListItem showMaxLength singletonformGen' formGenTbl formGenColtitle'strictDecodeFile writeFields putSessionputSessionFieldappFlash simpleCGIrunCGI serverPartrouterToResponsedataToResponse htmlContent fileResponse detectMimemimeTypeisAjax