MackeyRMS / elm-accessors / Tuple.Accessors

fst : Base.Lens_ ls ( a, two ) ( b, two ) a b x y

Lens over the first component of a Tuple

import Base exposing (get, set, map)
import Tuple.Accessors as Tuple

charging : (String, Int)
charging = ("It's over", 1)

get Tuple.fst charging
--> "It's over"

set Tuple.fst "It's over" charging
--> ("It's over", 1)

map Tuple.fst (\s -> String.toUpper s ++ "!!!") charging
--> ("IT'S OVER!!!", 1)

snd : Base.Lens_ ls ( one, a ) ( one, b ) a b x y

import Base exposing (get, set, map)
import Tuple.Accessors as Tuple

meh : (String, Int)
meh = ("It's over", 1)

get Tuple.snd meh
--> 1

set Tuple.snd 1125 meh
--> ("It's over", 1125)

meh
    |> set Tuple.snd 1125
    |> map Tuple.fst (\s -> String.toUpper s ++ "!!!")
    |> map Tuple.snd ((*) 8)
--> ("IT'S OVER!!!", 9000)