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
signature.asc
Description: PGP signature
