Eval in a function

yes i had noticed about the top to bottom evaluation and moved the code to the good place (seems i had not this problem in Guile?) and try the
#lang racket/load it works but i cannot use it with my
#lang reader "SRFI-105.rkt"
if i put #lang racket/load replacing #lang racket it does not work with the srfi 105 code reader and parser.

i got this error:

Welcome to DrRacket, version 8.7 [cs].
Language: reader "SRFI-105.rkt", with debugging; memory limit: 8192 MB.
. . ../../../../../../../../Applications/Racket v8.7/collects/compiler/private/cm-minimal.rkt:741:23: standard-module-name-resolver: collection not found
for module path: racket/lang/lang/reader
collection: "racket/lang/lang"
in collection directories:
/Users/mattei/Library/Racket/8.7/collects
/Applications/Racket v8.7/collects/
... [170 additional linked and package directories]
no package suggestions are available .

Interactions disabled.

my SRFI-105.rkt begin like this:



#lang racket/lang  ;; use to be racket
(compile-enforce-module-constants #f)
(require syntax/strip-context)

(provide (rename-out [literal-read read]
                     [literal-read-syntax read-syntax]))


(define (literal-read in)
  (syntax->datum
   (literal-read-syntax #f in)))
 
(define (literal-read-syntax src in)
  
  (define lst-code (process-input-code-tail-rec in))

  (strip-context `(module anything racket ,@lst-code)))
 

;; read all the expression of program
 
...