From 13cc0d3d4814b4871b0e03fc0a522c135f3607e6 Mon Sep 17 00:00:00 2001 From: Alex Rice Date: Thu, 19 Sep 2019 15:33:07 +0100 Subject: feat: add n-ary either --- default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/default.nix b/default.nix index 9cd09e644028..2167b6e8b71f 100644 --- a/default.nix +++ b/default.nix @@ -123,8 +123,10 @@ in lib.fix (self: { }; }; - either = t1: t2: typedef "either<${t1.name},${t2.name}>" - (x: (self.type t1).check x || (self.type t2).check x); + eitherN = tn: typedef "either<${concatStringsSep ", " (map (x: x.name) tn)}>" + (x: any (t: (self.type t).check x) tn); + + either = t1: t2: self.eitherN [ t1 t2 ]; list = t: typedef' rec { name = "list<${t.name}>"; -- cgit 1.4.1