interesting the ELF file argument :-) ,i understand the idea, like a Turing machine that protect some part of ribbon...
it is the same thing with arrays
scheme@(guile-user)> (define vct '#(1 2 3))
scheme@(guile-user)> vct
#(1 2 3)
scheme@(guile-user)> (vector-set! vct 1 7)
ice-9/boot-9.scm:1669:16: In procedure raise-exception:
In procedure vector-set!: Wrong type argument in position 1 (expecting mutable vector): #(1 2 3)
works in Chicken scheme:
(define vct '#(1 2 3))
(vector-set! vct 1 7)
but no restrictions with lists in Guile:
scheme@(guile-user)> (define lst '(1 2 3))
scheme@(guile-user)> (set-car! lst 7)
scheme@(guile-user)> lst
(7 2 3)
which seems not logic.(but i recognize the behavior of Scheme of '80 even if i no more use set-car! and set-cdr!)
Damien