sbclPackages.* usage question

Hi, I was wondering how you generally use sbclPackages. I have tried with both a flake.nix and a shell.nix but I don’t understand how you use the packages you include in those environments in either your repl with sbcl or in a common lisp project. I’m kind of new to common lisp so it might sound simple but I really don’t find any informations on this and I really want to make use of nix for that.

I have validated that both the shell.nix work and flake.nix work and tried multiple options but as this is kind of a niche topic, I haven’t found any documentation on this specifically. Most people simply seem to use quicklisp (ql:quickload :name-of-package), but from my understanding this downloads the package from quicklisp. It doesn’t use the package that should be installed from either the flake environment or the shell environment (which is the opposite of my goal).

Are you supposed to do a require (require :name-of-package) like you do in emacs lisp with packages you installed from nix or something else ?

If you can point me to documentations or if you have any pointers that would be great.

"$(
  nix-build --no-out-link  -E 'let
    pkgs = import <nixpkgs> {}; in
  pkgs.sbcl.withPackages (ps: [
    ps.alexandria
  ])'
)"/bin/sbcl \
--noinform --non-interactive \
--eval '(require :asdf)' \
--eval '(asdf:load-system "alexandria")' \
--eval '(print
  (alexandria:read-file-into-string
   "/etc/hostname"))'
"localhost
" 

I don’t really use nix-shell (and avoid flakes) though.