func scm_set_bang(args *goscm.Pair, env *goscm.Environ) (goscm.SCMT, error) { symb := args.Car.(*goscm.Symbol) val, err := args.Cdr.(*goscm.Pair).Car.Eval(env) if err != nil { return goscm.SCM_Nil, err } return symb, env.Set(symb, val) }