ubstituir elementos de lista individuais no Haskel

Tenho uma lista de elementos e desejo atualizá-los:

deste:["Off","Off","Off","Off"]

para isso:["Off","Off","On","Off"]

Como sou um pouco novo em Haskell, tenho usado(x:xs)!!y para extrair e atualizar componentes individuais usando a função:

replace y z [] = []
replace y z (x:xs)
  | x==y           = z:replace y z xs
  | otherwise      = x:replace y z xs

e, em seguida, digite o seguinte em ghci:(replace "Off" "On" ["Off",'Off","Off","Off"]) !! 2

Eu recebo o seguinte:"On"

arece que consigo extrair e converter elementos de uma lista, mas não consigo obter uma lista com o único elemento convertid

Qualquer ajuda sobre esse assunto será apreciad

questionAnswers(9)

yourAnswerToTheQuestion