From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id QAGXO5oPEmNgygAAbAwnHQ (envelope-from ) for ; Fri, 02 Sep 2022 16:13:47 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id WBuSO5oPEmP/TAAA9RJhRA (envelope-from ) for ; Fri, 02 Sep 2022 16:13:46 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id B4461CD79 for ; Fri, 2 Sep 2022 16:13:46 +0200 (CEST) Received: from localhost ([::1]:34504 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oU7QX-0003m5-Su for larch@yhetil.org; Fri, 02 Sep 2022 10:13:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49772) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oU7OT-0001t8-3i for guix-devel@gnu.org; Fri, 02 Sep 2022 10:11:37 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:46084) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oU7OS-0006b0-KX; Fri, 02 Sep 2022 10:11:36 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=cEkXMUAtpBCn+LXCLh8oKVLSdDs2IqWs0QyE/mSAlDU=; b=GMDDfLhiJMkZqWAwyNI7 QZKJBCpPObckIMKsAaESPbjSxnh/UicaVGnua5omwLsQx247liCOnpxDMu3f1poDJz6H4+hNUIi4O uL5/0Bpxuyr80qw2uLIsPPM+B8UIbN7kmoJUfDtGPxS4Up7Iyjx+NFxOyTNlhZ41JYGQ2YArGPhB0 JJzL5T+qQBFui2jAcWZ18NEY85yl+Yju9MCjgJPu7Mnl9Do3426hlp5a3TwITWUVuO51zqBHrWAHV ZhPNQnsJ/5goWvhGcLjcoAFGJ6mbLPlebKNDqGx9x5+b7K/m4SJgu4xHjsACIZyNrTIwVgSM4VY5w qhw2RyK9DJFV/w==; Received: from [193.50.110.177] (port=60232 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oU7OR-00012m-2r; Fri, 02 Sep 2022 10:11:36 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: =?utf-8?Q?Th=C3=A9o?= Maxime Tyburn Cc: guix-devel@gnu.org Subject: Re: Idea: Function composition to declare operating-system References: <87edwylxe9.fsf@gmail.com> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: Sextidi 16 Fructidor an 230 de la =?utf-8?Q?R=C3=A9v?= =?utf-8?Q?olution=2C?= jour du Citron X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Fri, 02 Sep 2022 16:11:33 +0200 In-Reply-To: <87edwylxe9.fsf@gmail.com> (=?utf-8?Q?=22Th=C3=A9o?= Maxime Tyburn"'s message of "Mon, 29 Aug 2022 17:14:11 +0200") Message-ID: <87r10tvpbe.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1662128026; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=cEkXMUAtpBCn+LXCLh8oKVLSdDs2IqWs0QyE/mSAlDU=; b=H5tgsdQtXsXh5jRVmJY/e1fUGkvozn7x534EJmkcYM3A/wQrd+9AUFpjPwauWX1B6nCqfj 2seXVEiHxrmljjRuQd+HsUXEFaOuyzRHV2U6JrtuKDX5Q4VVBb0GpboxzyDpcU9oFGXgtU EnDzHIzLEUEqGyjQX3ZGXGqXb0K+20goEoFd28efKv73UYBBHn4WnZjq68tOLTe+p3d9bR RBWhTJRgUb/8yiV+iwEpSQaXV6hnMrtclKUMITD4SMbUrvpJrzslwUERXLPueXM9Zj5zri wg6Yq1o7+d52j9JuAf7t4m05MYr8cE62T37qlA7+Pf+zsWqu+OZwf1Hak2PJ5A== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1662128026; a=rsa-sha256; cv=none; b=KljRpzf7Nl/9KIhftbNeydRu6pIb6fouVWYV7FwEVxsBfhj8HfVJe31kIoNrrylKBAShR9 8Py89jxtpuK02xjw0WvAoxPnr194285BKJMr3LzDKAehoDcFj6xd7TdYLUXNK1YiL5o0HD M22kT0adbEqSBLsT34lXst4Ao6vQ3AE1bYc7AA6WW6Mu3U4NuaCqvBGIE9rttu93nvZnb8 u3VFuMuqJZAH9n8Euu0lr8zUUa5wzlHHORc1ttEw/P/tTkWxczZIZpHAm/m0b/2sJ11/kf XSoFhgzsBhRRxCq+NQ/QYELtaIqnZHKawCEhviFApvJLq5uKJSMgxAgp5IXfFg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gnu.org header.s=fencepost-gnu-org header.b=GMDDfLhi; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: -7.47 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gnu.org header.s=fencepost-gnu-org header.b=GMDDfLhi; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: B4461CD79 X-Spam-Score: -7.47 X-Migadu-Scanner: scn0.migadu.com X-TUID: JWzaJcJmafrl Hi Th=C3=A9o, Th=C3=A9o Maxime Tyburn skribis: > I experimented on a functional approach to the operating > system declaration. My goal was to be able to pass an operating-system > instance to a composition of functions, modifying it one after another > and returning the desired operating-system object. I find this approach > more convenient because it allows for better segmentation of the system > features. I achieved to make it work for the system declaration I > usually use and I=E2=80=99d like to share it with you. Neat! In some cases, having =E2=80=9Ctransformation=E2=80=9D functions is = clearer indeed. There=E2=80=99s a couple of them in the code, such as =E2=80=98virtualized-operating-system=E2=80=99, that make it easy to adapt = an OS config to a specific use case. Thanks for sharing! Ludo=E2=80=99.