Tablice ze sztywną zmienną

Cóż, robiłem problem, w której funkcji używałem sztywnej zmiennej. Miałem pomysł wykorzystania tablic do tego problemu. Pomyślałem więc o użyciu tablic z taką samą sztywną zmienną jak funkcji, którą tworzyłem, ale nie mam pojęcia, jak utworzyć tablicę ze sztywną zmienną. Próbowałem następujących rzeczy, ale bez skutku:

rearrange ::  [Int] -> [a] -> [a]

rearrange l la = elems (f 1 posarr)    
  where
    b = length l
    listarr :: Array Int Int
    listarr = listArray (1,b) l
    arra :: Array Int  c
    arra = listArray (1,b) la
    posarr :: Array Int  c
    posarr = listArray (1,b) la
    f i posarr
      | (b < i) = posarr
      | otherwise = f (i+1) (posarr // [(listarr!i,arra!i)] )

Błąd, który otrzymuję, jest sztywny. Jakie jest możliwe rozwiązanie tego problemu? Podaj pomysł tworzenia tablic ze sztywnymi zmiennymi, takimi jak w poniższej funkcji, której użyłem

questionAnswers(2)

yourAnswerToTheQuestion