[
    {
        "name": "Random.Mouse",
        "comment": " List of Mouse Generators\n\n# Generators\n@docs mousePosition, mouseX, mouseY, leftMouseDown\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "leftMouseDown",
                "comment": " Generate a random instance of left mouse down (alias for `bool`)\n",
                "type": "Generator Bool"
            },
            {
                "name": "mousePosition",
                "comment": " Generate a random mouse position given a screen width and a screen height\n",
                "type": "Int -> Int -> Generator ( Int, Int )"
            },
            {
                "name": "mouseX",
                "comment": " Generate a random mouseX value given a screen width\n",
                "type": "Int -> Generator Int"
            },
            {
                "name": "mouseY",
                "comment": " Generate a random mouseY value given a screen height\n",
                "type": "Int -> Generator Int"
            }
        ],
        "binops": []
    },
    {
        "name": "Random.String",
        "comment": " List of String Generators\n\n# Simple Generators\n@docs string, word, englishWord, capitalizedEnglishWord\n\n# Random Length String Generators\n@docs rangeLengthString, rangeLengthWord, rangeLengthEnglishWord, anyEnglishWord, anyCapitalizedEnglishWord, rangeLengthCapitalizedEnglishWord\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "anyCapitalizedEnglishWord",
                "comment": " Generate a random capitalized word with english characters of random length\nbetween 1 34.\nAside: 34 was picked as a maximum as \"supercalifragilisticexpialidocious\"\nis considered the longest commonly used word and is 34 character long.\nLonger words do occur, especially in scientific contexts. In which case, consider\nusing `rangeLengthEnglishWord` for more granular control.\n",
                "type": "Generator String"
            },
            {
                "name": "anyEnglishWord",
                "comment": " Generate a random lowercase word with english characters of random length\nbetween 1 34.\nAside: 34 was picked as a maximum as \"supercalifragilisticexpialidocious\"\nis considered the longest commonly used word and is 34 character long.\nLonger words do occur, especially in scientific contexts. In which case, consider\nusing `rangeLengthEnglishWord` for more granular control.\n",
                "type": "Generator String"
            },
            {
                "name": "capitalizedEnglishWord",
                "comment": " Generate a random capitalized word with english characters of a given length.\nNote: This just generates a random string using the letters in english, so there\nare no guarantees that the result be an actual english word.\n",
                "type": "Int -> Generator String"
            },
            {
                "name": "englishWord",
                "comment": " Generate a random lowercase word with english characters of a given length.\nNote: This just generates a random string using the letters in english, so there\nare no guarantees that the result be an actual english word.\n",
                "type": "Int -> Generator String"
            },
            {
                "name": "rangeLengthCapitalizedEnglishWord",
                "comment": " Generate a random capitalized word with english characters of random length\ngiven a minimum length and a maximum length.\n",
                "type": "Int -> Int -> Generator String"
            },
            {
                "name": "rangeLengthEnglishWord",
                "comment": " Generate a random lowercase word with english characters of random length\ngiven a minimum length and maximum length.\n",
                "type": "Int -> Int -> Generator String"
            },
            {
                "name": "rangeLengthString",
                "comment": " Generates a random string of random length given the minimum length\nand maximum length and a given character generator.\n",
                "type": "Int -> Int -> Generator Char -> Generator String"
            },
            {
                "name": "rangeLengthWord",
                "comment": " Alias for `rangeLengthString`\n",
                "type": "Int -> Int -> Generator Char -> Generator String"
            },
            {
                "name": "string",
                "comment": " Generate a random string of a given length with a given character generator\n\n    fiveLetterEnglishWord = string 5 english\n",
                "type": "Int -> Generator Char -> Generator String"
            },
            {
                "name": "word",
                "comment": " Generate a random word of a given length with a given character generator\n(alias for `string`)\n",
                "type": "Int -> Generator Char -> Generator String"
            }
        ],
        "binops": []
    },
    {
        "name": "Random.Touch",
        "comment": " List of Touch Generators\n\n# Generators\n@docs tap, touch\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "tap",
                "comment": " Generate a random tap given a screen width and screen height\n",
                "type": "Int -> Int -> Generator { x : Int, y : Int }"
            },
            {
                "name": "touch",
                "comment": " Generate a random touch given a screen width and screen height\n",
                "type": "Int -> Int -> Generator Touch"
            }
        ],
        "binops": []
    },
    {
        "name": "Random.Array",
        "comment": " List of Array Generators\n\n# Generate an Array\n@docs array, emptyArray, rangeLengthArray\n\n# Random Operations on an Array\n@docs sample, choose, shuffle\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "array",
                "comment": " Generate a random array of given size given a random generator\n\n    randomLength5IntArray = array 5 (int 0 100)\n",
                "type": "Int -> Generator a -> Generator (Array a)"
            },
            {
                "name": "choose",
                "comment": " Sample without replacement: produce a randomly selected element of the\narray, and the array with that element omitted (shifting all later elements\ndown). ",
                "type": "Array a -> Generator ( Maybe a, Array a )"
            },
            {
                "name": "emptyArray",
                "comment": " Generator that always generates the empty array\n",
                "type": "Generator (Array a)"
            },
            {
                "name": "rangeLengthArray",
                "comment": " Generate a random array of random length given a minimum length and\na maximum length.\n",
                "type": "Int -> Int -> Generator a -> Generator (Array a)"
            },
            {
                "name": "sample",
                "comment": " Sample with replacement: produce a randomly selected element of the\narray, or `Nothing` for an empty array. Takes O(1) time. ",
                "type": "Array a -> Generator (Maybe a)"
            },
            {
                "name": "shuffle",
                "comment": " Shuffle the array using the Fisher-Yates algorithm. Takes O(_n_ log _n_)\ntime and O(_n_) additional space. ",
                "type": "Array a -> Generator (Array a)"
            }
        ],
        "binops": []
    },
    {
        "name": "Random.Bool",
        "comment": " List of Bool Generators\n\n# Generators\n@docs bool\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "bool",
                "comment": " Random Bool generator\n",
                "type": "Generator Bool"
            }
        ],
        "binops": []
    },
    {
        "name": "Random.Char",
        "comment": " List of Char Generators\n\n# Basic Generators\n@docs char, lowerCaseLatin, upperCaseLatin, latin, english, ascii, unicode\n\n# Unicode Generators (UTF-8)\n@docs basicLatin, latin1Supplement, latinExtendedA, latinExtendedB, ipaExtensions, spacingModifier, combiningDiacriticalMarks, greekAndCoptic, cyrillic, cyrillicSupplement, armenian, hebrew, arabic, syriac, arabicSupplement, thaana, nko, samaritan, mandaic, arabicExtendedA, devanagari, bengali, gurmukhi, gujarati, oriya, tamil, telugu, kannada, malayalam, sinhala, thai, lao, tibetan, myanmar, georgian, hangulJamo, ethiopic, ethiopicSupplement, cherokee, unifiedCanadianAboriginalSyllabic, ogham, runic, tagalog, hanunoo, buhid, tagbanwa, khmer, mongolian, unifiedCanadianAboriginalSyllabicExtended, limbu, taiLe, newTaiLue, khmerSymbol, buginese, taiTham, balinese, sundanese, batak, lepcha, olChiki, sundaneseSupplement, vedicExtensions, phoneticExtensions, phoneticExtensionsSupplement, combiningDiacriticalMarksSupplement, latinExtendedAdditional, greekExtended, generalPunctuation, superscriptOrSubscript, currencySymbol, combiningDiacriticalMarksForSymbols, letterlikeSymbol, numberForm, arrow, mathematicalOperator, miscellaneousTechnical, controlPicture, opticalCharacterRecognition, enclosedAlphanumeric, boxDrawing, blockElement, geometricShape, miscellaneousSymbol, dingbat, miscellaneousMathematicalSymbolA, supplementalArrowA, braillePattern, supplementalArrowB, miscellaneousMathematicalSymbolB, supplementalMathematicalOperator, miscellaneousSymbolOrArrow, glagolitic, latinExtendedC, coptic, georgianSupplement, tifinagh, ethiopicExtended, cyrillicExtendedA, supplementalPunctuation, cjkRadicalSupplement, kangxiRadical, ideographicDescription, cjkSymbolOrPunctuation, hiragana, katakana, bopomofo, hangulCompatibilityJamo, kanbun, bopomofoExtended, cjkStroke, katakanaPhoneticExtension, enclosedCJKLetterOrMonth, cjkCompatibility, cjkUnifiedIdeographExtensionA, yijingHexagramSymbol, cjkUnifiedIdeograph, yiSyllable, yiRadical, lisu, vai, cyrillicExtendedB, bamum, modifierToneLetter, latinExtendedD, sylotiNagri, commonIndicNumberForm, phagsPa, saurashtra, devanagariExtended, kayahLi, rejang, hangulJamoExtendedA, javanese, cham, myanmarExtendedA, taiViet, meeteiMayekExtension, ethiopicExtendedA, meeteiMayek, hangulSyllable, hangulJamoExtendedB, highSurrogate, highPrivateUseSurrogate, lowSurrogate, privateUseArea, cjkCompatibilityIdeograph, alphabeticPresentationForm, arabicPresentationFormA, variationSelector, verticalForm, combiningHalfMark, cjkCompatibilityForm, smallFormVariant, arabicPresentationFormB, halfwidthOrFullwidthForm, special, linearBSyllable, linearBIdeogram, aegeanNumber, ancientGreekNumber, ancientSymbol, phaistosDisc, lycian, carian, oldItalic, gothic, ugaritic, oldPersian, deseret, shavian, osmanya, cypriotSyllable, imperialAramaic, phoenician, lydian, meroiticHieroglyph, meroiticCursive, kharoshthi, oldSouthArabian, avestan, inscriptionalParthian, inscriptionalPahlavi, oldTurkic, rumiNumericalSymbol, brahmi, kaithi, soraSompeng, chakma, sharada, takri, cuneiform, cuneiformNumberOrPunctuation, egyptianHieroglyph, bamumSupplement, miao, kanaSupplement, byzantineMusicalSymbol, musicalSymbol, ancientGreekMusicalNotationSymbol, taiXuanJingSymbol, countingRodNumeral, mathematicalAlphanumericSymbol, arabicMathematicalAlphabeticSymbol, mahjongTile, dominoTile, playingCard, enclosedAlphanumericSupplement, enclosedIdeographicSupplement, miscellaneousSymbolOrPictograph, emoticon, transportOrMapSymbol, alchemicalSymbol, cjkUnifiedIdeographExtensionB, cjkUnifiedIdeographExtensionC, cjkUnifiedIdeographExtensionD, cjkCompatibilityIdeographSupplement, tag, variationSelectorSupplement, supplementaryPrivateUseAreaA, supplementaryPrivateUseAreaB\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "aegeanNumber",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "alchemicalSymbol",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "alphabeticPresentationForm",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "ancientGreekMusicalNotationSymbol",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "ancientGreekNumber",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "ancientSymbol",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "arabic",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "arabicExtendedA",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "arabicMathematicalAlphabeticSymbol",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "arabicPresentationFormA",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "arabicPresentationFormB",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "arabicSupplement",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "armenian",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "arrow",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "ascii",
                "comment": " Generate a random ASCII Character\n",
                "type": "Generator Char"
            },
            {
                "name": "avestan",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "balinese",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "bamum",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "bamumSupplement",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "basicLatin",
                "comment": " UTF-8 ",
                "type": "Generator Char"
            },
            {
                "name": "batak",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "bengali",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "blockElement",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "bopomofo",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "bopomofoExtended",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "boxDrawing",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "brahmi",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "braillePattern",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "buginese",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "buhid",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "byzantineMusicalSymbol",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "carian",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "chakma",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "cham",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "char",
                "comment": " Generate a random character within a certain keyCode range\n\n    lowerCaseLetter = char 65 90\n",
                "type": "Int -> Int -> Generator Char"
            },
            {
                "name": "cherokee",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "cjkCompatibility",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "cjkCompatibilityForm",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "cjkCompatibilityIdeograph",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "cjkCompatibilityIdeographSupplement",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "cjkRadicalSupplement",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "cjkStroke",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "cjkSymbolOrPunctuation",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "cjkUnifiedIdeograph",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "cjkUnifiedIdeographExtensionA",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "cjkUnifiedIdeographExtensionB",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "cjkUnifiedIdeographExtensionC",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "cjkUnifiedIdeographExtensionD",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "combiningDiacriticalMarks",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "combiningDiacriticalMarksForSymbols",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "combiningDiacriticalMarksSupplement",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "combiningHalfMark",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "commonIndicNumberForm",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "controlPicture",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "coptic",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "countingRodNumeral",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "cuneiform",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "cuneiformNumberOrPunctuation",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "currencySymbol",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "cypriotSyllable",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "cyrillic",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "cyrillicExtendedA",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "cyrillicExtendedB",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "cyrillicSupplement",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "deseret",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "devanagari",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "devanagariExtended",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "dingbat",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "dominoTile",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "egyptianHieroglyph",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "emoticon",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "enclosedAlphanumeric",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "enclosedAlphanumericSupplement",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "enclosedCJKLetterOrMonth",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "enclosedIdeographicSupplement",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "english",
                "comment": " Generate a random English Letter (alias for `latin`)\n",
                "type": "Generator Char"
            },
            {
                "name": "ethiopic",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "ethiopicExtended",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "ethiopicExtendedA",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "ethiopicSupplement",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "generalPunctuation",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "geometricShape",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "georgian",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "georgianSupplement",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "glagolitic",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "gothic",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "greekAndCoptic",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "greekExtended",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "gujarati",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "gurmukhi",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "halfwidthOrFullwidthForm",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "hangulCompatibilityJamo",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "hangulJamo",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "hangulJamoExtendedA",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "hangulJamoExtendedB",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "hangulSyllable",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "hanunoo",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "hebrew",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "highPrivateUseSurrogate",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "highSurrogate",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "hiragana",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "ideographicDescription",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "imperialAramaic",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "inscriptionalPahlavi",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "inscriptionalParthian",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "ipaExtensions",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "javanese",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "kaithi",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "kanaSupplement",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "kanbun",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "kangxiRadical",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "kannada",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "katakana",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "katakanaPhoneticExtension",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "kayahLi",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "kharoshthi",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "khmer",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "khmerSymbol",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "lao",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "latin",
                "comment": " Generate a random Latin Letter\n",
                "type": "Generator Char"
            },
            {
                "name": "latin1Supplement",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "latinExtendedA",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "latinExtendedAdditional",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "latinExtendedB",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "latinExtendedC",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "latinExtendedD",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "lepcha",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "letterlikeSymbol",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "limbu",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "linearBIdeogram",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "linearBSyllable",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "lisu",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "lowSurrogate",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "lowerCaseLatin",
                "comment": " Generate a random lower-case Latin Letter\n",
                "type": "Generator Char"
            },
            {
                "name": "lycian",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "lydian",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "mahjongTile",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "malayalam",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "mandaic",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "mathematicalAlphanumericSymbol",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "mathematicalOperator",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "meeteiMayek",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "meeteiMayekExtension",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "meroiticCursive",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "meroiticHieroglyph",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "miao",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "miscellaneousMathematicalSymbolA",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "miscellaneousMathematicalSymbolB",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "miscellaneousSymbol",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "miscellaneousSymbolOrArrow",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "miscellaneousSymbolOrPictograph",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "miscellaneousTechnical",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "modifierToneLetter",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "mongolian",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "musicalSymbol",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "myanmar",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "myanmarExtendedA",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "newTaiLue",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "nko",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "numberForm",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "ogham",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "olChiki",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "oldItalic",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "oldPersian",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "oldSouthArabian",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "oldTurkic",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "opticalCharacterRecognition",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "oriya",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "osmanya",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "phagsPa",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "phaistosDisc",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "phoenician",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "phoneticExtensions",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "phoneticExtensionsSupplement",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "playingCard",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "privateUseArea",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "rejang",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "rumiNumericalSymbol",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "runic",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "samaritan",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "saurashtra",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "sharada",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "shavian",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "sinhala",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "smallFormVariant",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "soraSompeng",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "spacingModifier",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "special",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "sundanese",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "sundaneseSupplement",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "superscriptOrSubscript",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "supplementalArrowA",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "supplementalArrowB",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "supplementalMathematicalOperator",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "supplementalPunctuation",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "supplementaryPrivateUseAreaA",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "supplementaryPrivateUseAreaB",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "sylotiNagri",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "syriac",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "tag",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "tagalog",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "tagbanwa",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "taiLe",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "taiTham",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "taiViet",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "taiXuanJingSymbol",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "takri",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "tamil",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "telugu",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "thaana",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "thai",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "tibetan",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "tifinagh",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "transportOrMapSymbol",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "ugaritic",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "unicode",
                "comment": " Generate a random Character in the valid unicode range.\nNote: This can produce garbage values as unicode doesn't use all valid values.\nTo test for specific languages and character sets, use the appropriate one\nfrom the list.\n",
                "type": "Generator Char"
            },
            {
                "name": "unifiedCanadianAboriginalSyllabic",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "unifiedCanadianAboriginalSyllabicExtended",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "upperCaseLatin",
                "comment": " Generate a random upper-case Latin Letter\n",
                "type": "Generator Char"
            },
            {
                "name": "vai",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "variationSelector",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "variationSelectorSupplement",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "vedicExtensions",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "verticalForm",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "yiRadical",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "yiSyllable",
                "comment": "",
                "type": "Generator Char"
            },
            {
                "name": "yijingHexagramSymbol",
                "comment": "",
                "type": "Generator Char"
            }
        ],
        "binops": []
    },
    {
        "name": "Random.Color",
        "comment": " List of Color Generators\n\n# Generators\n@docs color, rgb, rgba, hsl, hsla, greyscale, grayscale, red, green, blue\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "blue",
                "comment": " Generate a random shade of blue\n",
                "type": "Generator Color"
            },
            {
                "name": "color",
                "comment": " Generate a random color\n",
                "type": "Generator Color"
            },
            {
                "name": "grayscale",
                "comment": " Alias for greyscale\n",
                "type": "Generator Color"
            },
            {
                "name": "green",
                "comment": " Generate a random shade of green\n",
                "type": "Generator Color"
            },
            {
                "name": "greyscale",
                "comment": " Generate a random shade of grey\n",
                "type": "Generator Color"
            },
            {
                "name": "hsl",
                "comment": " Generate a random color which randomizes hsl values\n",
                "type": "Generator Color"
            },
            {
                "name": "hsla",
                "comment": " Generate a random color which randomizes hsla values\n",
                "type": "Generator Color"
            },
            {
                "name": "red",
                "comment": " Generate a random shade of red\n",
                "type": "Generator Color"
            },
            {
                "name": "rgb",
                "comment": " Generate a random color which randomizes rgb values\n",
                "type": "Generator Color"
            },
            {
                "name": "rgba",
                "comment": " Generate a random color which randomizes rgba values\n",
                "type": "Generator Color"
            }
        ],
        "binops": []
    },
    {
        "name": "Random.Date",
        "comment": " List of date Generators\n\n# Generators\n@docs date, day, month, year, hour, hour24, hour12, minute, second\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "date",
                "comment": " Generate a random date given a start date and an end date.\n",
                "type": "Date -> Date -> Generator Date"
            },
            {
                "name": "day",
                "comment": " Generate a random day of the week.\n",
                "type": "Generator Day"
            },
            {
                "name": "hour",
                "comment": " Generate a random hour (random int between 0 and 23 inclusive)\n",
                "type": "Generator Int"
            },
            {
                "name": "hour12",
                "comment": " Generate a random 12-hour day hour (random int between 0 and 11 inclusive)\n",
                "type": "Generator Int"
            },
            {
                "name": "hour24",
                "comment": " Generate a random 24-hour day hour (random int between 0 and 23 inclusive)\n",
                "type": "Generator Int"
            },
            {
                "name": "minute",
                "comment": " Generate a random minute (random int between 0 and 59 inclusive)\n",
                "type": "Generator Int"
            },
            {
                "name": "month",
                "comment": " Generate a random month of the year.\n",
                "type": "Generator Month"
            },
            {
                "name": "second",
                "comment": " Generate a random second (random int between 0 and 59 inclusive)\n",
                "type": "Generator Int"
            },
            {
                "name": "year",
                "comment": " Generate a random year given a start year and end year (alias for `int`)\n",
                "type": "Int -> Int -> Generator Int"
            }
        ],
        "binops": []
    },
    {
        "name": "Random.Dict",
        "comment": " List of Dict Generators\n\n# Generators\n@docs dict, emptyDict, rangeLengthDict\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "dict",
                "comment": " Generate a random dict with given length, key generator, and value generator\n\n    randomLength10StringIntDict = dict 10 (englishWord 10) (int 0 100)\n",
                "type": "Int -> Generator comparable -> Generator value -> Generator (Dict comparable value)"
            },
            {
                "name": "emptyDict",
                "comment": " Generator that always generates the empty dict\n",
                "type": "Generator (Dict comparable value)"
            },
            {
                "name": "rangeLengthDict",
                "comment": " Generate a random dict of random length given a minimum length and\na maximum length.\n",
                "type": "Int -> Int -> Generator comparable -> Generator value -> Generator (Dict comparable value)"
            }
        ],
        "binops": []
    },
    {
        "name": "Random.Float",
        "comment": " List of Float Generators\n\n# Generators\n@docs anyFloat, positiveFloat, negativeFloat, floatGreaterThan, floatLessThan, probability, negativeProbability, unitRange\n\n# Gaussian Generators\n@docs normal, standardNormal, gaussian\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "anyFloat",
                "comment": " Generator that generates any float\n",
                "type": "Generator Float"
            },
            {
                "name": "floatGreaterThan",
                "comment": " Generator that generates a float greater than a given float\n",
                "type": "Float -> Generator Float"
            },
            {
                "name": "floatLessThan",
                "comment": " Generator that generates a float less than a given float\n",
                "type": "Float -> Generator Float"
            },
            {
                "name": "gaussian",
                "comment": " Alias for `normal`.\n",
                "type": "Float -> Float -> Float -> Generator Float"
            },
            {
                "name": "negativeFloat",
                "comment": " Generator that generates any negative float\n",
                "type": "Generator Float"
            },
            {
                "name": "negativeProbability",
                "comment": " Generator that generates a float between -1 and 0\n",
                "type": "Generator Float"
            },
            {
                "name": "normal",
                "comment": " Create a generator of floats that is normally distributed with\ngiven minimum, maximum, and standard deviation.\n",
                "type": "Float -> Float -> Float -> Generator Float"
            },
            {
                "name": "positiveFloat",
                "comment": " Generator that generates any positive float\n",
                "type": "Generator Float"
            },
            {
                "name": "probability",
                "comment": " Generator that generates a float between 0 and 1\n",
                "type": "Generator Float"
            },
            {
                "name": "standardNormal",
                "comment": " Generator that follows a standard normal distribution (as opposed to\na uniform distribution)\n",
                "type": "Generator Float"
            },
            {
                "name": "unitRange",
                "comment": " Generator that generates a float between - 1 and 1\n",
                "type": "Generator Float"
            }
        ],
        "binops": []
    },
    {
        "name": "Random.Function",
        "comment": " List of Function Generators\n\n# Generators\n@docs func, func2, func3, func4, func5, func6\n\n# Infix operators\n@docs (<<<), (>>>)\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "func",
                "comment": " Generates a random function of one argument given a generator for the output.\n",
                "type": "Generator b -> Generator (a -> b)"
            },
            {
                "name": "func2",
                "comment": " Generates a random function of two arguments given a generator for the output.\n",
                "type": "Generator c -> Generator (a -> b -> c)"
            },
            {
                "name": "func3",
                "comment": " Generates a random function of three arguments given a generator for the output.\n",
                "type": "Generator d -> Generator (a -> b -> c -> d)"
            },
            {
                "name": "func4",
                "comment": " Generates a random function of four arguments given a generator for the output.\n",
                "type": "Generator e -> Generator (a -> b -> c -> d -> e)"
            },
            {
                "name": "func5",
                "comment": " Generates a random function of five arguments given a generator for the output.\n",
                "type": "Generator f -> Generator (a -> b -> c -> d -> e -> f)"
            },
            {
                "name": "func6",
                "comment": " Generates a random function of six arguments given a generator for the output.\n",
                "type": "Generator g -> Generator (a -> b -> c -> d -> e -> f -> g)"
            }
        ],
        "binops": [
            {
                "name": "<<<",
                "comment": " Compose two function generators. Analogous to `<<`\n",
                "type": "Generator (b -> c) -> Generator (a -> b) -> Generator (a -> c)",
                "associativity": "right",
                "precedence": 9
            },
            {
                "name": ">>>",
                "comment": " Compose two function generators. Analogous to `>>`\n",
                "type": "Generator (a -> b) -> Generator (b -> c) -> Generator (a -> c)",
                "associativity": "left",
                "precedence": 9
            }
        ]
    },
    {
        "name": "Random.Keyboard",
        "comment": " List of Keyboard Generators\n\n# Generators\n@docs arrows, keyCode, numberKey, letterKey, arrowKey, numpadKey, fKey\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "arrowKey",
                "comment": " Generate a random arrow key input\n",
                "type": "Generator KeyCode"
            },
            {
                "name": "arrows",
                "comment": " Generate random Keyboard arrows input\n",
                "type": "Generator { x : Int, y : Int }"
            },
            {
                "name": "fKey",
                "comment": " Generate a random fKey input\n",
                "type": "Generator KeyCode"
            },
            {
                "name": "keyCode",
                "comment": " Generate a random Keyboard input.\n",
                "type": "Generator KeyCode"
            },
            {
                "name": "letterKey",
                "comment": " Generate a random letter key input\n",
                "type": "Generator KeyCode"
            },
            {
                "name": "numberKey",
                "comment": " Generate a random number key input\n",
                "type": "Generator KeyCode"
            },
            {
                "name": "numpadKey",
                "comment": " Generate a random numpadKey input\n",
                "type": "Generator KeyCode"
            }
        ],
        "binops": []
    },
    {
        "name": "Random.List",
        "comment": " List of List Generators\n\n# Generators\n@docs emptyList, rangeLengthList\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "emptyList",
                "comment": " Generator that always returns the empty list.\n",
                "type": "Generator (List a)"
            },
            {
                "name": "rangeLengthList",
                "comment": " Generate a random list of random length given a minimum length and\na maximum length.\n",
                "type": "Int -> Int -> Generator a -> Generator (List a)"
            }
        ],
        "binops": []
    },
    {
        "name": "Random.Mailbox",
        "comment": " List of Mailbox Generators\n\n# Generators\n@docs mailbox, address\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "address",
                "comment": " Generates a random mailbox address\n",
                "type": "Generator a -> Generator (Address a)"
            },
            {
                "name": "mailbox",
                "comment": " Generates a random mailbox\n",
                "type": "Generator a -> Generator (Mailbox a)"
            }
        ],
        "binops": []
    },
    {
        "name": "Random.Maybe",
        "comment": " List of Maybe Generators\n\n# Generators\n@docs maybe, withDefault, withDefaultGenerator\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "maybe",
                "comment": " Generate a Maybe from a generator. Will generate Nothings 50% of the time.\n",
                "type": "Generator a -> Generator (Maybe a)"
            },
            {
                "name": "withDefault",
                "comment": " Generate values from a maybe generator or a default value.\n",
                "type": "a -> Generator (Maybe a) -> Generator a"
            },
            {
                "name": "withDefaultGenerator",
                "comment": " Generate values from a maybe generator or a default generator.\n",
                "type": "Generator a -> Generator (Maybe a) -> Generator a"
            }
        ],
        "binops": []
    },
    {
        "name": "Random.Order",
        "comment": " List of Order Generators\n\n# Generators\n@docs order\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "order",
                "comment": " Generate a random order with equal probability.\n",
                "type": "Generator Order"
            }
        ],
        "binops": []
    },
    {
        "name": "Random.Result",
        "comment": " List of Result Generators\n\n# Generators\n@docs ok, error, result\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "error",
                "comment": " Generate an error result from a random generator of errors\n",
                "type": "Generator error -> Generator (Result error value)"
            },
            {
                "name": "ok",
                "comment": " Generate an ok result from a random generator of values\n",
                "type": "Generator value -> Generator (Result error value)"
            },
            {
                "name": "result",
                "comment": " Generate an ok result or an error result with 50-50 chance\n\nThis is simply implemented as follows:\n\n    result errorGenerator okGenerator =\n      frequency\n        [ (1, error errorGenerator)\n        , (1, ok okGenerator)\n        ] (ok okGenerator)\n\nIf you want to generate results with a different frequency, tweak those\nnumbers to your bidding in your own custom generators.\n",
                "type": "Generator error -> Generator value -> Generator (Result error value)"
            }
        ],
        "binops": []
    },
    {
        "name": "Random.Window",
        "comment": " List of window Generators\n\n# Generators\n@docs windowDimensions, windowWidth, windowHeight\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "windowDimensions",
                "comment": " Generate a random tuple of window dimensions given a minimum screen width, a maximum screen width, a minimum screen height, a maximum screen height\n",
                "type": "Int -> Int -> Int -> Int -> Generator ( Int, Int )"
            },
            {
                "name": "windowHeight",
                "comment": " Generate a random width height value given a minimum screen height and a maximum screen height\n",
                "type": "Int -> Int -> Generator Int"
            },
            {
                "name": "windowWidth",
                "comment": " Generate a random window width value given a minimum screen width and a maximum screen width\n",
                "type": "Int -> Int -> Generator Int"
            }
        ],
        "binops": []
    },
    {
        "name": "Random.Signal",
        "comment": " List of Signal Generators\n\n# Generators\n@docs constant\n\n# Random Seeds\n@docs randomSeed, randomSeedEvery\n\n# Generate Signals\n@docs generate, generateEvery\n\n# Generate a run of an application\n@docs application, run\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "application",
                "comment": " Generate a random run of an application that follows the Elm Architecture.\nHere, the Elm Architecture is interpreted as follows:\n\n    initialModel : model\n    actions : Signal action\n    update : action -> model -> model\n    view : model -> view -- where view is usually Element or Html\n\n    main =\n      Signal.map view\n        (Signal.foldp update initialModel actions)\n\n\nHow to use:\n\n    applicationGenerator =\n      application initialModel actionGenerator update view\n\n    main =\n      generate applicationGenerator\n\n",
                "type": "model -> Generator action -> (action -> model -> model) -> (model -> view) -> Generator view"
            },
            {
                "name": "constant",
                "comment": " Generates constant signals.\n",
                "type": "Generator a -> Generator (Signal a)"
            },
            {
                "name": "generate",
                "comment": " Generate a signal from a random generator that updates 60 times per second.\n",
                "type": "Generator a -> Signal a"
            },
            {
                "name": "generateEvery",
                "comment": " Generate a signal from a random generator that updates every\ngiven number of milliseconds.\n",
                "type": "Time -> Generator a -> Signal a"
            },
            {
                "name": "randomSeed",
                "comment": " Generate a random seed that updates 60 times per second.\nNote: The seed uses the current Unix time.\n",
                "type": "Signal Seed"
            },
            {
                "name": "randomSeedEvery",
                "comment": " Generate a random seed that updates every given timestep.\n",
                "type": "Time -> Signal Seed"
            },
            {
                "name": "run",
                "comment": " Create a running signal from an application that follows the Elm Architecture.\nThis is analogous to `application` and works better as it avoids issues with\n`Random.Extra.reduce`.\n\nHow to use:\n\n    main =\n      run initialModel actionGenerator update view\n",
                "type": "model -> Generator action -> (action -> model -> model) -> (model -> view) -> Signal view"
            }
        ],
        "binops": []
    },
    {
        "name": "Random.Task",
        "comment": " List of Task Generators\n\n# Generators\n@docs task, error, spawn\n\n# Timeout Generators\n@docs timeout, rangeLengthTimeout\n\n# Chaining Task Generators\n@docs sequence, parallel, optional\n\n# Generators that communicate with mailboxes\n@docs send, broadcast\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "broadcast",
                "comment": " Generate a task that broadcasts randomly generated values to a given address\nusing a given random generator\n",
                "type": "List (Address a) -> Generator a -> Generator (Task error ())"
            },
            {
                "name": "error",
                "comment": " Generate a failed task from a generator of error values\n",
                "type": "Generator error -> Generator (Task error value)"
            },
            {
                "name": "optional",
                "comment": " Generate a sequence of optional tasks that are run in sequence from a list\nof tasks\n",
                "type": "Generator (List (Task x value)) -> Generator (Task y (List value))"
            },
            {
                "name": "parallel",
                "comment": " Generate a sequence of tasks that are run in parallel from a list of tasks\n",
                "type": "Generator (List (Task error value)) -> Generator (Task error (List ThreadID))"
            },
            {
                "name": "rangeLengthTimeout",
                "comment": " Generate a timeout which times out at some point between a given minimum\nand maximum time\n",
                "type": "Time -> Time -> Generator (Task error ())"
            },
            {
                "name": "send",
                "comment": " Generate a task that sends randomly generated values to a given address\nusing a given random generator\n",
                "type": "Address a -> Generator a -> Generator (Task error ())"
            },
            {
                "name": "sequence",
                "comment": " Generate a sequence of tasks that are run in series from a list of tasks\n",
                "type": "Generator (List (Task error value)) -> Generator (Task error (List value))"
            },
            {
                "name": "spawn",
                "comment": " Generate a task that is spawned in some independent thread given a\ntask generator\n",
                "type": "Generator (Task x value) -> Generator (Task y ThreadID)"
            },
            {
                "name": "task",
                "comment": " Generate a successful task from a generator of successful values\n",
                "type": "Generator value -> Generator (Task error value)"
            },
            {
                "name": "timeout",
                "comment": " Generate a timeout of given time\n",
                "type": "Time -> Generator (Task error ())"
            }
        ],
        "binops": []
    },
    {
        "name": "Random.Set",
        "comment": " List of Random Set Generators\n\n# Generators\n@docs empty, singleton, set, notInSet\n\n# Combinators\n@docs select, selectWithDefault\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "empty",
                "comment": " Generator that always returns the empty set\n",
                "type": "Generator (Set comparable)"
            },
            {
                "name": "notInSet",
                "comment": " A generator that creates values not present in a given set.\n",
                "type": "Set comparable -> Generator comparable -> Generator comparable"
            },
            {
                "name": "select",
                "comment": " Generate values from a set.\nAnalogous to `Random.Extra.select` but with sets\n",
                "type": "Set comparable -> Generator (Maybe comparable)"
            },
            {
                "name": "selectWithDefault",
                "comment": " Generate values from a set or a default value.\nAnalogous to `Random.Extra.selectWithDefault` but with sets\n",
                "type": "comparable -> Set comparable -> Generator comparable"
            },
            {
                "name": "set",
                "comment": " Generate a set of at most the given size from a generator.\n\nThe size of a generated set is limited both by the integer provided and the\nnumber of unique values the generator can generate. It is very likely, but not\nguaranteed, that generated sets will be as big as the smaller of the two limits.\n",
                "type": "Int -> Generator comparable -> Generator (Set comparable)"
            },
            {
                "name": "singleton",
                "comment": " Generator that creates a singleton set from a generator\n",
                "type": "Generator comparable -> Generator (Set comparable)"
            }
        ],
        "binops": []
    },
    {
        "name": "Random.Extra",
        "comment": " Module providing extra functionality to the core Random module.\n\n# Constant Generators\n@docs constant\n\n# Generator Transformers\n@docs flattenList\n\n# Select\n@docs select, selectWithDefault, frequency, merge\n\n# Maps\nBecause `map` and `mapN` up through N=5 were added to the core Random\nlibrary in Elm 0.16, the versions below are aliases and are kept only\nfor compatibility with prior versions of this library.\n@docs map, map2, map3, map4, map5, map6, mapConstraint\n\n# Flat Maps\n@docs flatMap, flatMap2, flatMap3, flatMap4, flatMap5, flatMap6\n\n# Zips\n@docs zip, zip3, zip4, zip5, zip6\n\n# Reducers\n@docs reduce, fold\n\n# Chaining Generators\n@docs andMap, andThen\n\n# Filtering Generators\n@docs keepIf, dropIf\n\n# Functions that generate random values from Generators\n@docs generateN, quickGenerate, cappedGenerateUntil, generateIterativelyUntil, generateIterativelySuchThat, generateUntil, generateSuchThat\n\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "andMap",
                "comment": " Apply a generator of functions to a generator of values.\nUseful for chaining generators.\n",
                "type": "Generator (a -> b) -> Generator a -> Generator b"
            },
            {
                "name": "andThen",
                "comment": " An alias for `Random.andThen` in the standard library. This\nversion is kept for compatibility.\n",
                "type": "Generator a -> (a -> Generator b) -> Generator b"
            },
            {
                "name": "cappedGenerateUntil",
                "comment": " Generate iteratively a list of values from a generator until either\nthe given maxlength is reached or the predicate is satisfied.\n\n    cappedGenerateUntil maxLength predicate generator seed\n",
                "type": "Int -> (a -> Bool) -> Generator a -> Seed -> List a"
            },
            {
                "name": "constant",
                "comment": " Create a generator that always returns the same value.\n",
                "type": "a -> Generator a"
            },
            {
                "name": "dropIf",
                "comment": " Convert a generator into a generator that only generates values\nthat do not satisfy a given predicate.\n",
                "type": "(a -> Bool) -> Generator a -> Generator a"
            },
            {
                "name": "flatMap",
                "comment": "",
                "type": "(a -> Generator b) -> Generator a -> Generator b"
            },
            {
                "name": "flatMap2",
                "comment": "",
                "type": "(a -> b -> Generator c) -> Generator a -> Generator b -> Generator c"
            },
            {
                "name": "flatMap3",
                "comment": "",
                "type": "(a -> b -> c -> Generator d) -> Generator a -> Generator b -> Generator c -> Generator d"
            },
            {
                "name": "flatMap4",
                "comment": "",
                "type": "(a -> b -> c -> d -> Generator e) -> Generator a -> Generator b -> Generator c -> Generator d -> Generator e"
            },
            {
                "name": "flatMap5",
                "comment": "",
                "type": "(a -> b -> c -> d -> e -> Generator f) -> Generator a -> Generator b -> Generator c -> Generator d -> Generator e -> Generator f"
            },
            {
                "name": "flatMap6",
                "comment": "",
                "type": "(a -> b -> c -> d -> e -> f -> Generator g) -> Generator a -> Generator b -> Generator c -> Generator d -> Generator e -> Generator f -> Generator g"
            },
            {
                "name": "flattenList",
                "comment": " Turn a list of generators into a generator of lists.\n",
                "type": "List (Generator a) -> Generator (List a)"
            },
            {
                "name": "fold",
                "comment": " Alias for reduce.\n",
                "type": "(a -> b -> b) -> b -> Generator a -> Generator b"
            },
            {
                "name": "frequency",
                "comment": " Create a generator that chooses a generator from a tuple of generators\nbased on the provided likelihood. The likelihood of a given generator being\nchosen is its likelihood divided by the sum of all likelihood. A default\ngenerator must be provided in the case that the list is empty or that the\nsum of the likelihoods is 0. Note that the absolute values of the likelihoods\nis always taken.\n",
                "type": "List ( Float, Generator a ) -> Generator a -> Generator a"
            },
            {
                "name": "generateIterativelySuchThat",
                "comment": " Generate iteratively a list of values from a generator parametrized by\nthe value of the iterator until either the given maxlength is reached or\nthe predicate ceases to be satisfied.\n\n    generateIterativelySuchThat maxLength predicate constructor seed\n",
                "type": "Int -> (a -> Bool) -> (Int -> Generator a) -> Seed -> List a"
            },
            {
                "name": "generateIterativelyUntil",
                "comment": " Generate iteratively a list of values from a generator parametrized by\nthe value of the iterator until either the given maxlength is reached or\nthe predicate is satisfied.\n\n    generateIterativelyUntil maxLength predicate constructor seed\n",
                "type": "Int -> (a -> Bool) -> (Int -> Generator a) -> Seed -> List a"
            },
            {
                "name": "generateN",
                "comment": " Generate n values from a generator.\n",
                "type": "Int -> Generator a -> Seed -> List a"
            },
            {
                "name": "generateSuchThat",
                "comment": " Generate a value from a generator that satisfies a given predicate\n",
                "type": "(a -> Bool) -> Generator a -> Seed -> ( a, Seed )"
            },
            {
                "name": "generateUntil",
                "comment": " Generate a list of values from a generator until the given predicate\nis satisfied\n",
                "type": "(a -> Bool) -> Generator a -> Seed -> List a"
            },
            {
                "name": "keepIf",
                "comment": " Convert a generator into a generator that only generates values\nthat satisfy a given predicate.\nNote that if the predicate is unsatisfiable, the generator will not terminate.\n",
                "type": "(a -> Bool) -> Generator a -> Generator a"
            },
            {
                "name": "map",
                "comment": "",
                "type": "(a -> b) -> Generator a -> Generator b"
            },
            {
                "name": "map2",
                "comment": "",
                "type": "(a -> b -> c) -> Generator a -> Generator b -> Generator c"
            },
            {
                "name": "map3",
                "comment": "",
                "type": "(a -> b -> c -> d) -> Generator a -> Generator b -> Generator c -> Generator d"
            },
            {
                "name": "map4",
                "comment": "",
                "type": "(a -> b -> c -> d -> e) -> Generator a -> Generator b -> Generator c -> Generator d -> Generator e"
            },
            {
                "name": "map5",
                "comment": "",
                "type": "(a -> b -> c -> d -> e -> f) -> Generator a -> Generator b -> Generator c -> Generator d -> Generator e -> Generator f"
            },
            {
                "name": "map6",
                "comment": "",
                "type": "(a -> b -> c -> d -> e -> f -> g) -> Generator a -> Generator b -> Generator c -> Generator d -> Generator e -> Generator f -> Generator g"
            },
            {
                "name": "mapConstraint",
                "comment": " Apply a constraint onto a generator and returns both the input to\nthe constraint and the result of applying the constaint.\n",
                "type": "(a -> b) -> Generator a -> Generator ( a, b )"
            },
            {
                "name": "merge",
                "comment": " Choose between two generators with a 50-50 chance.\nUseful for merging two generators that cover different areas of the same type.\n",
                "type": "Generator a -> Generator a -> Generator a"
            },
            {
                "name": "quickGenerate",
                "comment": " Quickly generate a value from a generator disregarding seeds.\n",
                "type": "Generator a -> a"
            },
            {
                "name": "reduce",
                "comment": " Reduce a generator using a reducer and an initial value.\nNote that the initial value is always passed to the function;\nnot the previously generator value.\n",
                "type": "(a -> b -> b) -> b -> Generator a -> Generator b"
            },
            {
                "name": "select",
                "comment": " Generator that randomly selects an element from a list.\n",
                "type": "List a -> Generator (Maybe a)"
            },
            {
                "name": "selectWithDefault",
                "comment": " Generator that randomly selects an element from a list with a default value\n(in case you pass in an empty list).\n",
                "type": "a -> List a -> Generator a"
            },
            {
                "name": "zip",
                "comment": "",
                "type": "Generator a -> Generator b -> Generator ( a, b )"
            },
            {
                "name": "zip3",
                "comment": "",
                "type": "Generator a -> Generator b -> Generator c -> Generator ( a, b, c )"
            },
            {
                "name": "zip4",
                "comment": "",
                "type": "Generator a -> Generator b -> Generator c -> Generator d -> Generator ( a, b, c, d )"
            },
            {
                "name": "zip5",
                "comment": "",
                "type": "Generator a -> Generator b -> Generator c -> Generator d -> Generator e -> Generator ( a, b, c, d, e )"
            },
            {
                "name": "zip6",
                "comment": "",
                "type": "Generator a -> Generator b -> Generator c -> Generator d -> Generator e -> Generator f -> Generator ( a, b, c, d, e, f )"
            }
        ],
        "binops": []
    },
    {
        "name": "Random.Int",
        "comment": " List of Int Generators\n\n# Generators\n@docs anyInt, positiveInt, negativeInt, intGreaterThan, intLessThan\n",
        "unions": [],
        "aliases": [],
        "values": [
            {
                "name": "anyInt",
                "comment": " Generator that generates any int that can be generate by the\nrandom generator algorithm.\n",
                "type": "Generator Int"
            },
            {
                "name": "intGreaterThan",
                "comment": " Generator that generates an int greater than a given int\n",
                "type": "Int -> Generator Int"
            },
            {
                "name": "intLessThan",
                "comment": " Generator that generates an int less than a given int\n",
                "type": "Int -> Generator Int"
            },
            {
                "name": "negativeInt",
                "comment": " Generator that generates a negative int\n",
                "type": "Generator Int"
            },
            {
                "name": "positiveInt",
                "comment": " Generator that generates a positive int\n",
                "type": "Generator Int"
            }
        ],
        "binops": []
    }
]