{"comments":null,"declarations":[{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":"m","tag":"TypeVar"}},"sourceSpan":{"end":[47,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[47,3]},"title":"mempty"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Unit"],"Unit"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[50,16],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[49,1]},"title":"monoidUnit"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Data","Ordering"],"Ordering"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[53,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[52,1]},"title":"monoidOrdering"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"b","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"b","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[56,20],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[55,1]},"title":"monoidFn"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"String"],"tag":"TypeConstructor"}],"tag":"TypeApp"}},"sourceSpan":{"end":[59,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[58,1]},"title":"monoidString"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Array"],"tag":"TypeConstructor"},{"annotation":[],"contents":"a","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[62,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[61,1]},"title":"monoidArray"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"list","tag":"TypeVar"}],"constraintClass":[["Prim","RowList"],"RowToList"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"list","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"MonoidRecord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"Monoid"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[65,46],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[64,1]},"title":"monoidRecord"}],"comments":"A `Monoid` is a `Semigroup` with a value `mempty`, which is both a\nleft and right unit for the associative operation `<>`:\n\n- Left unit: `(mempty <> x) = x`\n- Right unit: `(x <> mempty) = x`\n\n`Monoid`s are commonly used as the result of fold operations, where\n`<>` is used to combine individual results, and `mempty` gives the result\nof folding an empty collection of elements.\n\n### Newtypes for Monoid\n\nSome types (e.g. `Int`, `Boolean`) can implement multiple law-abiding\ninstances for `Monoid`. Let's use `Int` as an example\n1. `<>` could be `+` and `mempty` could be `0`\n2. `<>` could be `*` and `mempty` could be `1`.\n\nTo clarify these ambiguous situations, one should use the newtypes\ndefined in `Data.Monoid.<NewtypeName>` modules.\n\nIn the above ambiguous situation, we could use `Additive`\nfor the first situation or `Multiplicative` for the second one.\n","info":{"arguments":[["m",null]],"declType":"typeClass","fundeps":[],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup"],"Semigroup"],"constraintData":null,"constraintKindArgs":[]}]},"kind":null,"sourceSpan":{"end":[47,14],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[46,1]},"title":"Monoid"},{"children":[],"comments":"Append a value to itself a certain number of times. For the\n`Multiplicative` type, and for a non-negative power, this is the same as\nnormal number exponentiation.\n\nIf the second argument is negative this function will return `mempty`\n(*unlike* normal number exponentiation). The `Monoid` constraint alone\nis not enough to write a `power` function with the property that `power x\nn` cancels with `power x (-n)`, i.e. `power x n <> power x (-n) = mempty`.\nFor that, we would additionally need the ability to invert elements, i.e.\na Group.\n\n```purescript\npower [1,2] 3    == [1,2,1,2,1,2]\npower [1,2] 1    == [1,2]\npower [1,2] 0    == []\npower [1,2] (-3) == []\n```\n\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"m","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Int"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":"m","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[85,45],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[85,1]},"title":"power"},{"children":[],"comments":"Allow or \"truncate\" a Monoid to its `mempty` value based on a condition.\n","info":{"declType":"value","type":{"annotation":[],"contents":{"identifier":"m","kind":null,"skolem":null,"type":{"annotation":[],"contents":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"m","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintData":null,"constraintKindArgs":[]},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Boolean"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":"m","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"m","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"ConstrainedType"},"visibility":"TypeVarInvisible"},"tag":"ForAll"}},"kind":null,"sourceSpan":{"end":[96,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[96,1]},"title":"guard"},{"children":[{"comments":null,"info":{"declType":"typeClassMember","type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Type","Proxy"],"Proxy"],"tag":"TypeConstructor"},{"annotation":[],"contents":"rowlist","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Record"],"tag":"TypeConstructor"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[104,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[104,3]},"title":"memptyRecord"},{"comments":null,"info":{"declType":"instance","dependencies":[],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"MonoidRecord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim","RowList"],"Nil"],"tag":"TypeConstructor"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"tag":"REmpty"}],"tag":"TypeApp"}},"sourceSpan":{"end":[107,22],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[106,1]},"title":"monoidRecordNil"},{"comments":null,"info":{"declType":"instance","dependencies":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"}],"constraintClass":[["Data","Symbol"],"IsSymbol"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"focus","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"Monoid"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"key","tag":"TypeVar"},{"annotation":[],"contents":"focus","tag":"TypeVar"},{"annotation":[],"contents":"subrowTail","tag":"TypeVar"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"constraintClass":[["Prim","Row"],"Cons"],"constraintData":null,"constraintKindArgs":[]},{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rowlistTail","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"subrowTail","tag":"TypeVar"}],"constraintClass":[["Data","Monoid"],"MonoidRecord"],"constraintData":null,"constraintKindArgs":[]}],"type":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Data","Monoid"],"MonoidRecord"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"Cons"],"tag":"TypeConstructor"},{"annotation":[],"contents":"key","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"focus","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"rowlistTail","tag":"TypeVar"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":"row","tag":"TypeVar"}],"tag":"TypeApp"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"tag":"TypeApp"}},"sourceSpan":{"end":[120,53],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[109,1]},"title":"monoidRecordCons"}],"comments":"A class for records where all fields have `Monoid` instances, used to\nimplement the `Monoid` instance for records.\n","info":{"arguments":[["rowlist",null],["row",null],["subrow",null]],"declType":"typeClass","fundeps":[[["rowlist"],["row","subrow"]]],"superclasses":[{"constraintAnn":[],"constraintArgs":[{"annotation":[],"contents":"rowlist","tag":"TypeVar"},{"annotation":[],"contents":"row","tag":"TypeVar"},{"annotation":[],"contents":"subrow","tag":"TypeVar"}],"constraintClass":[["Data","Semigroup"],"SemigroupRecord"],"constraintData":null,"constraintKindArgs":[]}]},"kind":{"keyword":"class","kind":{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim","RowList"],"RowList"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Function"],"tag":"TypeConstructor"},{"annotation":[],"contents":[{"annotation":[],"contents":[["Prim"],"Row"],"tag":"TypeConstructor"},{"annotation":[],"contents":[["Prim"],"Type"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"},{"annotation":[],"contents":[["Prim"],"Constraint"],"tag":"TypeConstructor"}],"tag":"TypeApp"}],"tag":"TypeApp"}],"tag":"TypeApp"}},"sourceSpan":{"end":[104,49],"name":"../../../support/bower_components/purescript-prelude/src/Data/Monoid.purs","start":[103,1]},"title":"MonoidRecord"}],"name":"Data.Monoid","reExports":[]}