mirror of
				https://github.com/NotAShelf/nyxexprs.git
				synced 2025-10-31 11:02:37 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			460 lines
		
	
	
	
		
			15 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			460 lines
		
	
	
	
		
			15 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| diff --git i/src/alejandra/src/rules/attr_set.rs w/src/alejandra/src/rules/attr_set.rs
 | ||
| index 9459977..8b637a1 100644
 | ||
| --- i/src/alejandra/src/rules/attr_set.rs
 | ||
| +++ w/src/alejandra/src/rules/attr_set.rs
 | ||
| @@ -62,6 +62,8 @@ pub(crate) fn rule(
 | ||
|      steps.push_back(crate::builder::Step::Format(child));
 | ||
|      if vertical {
 | ||
|          steps.push_back(crate::builder::Step::Indent);
 | ||
| +    } else if items_count >= 1 {
 | ||
| +        steps.push_back(crate::builder::Step::Whitespace);
 | ||
|      }
 | ||
|  
 | ||
|      let mut item_index: usize = 0;
 | ||
| @@ -120,6 +122,8 @@ pub(crate) fn rule(
 | ||
|          steps.push_back(crate::builder::Step::Dedent);
 | ||
|          steps.push_back(crate::builder::Step::NewLine);
 | ||
|          steps.push_back(crate::builder::Step::Pad);
 | ||
| +    } else if items_count >= 1 {
 | ||
| +        steps.push_back(crate::builder::Step::Whitespace);
 | ||
|      }
 | ||
|      steps.push_back(crate::builder::Step::Format(child));
 | ||
|  
 | ||
| diff --git i/src/alejandra/src/rules/list.rs w/src/alejandra/src/rules/list.rs
 | ||
| index 3e33e14..df9b9e6 100644
 | ||
| --- i/src/alejandra/src/rules/list.rs
 | ||
| +++ w/src/alejandra/src/rules/list.rs
 | ||
| @@ -23,7 +23,9 @@ pub(crate) fn rule(
 | ||
|      steps.push_back(crate::builder::Step::Format(child));
 | ||
|      if vertical {
 | ||
|          steps.push_back(crate::builder::Step::Indent);
 | ||
| -    }
 | ||
| +   } else if items_count >= 1 {
 | ||
| +        steps.push_back(crate::builder::Step::Whitespace);
 | ||
| +   }
 | ||
|  
 | ||
|      let mut item_index: usize = 0;
 | ||
|      let mut inline_next_comment = false;
 | ||
| @@ -90,6 +92,8 @@ pub(crate) fn rule(
 | ||
|          steps.push_back(crate::builder::Step::Dedent);
 | ||
|          steps.push_back(crate::builder::Step::NewLine);
 | ||
|          steps.push_back(crate::builder::Step::Pad);
 | ||
| +    } else if items_count >= 1 {
 | ||
| +        steps.push_back(crate::builder::Step::Whitespace);
 | ||
|      }
 | ||
|      steps.push_back(crate::builder::Step::Format(child));
 | ||
|  
 | ||
| diff --git i/src/alejandra/tests/cases/apply/out.nix w/src/alejandra/tests/cases/apply/out.nix
 | ||
| index 77a7d97..7a0bd11 100644
 | ||
| --- i/src/alejandra/tests/cases/apply/out.nix
 | ||
| +++ w/src/alejandra/tests/cases/apply/out.nix
 | ||
| @@ -41,19 +41,19 @@
 | ||
|      name1 =
 | ||
|        function
 | ||
|        arg
 | ||
| -      {asdf = 1;};
 | ||
| +      { asdf = 1; };
 | ||
|  
 | ||
|      name2 =
 | ||
|        function
 | ||
|        arg
 | ||
| -      {asdf = 1;}
 | ||
| +      { asdf = 1; }
 | ||
|        argument;
 | ||
|  
 | ||
|      name3 =
 | ||
|        function
 | ||
|        arg
 | ||
| -      {asdf = 1;}
 | ||
| -      {qwer = 12345;}
 | ||
| +      { asdf = 1; }
 | ||
| +      { qwer = 12345; }
 | ||
|        argument;
 | ||
|    }
 | ||
