Perhaps the standard Seqtype Data.Sequence. This is not exactly O (1), but it is pretty good:
index(your lookup) and adjust(your replace) - O (log (min (index, length - index)))
(><)(your append) is O (log (min (length1, length2)))
( , ), ( , ). , Seq , .