[{"name":"And","comment":" two parts as one\n\n@docs And\n\n\n## change\n\n@docs firstMap, secondMap\n\n","unions":[],"aliases":[{"name":"And","comment":" Both a first and second part, conveniently represented as a tuple.\n\nUsing this type instead of a tuple\nvisually unifies it with all the other types such as `List`, `Maybe`, or `Result`.\n\nThis in my opinion reads a tad better, especially as a type argument:\n\n    List (Maybe ( String, Int ))\n\nbecomes:\n\n    List (Maybe (And String Int))\n\n","args":["first","second"],"type":"( first, second )"}],"values":[{"name":"firstMap","comment":" Change the first part based on its current value\n","type":"(first -> firstMapped) -> And.And first second -> And.And firstMapped second"},{"name":"secondMap","comment":" Change the second part based on its current value\n","type":"(second -> secondMapped) -> And.And first second -> And.And first secondMapped"}],"binops":[]},{"name":"AndOr","comment":" One, the other or both.\n\n@docs AndOr\n\n\n## change\n\n@docs onBothAlter, onOnlyAlter\n\n\n## transform\n\n@docs justOnBoth, justOnOnly\n\n","unions":[{"name":"AndOr","comment":" Either [both](And#And) or only the [first or second](Or#Or).\n\nWhen (not) to use this? → [readme](https://dark.elm.dmy.fr/packages/lue-bird/elm-and-or/latest/)\n\n","args":["first","second"],"cases":[["Both",["And.And first second"]],["Only",["Or.Or first second"]]]}],"aliases":[],"values":[{"name":"justOnBoth","comment":" `Just` if both values are present, `Nothing` if only one is present\n\n    import Or\n\n\n    AndOr.Both ( 0, 1 ) |> AndOr.justOnBoth --> Just ( 0, 1 )\n\n    AndOr.Only (Or.First 0) |> AndOr.justOnBoth --> Nothing\n\n    AndOr.Only (Or.Second 1) |> AndOr.justOnBoth --> Nothing\n\nPrefer a `case..of` if you handle both cases\n\n","type":"AndOr.AndOr first second -> Maybe.Maybe (And.And first second)"},{"name":"justOnOnly","comment":" `Just` if only one value is present, `Nothing` if both are present\n\n    import Or\n\n\n    AndOr.Both ( 0, 1 ) |> AndOr.justOnOnly --> Nothing\n\n    AndOr.Only (Or.First 0) |> AndOr.justOnOnly --> Just (Or.First 0)\n\n    AndOr.Only (Or.Second 1) |> AndOr.justOnOnly --> Just (Or.Second 1)\n\n    AndOr.Only (Or.Second 1)\n        |> AndOr.justOnOnly\n        |> Maybe.andThen Or.justOnSecond\n    --> Just 1\n\nPrefer a `case..of` if you handle both cases\n\n","type":"AndOr.AndOr first second -> Maybe.Maybe (Or.Or first second)"},{"name":"onBothAlter","comment":" In case we have `Both`, change them based on their current values\n\n    import Or\n\n\n    AndOr.Only (Or.First \"hello\")\n        |> AndOr.onBothAlter (Tuple.mapFirst String.toUpper)\n    --> AndOr.Only (Or.First \"hello\")\n\n    AndOr.Both ( \"hello\", \"there\" )\n        |> AndOr.onBothAlter (Tuple.mapFirst String.toUpper)\n    --> AndOr.Both ( \"HELLO\", \"there\" )\n\nPrefer a `case..of` if you handle both cases\n\n","type":"(And.And first second -> And.And first second) -> AndOr.AndOr first second -> AndOr.AndOr first second"},{"name":"onOnlyAlter","comment":" In case we have `Only` one of them, change it based on its current value\n\n    import Or\n\n\n    AndOr.Only (Or.First \"hello\")\n        |> AndOr.onOnlyAlter (Or.onFirstMap String.toUpper)\n    --> AndOr.Only (Or.First \"HELLO\")\n\n    AndOr.Both ( \"hello\", \"there\" )\n        |> AndOr.onOnlyAlter (Or.onFirstMap String.toUpper)\n    --> AndOr.Both ( \"hello\", \"there\" )\n\nPrefer a `case..of` if you handle both cases\n\n","type":"(Or.Or first second -> Or.Or first second) -> AndOr.AndOr first second -> AndOr.AndOr first second"}],"binops":[]},{"name":"Or","comment":" One or the other.\n\n@docs Or\n\n\n## observe\n\n@docs value\n\n\n## change\n\n@docs onFirstMap, onSecondMap\n\n\n## transform\n\n@docs justOnFirst, justOnSecond\n\n","unions":[{"name":"Or","comment":" One or the other.\n\nWhen (not) to use this? → [readme](https://dark.elm.dmy.fr/packages/lue-bird/elm-and-or/latest/)\n\n","args":["first","second"],"cases":[["First",["first"]],["Second",["second"]]]}],"aliases":[],"values":[{"name":"justOnFirst","comment":" `Just` if the first value is present, `Nothing` if the second is present\n\n    Or.First 0 |> Or.justOnFirst --> Just 0\n\n    Or.Second 1 |> Or.justOnFirst --> Nothing\n\nPrefer a `case..of` if you handle both cases\n\n","type":"Or.Or first second_ -> Maybe.Maybe first"},{"name":"justOnSecond","comment":" `Just` if the second value is present, `Nothing` if the first is present\n\n    Or.First 0 |> Or.justOnSecond --> Nothing\n\n    Or.Second 1 |> Or.justOnSecond --> Just 1\n\nPrefer a `case..of` if you handle both cases\n\n","type":"Or.Or first_ second -> Maybe.Maybe second"},{"name":"onFirstMap","comment":" In case it's the `First`, change it based on it's current value\n\n    Or.First \"hello\" |> Or.onFirstMap String.toUpper\n    --> Or.First \"HELLO\"\n\n    Or.Second \"hello\" |> Or.onFirstMap String.toUpper\n    --> Or.Second \"hello\"\n\nPrefer a `case..of` if you handle both cases\n\n","type":"(first -> firstMapped) -> Or.Or first second -> Or.Or firstMapped second"},{"name":"onSecondMap","comment":" In case it's the `Second`, change it based on it's current value\n\n    Or.First \"hello\" |> Or.onSecondMap String.toUpper\n    --> Or.First \"hello\"\n\n    Or.Second \"hello\" |> Or.onSecondMap String.toUpper\n    --> Or.Second \"HELLO\"\n\nPrefer a `case..of` if you handle both cases\n\n","type":"(second -> secondMapped) -> Or.Or first second -> Or.Or first secondMapped"},{"name":"value","comment":" Treat the values from the `First` and `Second` case equally\n\n    [ Or.First 0, Or.Second 1 ] |> List.map Or.value\n    --> [ 0, 1 ]\n\n","type":"Or.Or value value -> value"}],"binops":[]}]