|    {
 | ||
| @@ -79,7 +79,7 @@
 | ||
|      name4 =
 | ||
|        function
 | ||
|        arg
 | ||
| -      {asdf = 1;}
 | ||
| +      { asdf = 1; }
 | ||
|        {
 | ||
|          qwer = 12345;
 | ||
|          qwer2 = 54321;
 | ||
| @@ -88,21 +88,21 @@
 | ||
|    }
 | ||
|    {
 | ||
|      option1 =
 | ||
| -      function arg {asdf = 1;} {
 | ||
| +      function arg { asdf = 1; } {
 | ||
|          qwer = 12345;
 | ||
|          qwer2 = 54321;
 | ||
|        }
 | ||
|        lastArg;
 | ||
|  
 | ||
|      option2 =
 | ||
| -      function arg {asdf = 1;} {
 | ||
| +      function arg { asdf = 1; } {
 | ||
|          qwer = 12345;
 | ||
|          qwer2 = 54321;
 | ||
|        }
 | ||
|        lastArg;
 | ||
|  
 | ||
|      option3 =
 | ||
| -      function arg {asdf = 1;}
 | ||
| +      function arg { asdf = 1; }
 | ||
|        {
 | ||
|          qwer = 12345;
 | ||
|          qwer2 = 54321;
 | ||
| diff --git i/src/alejandra/tests/cases/attr_set/out.nix w/src/alejandra/tests/cases/attr_set/out.nix
 | ||
| index 18e6026..e5ac999 100644
 | ||
| --- i/src/alejandra/tests/cases/attr_set/out.nix
 | ||
| +++ w/src/alejandra/tests/cases/attr_set/out.nix
 | ||
| @@ -5,12 +5,12 @@
 | ||
|      a
 | ||
|      */
 | ||
|    }
 | ||
| -  {a = 1;}
 | ||
| +  { a = 1; }
 | ||
|    {
 | ||
|      a = 1;
 | ||
|    }
 | ||
|  
 | ||
| -  {b = 1;}
 | ||
| +  { b = 1; }
 | ||
|    {
 | ||
|      b = 1;
 | ||
|      /*
 | ||
| @@ -33,7 +33,7 @@
 | ||
|      */
 | ||
|    }
 | ||
|  
 | ||
| -  rec {c = 1;}
 | ||
| +  rec { c = 1; }
 | ||
|    rec {
 | ||
|      c = 1;
 | ||
|      /*
 | ||
| @@ -101,7 +101,7 @@
 | ||
|        a = {
 | ||
|          a = rec {
 | ||
|            a = {
 | ||
| -            a = rec {a = {a = rec {a = {a = rec {a = {};};};};};};
 | ||
| +            a = rec { a = { a = rec { a = { a = rec { a = {}; }; }; }; }; };
 | ||
|            };
 | ||
|          };
 | ||
|        };
 | ||
| diff --git i/src/alejandra/tests/cases/idioms_lib_2/out.nix w/src/alejandra/tests/cases/idioms_lib_2/out.nix
 | ||
| index 9911edf..2a3b2d8 100644
 | ||
| --- i/src/alejandra/tests/cases/idioms_lib_2/out.nix
 | ||
| +++ w/src/alejandra/tests/cases/idioms_lib_2/out.nix
 | ||
| @@ -387,7 +387,7 @@
 | ||
|    Type: string -> a -> a
 | ||
|    */
 | ||
|    warn =
 | ||
| -    if lib.elem (builtins.getEnv "NIX_ABORT_ON_WARN") ["1" "true" "yes"]
 | ||
| +    if lib.elem (builtins.getEnv "NIX_ABORT_ON_WARN") [ "1" "true" "yes" ]
 | ||
|      then msg: builtins.trace "[1;31mwarning: ${msg}[0m" (abort "NIX_ABORT_ON_WARN=true; warnings are treated as unrecoverable errors.")
 | ||
|      else msg: builtins.trace "[1;31mwarning: ${msg}[0m";
 | ||
|  
 | ||
| @@ -526,12 +526,12 @@
 | ||
|    toBaseDigits = base: i: let
 | ||
|      go = i:
 | ||
|        if i < base
 | ||
| -      then [i]
 | ||
| +      then [ i ]
 | ||
|        else let
 | ||
|          r = i - ((i / base) * base);
 | ||
|          q = (i - r) / base;
 | ||
|        in
 | ||
| -        [r] ++ go q;
 | ||
| +        [ r ] ++ go q;
 | ||
|    in
 | ||
|      assert (base >= 2);
 | ||
|      assert (i >= 0);
 | ||
| diff --git i/src/alejandra/tests/cases/idioms_nixos_1/out.nix w/src/alejandra/tests/cases/idioms_nixos_1/out.nix
 | ||
| index ae087c2..27f0329 100644
 | ||
| --- i/src/alejandra/tests/cases/idioms_nixos_1/out.nix
 | ||
| +++ w/src/alejandra/tests/cases/idioms_nixos_1/out.nix
 | ||
| @@ -33,7 +33,7 @@ in {
 | ||
|  
 | ||
|      boot.kernelPackages = mkOption {
 | ||
|        default = pkgs.linuxPackages;
 | ||
| -      type = types.unspecified // {merge = mergeEqualOption;};
 | ||
| +      type = types.unspecified // { merge = mergeEqualOption; };
 | ||
|        apply = kernelPackages:
 | ||
|          kernelPackages.extend (self: super: {
 | ||
|            kernel = super.kernel.override (originalArgs: {
 | ||
| @@ -134,7 +134,7 @@ in {
 | ||
|      boot.initrd.availableKernelModules = mkOption {
 | ||
|        type = types.listOf types.str;
 | ||
|        default = [];
 | ||
| -      example = ["sata_nv" "ext3"];
 | ||
| +      example = [ "sata_nv" "ext3" ];
 | ||
|        description = ''
 | ||
|          The set of kernel modules in the initial ramdisk used during the
 | ||
|          boot process.  This set must include all modules necessary for
 | ||
| @@ -263,22 +263,22 @@ in {
 | ||
|        })
 | ||
|  
 | ||
|        (mkIf (!config.boot.isContainer) {
 | ||
| -        system.build = {inherit kernel;};
 | ||
| +        system.build = { inherit kernel; };
 | ||
|  
 | ||
| -        system.modulesTree = [kernel] ++ config.boot.extraModulePackages;
 | ||
| +        system.modulesTree = [ kernel ] ++ config.boot.extraModulePackages;
 | ||
|  
 | ||
|          # Implement consoleLogLevel both in early boot and using sysctl
 | ||
|          # (so you don't need to reboot to have changes take effect).
 | ||
|          boot.kernelParams =
 | ||
| -          ["loglevel=${toString config.boot.consoleLogLevel}"]
 | ||
| -          ++ optionals config.boot.vesa ["vga=0x317" "nomodeset"];
 | ||
| +          [ "loglevel=${toString config.boot.consoleLogLevel}" ]
 | ||
| +          ++ optionals config.boot.vesa [ "vga=0x317" "nomodeset" ];
 | ||
|  
 | ||
|          boot.kernel.sysctl."kernel.printk" = mkDefault config.boot.consoleLogLevel;
 | ||
|  
 | ||
| -        boot.kernelModules = ["loop" "atkbd"];
 | ||
| +        boot.kernelModules = [ "loop" "atkbd" ];
 | ||
|  
 | ||
|          # The Linux kernel >= 2.6.27 provides firmware.
 | ||
| -        hardware.firmware = [kernel];
 | ||
| +        hardware.firmware = [ kernel ];
 | ||
|  
 | ||
|          # Create /etc/modules-load.d/nixos.conf, which is read by
 | ||
|          # systemd-modules-load.service to load required kernel modules.
 | ||
| @@ -287,8 +287,8 @@ in {
 | ||
|          };
 | ||
|  
 | ||
|          systemd.services.systemd-modules-load = {
 | ||
| -          wantedBy = ["multi-user.target"];
 | ||
| -          restartTriggers = [kernelModulesConf];
 | ||
| +          wantedBy = [ "multi-user.target" ];
 | ||
| +          restartTriggers = [ kernelModulesConf ];
 | ||
|            serviceConfig = {
 | ||
|              # Ignore failed module loads.  Typically some of the
 | ||
|              # modules in ‘boot.kernelModules’ are "nice to have but
 | ||
| diff --git i/src/alejandra/tests/cases/idioms_pkgs_1/out.nix w/src/alejandra/tests/cases/idioms_pkgs_1/out.nix
 | ||
| index dbee48d..129d59d 100644
 | ||
| --- i/src/alejandra/tests/cases/idioms_pkgs_1/out.nix
 | ||
| +++ w/src/alejandra/tests/cases/idioms_pkgs_1/out.nix
 | ||
| @@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 | ||
|      url = "example/${version}";
 | ||
|    };
 | ||
|    meta = with lib; {
 | ||
| -    maintainers = with maintainers; [someone];
 | ||
| +    maintainers = with maintainers; [ someone ];
 | ||
|      description = "something";
 | ||
|    };
 | ||
|  }
 | ||
| diff --git i/src/alejandra/tests/cases/idioms_pkgs_2/out.nix w/src/alejandra/tests/cases/idioms_pkgs_2/out.nix
 | ||
| index dd0a2b5..2448b6e 100644
 | ||
| --- i/src/alejandra/tests/cases/idioms_pkgs_2/out.nix
 | ||
| +++ w/src/alejandra/tests/cases/idioms_pkgs_2/out.nix
 | ||
| @@ -19,13 +19,13 @@ stdenv.mkDerivation rec {
 | ||
|    doCheck = true;
 | ||
|  
 | ||
|    passthru.tests = {
 | ||
| -    version = testVersion {package = hello;};
 | ||
| +    version = testVersion { package = hello; };
 | ||
|  
 | ||
|      invariant-under-noXlibs =
 | ||
|        testEqualDerivation
 | ||
|        "hello must not be rebuilt when environment.noXlibs is set."
 | ||
|        hello
 | ||
| -      (nixos {environment.noXlibs = true;}).pkgs.hello;
 | ||
| +      (nixos { environment.noXlibs = true; }).pkgs.hello;
 | ||
|    };
 | ||
|  
 | ||
|    meta = with lib; {
 | ||
| @@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
 | ||
|      homepage = "https://www.gnu.org/software/hello/manual/";
 | ||
|      changelog = "https://git.savannah.gnu.org/cgit/hello.git/plain/NEWS?h=v${version}";
 | ||
|      license = licenses.gpl3Plus;
 | ||
| -    maintainers = [maintainers.eelco];
 | ||
| +    maintainers = [ maintainers.eelco ];
 | ||
|      platforms = platforms.all;
 | ||
|    };
 | ||
|  }
 | ||
| diff --git i/src/alejandra/tests/cases/idioms_pkgs_3/out.nix w/src/alejandra/tests/cases/idioms_pkgs_3/out.nix
 | ||
| index ae087c2..27f0329 100644
 | ||
| --- i/src/alejandra/tests/cases/idioms_pkgs_3/out.nix
 | ||
| +++ w/src/alejandra/tests/cases/idioms_pkgs_3/out.nix
 | ||
| @@ -33,7 +33,7 @@ in {
 | ||
|  
 | ||
|      boot.kernelPackages = mkOption {
 | ||
|        default = pkgs.linuxPackages;
 | ||
| -      type = types.unspecified // {merge = mergeEqualOption;};
 | ||
| +      type = types.unspecified // { merge = mergeEqualOption; };
 | ||
|        apply = kernelPackages:
 | ||
|          kernelPackages.extend (self: super: {
 | ||
|            kernel = super.kernel.override (originalArgs: {
 | ||
| @@ -134,7 +134,7 @@ in {
 | ||
|      boot.initrd.availableKernelModules = mkOption {
 | ||
|        type = types.listOf types.str;
 | ||
|        default = [];
 | ||
| -      example = ["sata_nv" "ext3"];
 | ||
| +      example = [ "sata_nv" "ext3" ];
 | ||
|        description = ''
 | ||
|          The set of kernel modules in the initial ramdisk used during the
 | ||
|          boot process.  This set must include all modules necessary for
 | ||
| @@ -263,22 +263,22 @@ in {
 | ||
|        })
 | ||
|  
 | ||
|        (mkIf (!config.boot.isContainer) {
 | ||
| -        system.build = {inherit kernel;};
 | ||
| +        system.build = { inherit kernel; };
 | ||
|  
 | ||
| -        system.modulesTree = [kernel] ++ config.boot.extraModulePackages;
 | ||
| +        system.modulesTree = [ kernel ] ++ config.boot.extraModulePackages;
 | ||
|  
 | ||
|          # Implement consoleLogLevel both in early boot and using sysctl
 | ||
|          # (so you don't need to reboot to have changes take effect).
 | ||
|          boot.kernelParams =
 | ||
| -          ["loglevel=${toString config.boot.consoleLogLevel}"]
 | ||
| -          ++ optionals config.boot.vesa ["vga=0x317" "nomodeset"];
 | ||
| +          [ "loglevel=${toString config.boot.consoleLogLevel}" ]
 | ||
| +          ++ optionals config.boot.vesa [ "vga=0x317" "nomodeset" ];
 | ||
|  
 | ||
|          boot.kernel.sysctl."kernel.printk" = mkDefault config.boot.consoleLogLevel;
 | ||
|  
 | ||
| -        boot.kernelModules = ["loop" "atkbd"];
 | ||
| +        boot.kernelModules = [ "loop" "atkbd" ];
 | ||
|  
 | ||
|          # The Linux kernel >= 2.6.27 provides firmware.
 | ||
| -        hardware.firmware = [kernel];
 | ||
| +        hardware.firmware = [ kernel ];
 | ||
|  
 | ||
|          # Create /etc/modules-load.d/nixos.conf, which is read by
 | ||
|          # systemd-modules-load.service to load required kernel modules.
 | ||
| @@ -287,8 +287,8 @@ in {
 | ||
|          };
 | ||
|  
 | ||
|          systemd.services.systemd-modules-load = {
 | ||
| -          wantedBy = ["multi-user.target"];
 | ||
| -          restartTriggers = [kernelModulesConf];
 | ||
| +          wantedBy = [ "multi-user.target" ];
 | ||
| +          restartTriggers = [ kernelModulesConf ];
 | ||
|            serviceConfig = {
 | ||
|              # Ignore failed module loads.  Typically some of the
 | ||
|              # modules in ‘boot.kernelModules’ are "nice to have but
 | ||
| diff --git i/src/alejandra/tests/cases/inherit/out.nix w/src/alejandra/tests/cases/inherit/out.nix
 | ||
| index c3b983d..65da28b 100644
 | ||
| --- i/src/alejandra/tests/cases/inherit/out.nix
 | ||
| +++ w/src/alejandra/tests/cases/inherit/out.nix
 | ||
| @@ -7,7 +7,7 @@
 | ||
|        aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 | ||
|        ;
 | ||
|    }
 | ||
| -  {inherit b d;}
 | ||
| +  { inherit b d; }
 | ||
|    {
 | ||
|      inherit
 | ||
|        b
 | ||
| diff --git i/src/alejandra/tests/cases/inherit_from/out.nix w/src/alejandra/tests/cases/inherit_from/out.nix
 | ||
| index 0155df5..7252bc4 100644
 | ||
| --- i/src/alejandra/tests/cases/inherit_from/out.nix
 | ||
| +++ w/src/alejandra/tests/cases/inherit_from/out.nix
 | ||
| @@ -1,5 +1,5 @@
 | ||
|  [
 | ||
| -  {inherit (c) f h;}
 | ||
| +  { inherit (c) f h; }
 | ||
|    {
 | ||
|      inherit
 | ||
|        (c)
 | ||
| diff --git i/src/alejandra/tests/cases/key_value/out.nix w/src/alejandra/tests/cases/key_value/out.nix
 | ||
| index af2f520..f817892 100644
 | ||
| --- i/src/alejandra/tests/cases/key_value/out.nix
 | ||
| +++ w/src/alejandra/tests/cases/key_value/out.nix
 | ||
| @@ -4,7 +4,7 @@ rec
 | ||
|    a = 4;
 | ||
|    a = a: b;
 | ||
|  
 | ||
| -  a = {a = 1;};
 | ||
| +  a = { a = 1; };
 | ||
|  
 | ||
|    b = {
 | ||
|      a =
 | ||
| @@ -79,7 +79,7 @@ rec
 | ||
|        */
 | ||
|        ;
 | ||
|    };
 | ||
| -  j = a: {b = 1;};
 | ||
| +  j = a: { b = 1; };
 | ||
|    k = a: {
 | ||
|      b = 1;
 | ||
|      c = 2;
 | ||
| @@ -88,7 +88,7 @@ rec
 | ||
|    /*
 | ||
|    b
 | ||
|    */
 | ||
| -  {b = 1;};
 | ||
| +  { b = 1; };
 | ||
|    m = a:
 | ||
|    /*
 | ||
|    b
 | ||
| diff --git i/src/alejandra/tests/cases/lists/out.nix w/src/alejandra/tests/cases/lists/out.nix
 | ||
| index dedee64..43a9de3 100644
 | ||
| --- i/src/alejandra/tests/cases/lists/out.nix
 | ||
| +++ w/src/alejandra/tests/cases/lists/out.nix
 | ||
| @@ -1,11 +1,11 @@
 | ||
|  [
 | ||
| -  [1]
 | ||
| +  [ 1 ]
 | ||
|  
 | ||
|    [
 | ||
|      1
 | ||
|    ]
 | ||
|  
 | ||
| -  [b d]
 | ||
| +  [ b d ]
 | ||
|    [
 | ||
|      b
 | ||
|      d
 | ||
| diff --git i/src/alejandra/tests/cases/monsters_3/out.nix w/src/alejandra/tests/cases/monsters_3/out.nix
 | ||
| index 25ff805..fd242fb 100644
 | ||
| --- i/src/alejandra/tests/cases/monsters_3/out.nix
 | ||
| +++ w/src/alejandra/tests/cases/monsters_3/out.nix
 | ||
| @@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
 | ||
|      wrapGAppsHook4
 | ||
|      glib # for glib-compile-resources
 | ||
|    ];
 | ||
| -  buildInputs = [cairo glib gtk4 libadwaita pango];
 | ||
| +  buildInputs = [ cairo glib gtk4 libadwaita pango ];
 | ||
|    postPatch = ''
 | ||
|      patchShebangs build-aux/meson_post_install.py
 | ||
|      # https://gitlab.gnome.org/World/design/contrast/-/merge_requests/23
 | ||
| @@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
 | ||
|      description = "Checks whether the contrast between two colors meet the WCAG requirements";
 | ||
|      homepage = "https://gitlab.gnome.org/World/design/contrast";
 | ||
|      license = licenses.gpl3Plus;
 | ||
| -    maintainers = with maintainers; [jtojnar];
 | ||
| +    maintainers = with maintainers; [ jtojnar ];
 | ||
|      platforms = platforms.unix;
 | ||
|    };
 | ||
|  }
 | ||
| diff --git i/src/alejandra/tests/cases/with/out.nix w/src/alejandra/tests/cases/with/out.nix
 | ||
| index cd15509..b31b2f0 100644
 | ||
| --- i/src/alejandra/tests/cases/with/out.nix
 | ||
| +++ w/src/alejandra/tests/cases/with/out.nix
 | ||
| @@ -21,9 +21,9 @@
 | ||
|        c)
 | ||
|    (with b; cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc)
 | ||
|    (with b; cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc)
 | ||
| -  {a = with b; 1;}
 | ||
| -  {a = with b; 1 + 1;}
 | ||
| -  {a = with b; {c = 1;};}
 | ||
| +  { a = with b; 1; }
 | ||
| +  { a = with b; 1 + 1; }
 | ||
| +  { a = with b; { c = 1; }; }
 | ||
|    {
 | ||
|      a = with b; {
 | ||
|        c = 1;
 | ||
| @@ -40,7 +40,7 @@
 | ||
|      a = with b; 1;
 | ||
|      # comment
 | ||
|    }
 | ||
| -  (with a; with b; with c; {a = 1;})
 | ||
| +  (with a; with b; with c; { a = 1; })
 | ||
|    (with a;
 | ||
|      with b;
 | ||
|      with c; {
 |