úÎ#ê ¯)      !"#$%&'( unportableunstablepbrisbin@gmail.com# <Loading all comments, possibly filtered to a single thread. AGet the next available Id given the passed list of comments. In 6 Handler in case there is a database call involved. See Yesod.Comments.Filters >if using Auth, provide the function to get from a user id to % the string to use as the commenter's username. This should 9 return something friendlier than just a conversion to ) >if using Auth, provide the function to get form a user id to % the string to use as the commenter' s email.  Cleanse form input and create a  to be stored The comment form itself DThe comment form if using authentication (uid is hidden and display  name is shown) text version of uid friendly name email *+Show a single comment $Show a single comment, auth version ,Factor out common code         unportableunstablepbrisbin@gmail.com  DApply each filter a given list, return True if the Comment matches  any one filter !>Read IPs from a file, one per line, return True if the comment's IP  matches one in the file  ! ! ! unportableunstablepbrisbin@gmail.com-.>Create the required types and migration function for use in a  general yesod app /01234567"8Make a /. out of a  for passing off to insert 9Read a  back from a selected /. #$%&Use :$ to retrieve all comments site-wide "#$%&#$%&""#$%& unportableunstablepbrisbin@gmail.com '+Comments that anyone can enter anonymously the thread you're adding comments to (%Comments that require authentication the thread you're adding comments to ;2Add styling common to the auth and non-auth forms <7Handle the posted form and actually insert the comment =>'Show the authroute as a link if set up " '('('(?       !"#$%&'()*+,-./01233456789:;<=,>?@ABCDyesod-comments-0.3.4Yesod.Comments.CoreYesod.Comments.FiltersYesod.Comments.StorageYesod.Comments CommentFormformUser formEmail formComment formIsAuthCommentthreadId commentId timeStamp ipAddressuserName userEmailcontentisAuth YesodComments getComment storeComment deleteComment loadCommentsgetNextCommentIdcommentFilters displayUser displayEmail CommentIdThreadIdcommentFromForm commentFormcommentFormAuth showCommentshowCommentAuth applyFilters blacklistFilemigrateCommentsgetCommentPersiststoreCommentPersistdeleteCommentPersistloadCommentsPersist addCommentsaddCommentsAuthbaseGHC.BaseStringfieldRowclazz showHelper SqlCommentId SqlCommentsqlCommentThreadIdsqlCommentCommentIdsqlCommentTimeStampsqlCommentIpAddresssqlCommentUserNamesqlCommentUserEmailsqlCommentContentsqlCommentIsAuth toSqlCommentfromSqlComment Data.MaybeNothing addStyling handleFormhelperlogin