It works here in clm-3 if you substitute all the checks for the
various envelopes down in run with (env? envelope), ie.
(if (or (env? degree-env) (env? distance-env))
instead of plain
(if (or degree-env distance-env)
etc.
-anders