On 08.05.2015 18:48, Ulrike Fischer wrote: > Is this a bug? Or simply something one must remember when using > c-type arguments? interesting question. On the whole we have not burdened expl3 with a lot of checking to avoid it getting too slow, i.e., in case with very well defined rules it is up to the programmer not to violate them finite recursion (especially those that end up in quarks executing are something we made usually an exception as they are pretty nasty. as for the rule: "c" should not be misused to do an implicit "new" even though that obviously works for some data types (if you know the underlying coding). For the "prop" type that doesn't work as \c_empty_prop" is quite different from \relax so perhaps it is worth thinking of adding to functions for types like that always a quick initial check to see that the variable is a prop or rather at least not simply generated as a name from "c" of course it would be a test happening each and every time thoughts? frank