- if (ly_is_procedure (data) || is_unpure_pure_container (data))
- data = ly_make_simple_closure (scm_list_1 (data));
- else if (is_simple_closure (data))
- data = simple_closure_expression (data);
+ if (ly_is_procedure (data) || Unpure_pure_container::unsmob (data))
+ data = Simple_closure::make_smob (scm_list_1 (data));
+ else if (Simple_closure *sc = Simple_closure::unsmob (data))
+ data = sc->expression ();