úÎ!B§     © 2015 2017 Mark Karpov BSD 3 clause$Mark Karpov <markkarpov92@gmail.com> experimentalportableNone0L QSlug. Textual value inside is always guaranteed to have the following qualities:it's not empty;Qit consists only of alpha-numeric groups of characters (words) separated by '-'w dashes in such a way that entire slug cannot start or end in a dash and also two dashes in a row cannot be found;;every character with defined notion of case is lower-cased.]Slugs are good for semantic URLs and also can be used as identifier of a sort in some cases.This exception is thrown by 3 when its input cannot be converted into a proper .'Slug cannot be generated for given textInput is not a valid slug, see .Requested slug length is not a positive number Create a  from a … value, all necessary transformations are applied. The argument of this function can be title of an article or something like that.Note that the result is inside %, that means you can just get it in ), in more complex contexts it will throw  exception using  constructor.)This function also has a useful property: #mkSlug = mkSlug >=> mkSlug . unSlug Get textual representation of a .Convert † to a possibly empty collection of words. Every word is guaranteed to be non-empty alpha-numeric lower-cased sequence of characters. Convert a  into a $ only when it is already valid slug.This function can throw the  exception using  constructor.Ensure that given ¼ is not longer than given maximum number of characters. If truncated slug ends in a dash, remove that dash too. (Dash at the end would violate properties described in documentation for .)0If the first argument is not a positive number,  is thrown using  constructor..Maximum length of slug, must be greater than 0Original non-truncated slugTruncated slug          !"#$%&!slug-0.1.7-3YcMxkIaTBR97o5z7wsiMIWeb.SlugSlug SlugException InvalidInput InvalidSlug InvalidLengthmkSlugunSlug parseSlug truncateSlug$fArbitrarySlug$fFromHttpApiDataSlug$fToHttpApiDataSlug$fPathPieceSlug$fPersistFieldSqlSlug$fPersistFieldSlug$fFromJSONSlug $fToJSONSlug $fReadSlug $fShowSlug$fSemigroupSlug$fExceptionSlugException$fEqSlugException$fShowSlugException$fEqSlug $fOrdSlug $fDataSlug#text-1.2.2.2-KC7dWoG09dA1F6jKj5GSqhData.Text.InternalText'exceptions-0.8.3-74UMKX8an841ULC0nHtYN7Control.Monad.Catch MonadThrowbaseGHC.BaseMaybe getSlugWords