Hi, This is our current definition of the activation-service-type (in (gnu services)): (define activation-service-type (service-type (name 'activate) (extensions (list (service-extension boot-service-type gexps->activation-gexp))) (compose append) (extend second-argument))) Note that the the append procedure is used as the "compose" procedure. However, fold-services applies the "compose" procedure to a single list. What happens when you apply the append procedure to a single list? You get the same list back: scheme@(guile-user)> (define mylist '(1 2 3)) scheme@(guile-user)> (append mylist) $1 = (1 2 3) scheme@(guile-user)> (eq? mylist (append mylist)) $2 = #t The fold-services procedure always applies the "compose" procedure to a single list. So why does the activation-service-type use the append procedure as its "compose" procedure? Wouldn't it more accurately reflect our intent if we used the identity procedure instead? -- Chris