rewrite guile-gts with a pure scheme without c code