|
6 | 6 | inBounds = l: builtins.isList l && builtins.length l > n && n >= 0; |
7 | 7 | in |
8 | 8 | { |
9 | | - get = |
10 | | - l: |
11 | | - if inBounds l then |
12 | | - bend.right (builtins.elemAt l n) |
13 | | - else |
14 | | - bend.left l; |
| 9 | + get = l: if inBounds l then bend.right (builtins.elemAt l n) else bend.left l; |
15 | 10 | set = |
16 | 11 | l: v: |
17 | 12 | if inBounds l then |
18 | | - bend.right ( |
19 | | - builtins.genList (i: if i == n then v else builtins.elemAt l i) (builtins.length l) |
20 | | - ) |
| 13 | + bend.right (builtins.genList (i: if i == n then v else builtins.elemAt l i) (builtins.length l)) |
21 | 14 | else |
22 | 15 | bend.left l; |
23 | 16 | }; |
|
78 | 71 | results = map lens.get s; |
79 | 72 | hasError = builtins.any (r: r ? left) results; |
80 | 73 | in |
81 | | - if hasError then |
82 | | - bend.left results |
83 | | - else |
84 | | - bend.right (map (r: r.right) results); |
| 74 | + if hasError then bend.left results else bend.right (map (r: r.right) results); |
85 | 75 | set = |
86 | 76 | s: vs: |
87 | 77 | if !builtins.isList s || !builtins.isList vs || builtins.length s != builtins.length vs then |
|
92 | 82 | results = builtins.genList (i: lens.get (builtins.elemAt vs i)) n; |
93 | 83 | hasError = builtins.any (r: r ? left) results; |
94 | 84 | in |
95 | | - if hasError then |
96 | | - bend.left results |
97 | | - else |
98 | | - bend.right (map (r: r.right) results); |
| 85 | + if hasError then bend.left results else bend.right (map (r: r.right) results); |
99 | 86 | }; |
100 | 87 |
|
101 | 88 | atLeast = n: lens: { |
102 | 89 | get = |
103 | 90 | s: |
104 | | - if !builtins.isList s then bend.left s |
105 | | - else if builtins.length s < n then bend.left s |
106 | | - else (each lens).get s; |
| 91 | + if !builtins.isList s then |
| 92 | + bend.left s |
| 93 | + else if builtins.length s < n then |
| 94 | + bend.left s |
| 95 | + else |
| 96 | + (each lens).get s; |
107 | 97 | set = |
108 | 98 | s: vs: |
109 | | - if !builtins.isList s then bend.left s |
110 | | - else if builtins.length s < n then bend.left s |
111 | | - else (each lens).set s vs; |
| 99 | + if !builtins.isList s then |
| 100 | + bend.left s |
| 101 | + else if builtins.length s < n then |
| 102 | + bend.left s |
| 103 | + else |
| 104 | + (each lens).set s vs; |
112 | 105 | }; |
113 | 106 |
|
114 | 107 | some = lens: atLeast 1 lens; |
115 | 108 |
|
116 | 109 | many = lens: { |
117 | 110 | get = |
118 | 111 | s: |
119 | | - if !builtins.isList s then bend.left s |
120 | | - else if s == [ ] then bend.right [ ] |
121 | | - else (each lens).get s; |
| 112 | + if !builtins.isList s then |
| 113 | + bend.left s |
| 114 | + else if s == [ ] then |
| 115 | + bend.right [ ] |
| 116 | + else |
| 117 | + (each lens).get s; |
122 | 118 | set = |
123 | 119 | s: vs: |
124 | | - if !builtins.isList s || !builtins.isList vs then bend.left s |
125 | | - else if s == [ ] && vs == [ ] then bend.right [ ] |
126 | | - else (each lens).set s vs; |
| 120 | + if !builtins.isList s || !builtins.isList vs then |
| 121 | + bend.left s |
| 122 | + else if s == [ ] && vs == [ ] then |
| 123 | + bend.right [ ] |
| 124 | + else |
| 125 | + (each lens).set s vs; |
127 | 126 | }; |
128 | 127 |
|
129 | 128 | exactly = n: lens: { |
130 | 129 | get = |
131 | 130 | s: |
132 | | - if !builtins.isList s then bend.left s |
133 | | - else if builtins.length s != n then bend.left s |
134 | | - else (each lens).get s; |
| 131 | + if !builtins.isList s then |
| 132 | + bend.left s |
| 133 | + else if builtins.length s != n then |
| 134 | + bend.left s |
| 135 | + else |
| 136 | + (each lens).get s; |
135 | 137 | set = |
136 | 138 | s: vs: |
137 | | - if !builtins.isList s then bend.left s |
138 | | - else if builtins.length s != n then bend.left s |
139 | | - else (each lens).set s vs; |
| 139 | + if !builtins.isList s then |
| 140 | + bend.left s |
| 141 | + else if builtins.length s != n then |
| 142 | + bend.left s |
| 143 | + else |
| 144 | + (each lens).set s vs; |
140 | 145 | }; |
141 | 146 |
|
142 | 147 | mapKey = f: { |
|
0 commit comments