Express exact natural numbers in a type.
onlyExact1 : Nat (Only Nat1 maybeN) -> CaketakesOnlyExact1 nat10 is a compile-time error
add2 : Nat (Only n maybeN) -> Nat (ValueOnly (Nat2Plus n))
add2 nat2 is of type Nat (ValueOnly Nat4)
Sadly, while experimenting with type aliases, I discovered that type aliases can only expand so much.
compilingGetsKilled : Nat (N (Nat100Plus Nat93) x y)If a type alias is not fully expanded after ~192 tries,
the compilation stops
the elm-stuff can corrupt
101 + some n, which is at least 101.
102 + some n, which is at least 102.
103 + some n, which is at least 103.
104 + some n, which is at least 104.
105 + some n, which is at least 105.
106 + some n, which is at least 106.
107 + some n, which is at least 107.
108 + some n, which is at least 108.
109 + some n, which is at least 109.
10 + some n, which is at least 10.
110 + some n, which is at least 110.
111 + some n, which is at least 111.
112 + some n, which is at least 112.
113 + some n, which is at least 113.
114 + some n, which is at least 114.
115 + some n, which is at least 115.
116 + some n, which is at least 116.
117 + some n, which is at least 117.
118 + some n, which is at least 118.
119 + some n, which is at least 119.
11 + some n, which is at least 11.
120 + some n, which is at least 120.
121 + some n, which is at least 121.
122 + some n, which is at least 122.
123 + some n, which is at least 123.
124 + some n, which is at least 124.
125 + some n, which is at least 125.
126 + some n, which is at least 126.
127 + some n, which is at least 127.
128 + some n, which is at least 128.
129 + some n, which is at least 129.
12 + some n, which is at least 12.
130 + some n, which is at least 130.
131 + some n, which is at least 131.
132 + some n, which is at least 132.
133 + some n, which is at least 133.
134 + some n, which is at least 134.
135 + some n, which is at least 135.
136 + some n, which is at least 136.
137 + some n, which is at least 137.
138 + some n, which is at least 138.
139 + some n, which is at least 139.
13 + some n, which is at least 13.
140 + some n, which is at least 140.
141 + some n, which is at least 141.
142 + some n, which is at least 142.
143 + some n, which is at least 143.
144 + some n, which is at least 144.
145 + some n, which is at least 145.
146 + some n, which is at least 146.
147 + some n, which is at least 147.
148 + some n, which is at least 148.
149 + some n, which is at least 149.
14 + some n, which is at least 14.
150 + some n, which is at least 150.
151 + some n, which is at least 151.
152 + some n, which is at least 152.
153 + some n, which is at least 153.
154 + some n, which is at least 154.
155 + some n, which is at least 155.
156 + some n, which is at least 156.
157 + some n, which is at least 157.
158 + some n, which is at least 158.
159 + some n, which is at least 159.
15 + some n, which is at least 15.
160 + some n, which is at least 160.
161 + some n, which is at least 161.
162 + some n, which is at least 162.
163 + some n, which is at least 163.
164 + some n, which is at least 164.
165 + some n, which is at least 165.
166 + some n, which is at least 166.
167 + some n, which is at least 167.
168 + some n, which is at least 168.
169 + some n, which is at least 169.
16 + some n, which is at least 16.
170 + some n, which is at least 170.
171 + some n, which is at least 171.
172 + some n, which is at least 172.
173 + some n, which is at least 173.
174 + some n, which is at least 174.
175 + some n, which is at least 175.
176 + some n, which is at least 176.
177 + some n, which is at least 177.
178 + some n, which is at least 178.
179 + some n, which is at least 179.
17 + some n, which is at least 17.
180 + some n, which is at least 180.
181 + some n, which is at least 181.
182 + some n, which is at least 182.
183 + some n, which is at least 183.
184 + some n, which is at least 184.
185 + some n, which is at least 185.
186 + some n, which is at least 186.
187 + some n, which is at least 187.
188 + some n, which is at least 188.
189 + some n, which is at least 189.
18 + some n, which is at least 18.
190 + some n, which is at least 190.
191 + some n, which is at least 191.
192 + some n, which is at least 192.
19 + some n, which is at least 19.
1 + some n, which is at least 1.
20 + some n, which is at least 20.
21 + some n, which is at least 21.
22 + some n, which is at least 22.
23 + some n, which is at least 23.
24 + some n, which is at least 24.
25 + some n, which is at least 25.
26 + some n, which is at least 26.
27 + some n, which is at least 27.
28 + some n, which is at least 28.
29 + some n, which is at least 29.
2 + some n, which is at least 2.
30 + some n, which is at least 30.
31 + some n, which is at least 31.
32 + some n, which is at least 32.
33 + some n, which is at least 33.
34 + some n, which is at least 34.
35 + some n, which is at least 35.
36 + some n, which is at least 36.
37 + some n, which is at least 37.
38 + some n, which is at least 38.
39 + some n, which is at least 39.
3 + some n, which is at least 3.
40 + some n, which is at least 40.
41 + some n, which is at least 41.
42 + some n, which is at least 42.
43 + some n, which is at least 43.
44 + some n, which is at least 44.
45 + some n, which is at least 45.
46 + some n, which is at least 46.
47 + some n, which is at least 47.
48 + some n, which is at least 48.
49 + some n, which is at least 49.
4 + some n, which is at least 4.
50 + some n, which is at least 50.
51 + some n, which is at least 51.
52 + some n, which is at least 52.
53 + some n, which is at least 53.
54 + some n, which is at least 54.
55 + some n, which is at least 55.
56 + some n, which is at least 56.
57 + some n, which is at least 57.
58 + some n, which is at least 58.
59 + some n, which is at least 59.
5 + some n, which is at least 5.
60 + some n, which is at least 60.
61 + some n, which is at least 61.
62 + some n, which is at least 62.
63 + some n, which is at least 63.
64 + some n, which is at least 64.
65 + some n, which is at least 65.
66 + some n, which is at least 66.
67 + some n, which is at least 67.
68 + some n, which is at least 68.
69 + some n, which is at least 69.
6 + some n, which is at least 6.
70 + some n, which is at least 70.
71 + some n, which is at least 71.
72 + some n, which is at least 72.
73 + some n, which is at least 73.
74 + some n, which is at least 74.
75 + some n, which is at least 75.
76 + some n, which is at least 76.
77 + some n, which is at least 77.
78 + some n, which is at least 78.
79 + some n, which is at least 79.
7 + some n, which is at least 7.
80 + some n, which is at least 80.
81 + some n, which is at least 81.
82 + some n, which is at least 82.
83 + some n, which is at least 83.
84 + some n, which is at least 84.
85 + some n, which is at least 85.
86 + some n, which is at least 86.
87 + some n, which is at least 87.
88 + some n, which is at least 88.
89 + some n, which is at least 89.
8 + some n, which is at least 8.
90 + some n, which is at least 90.
91 + some n, which is at least 91.
92 + some n, which is at least 92.
93 + some n, which is at least 93.
94 + some n, which is at least 94.
95 + some n, which is at least 95.
96 + some n, which is at least 96.
97 + some n, which is at least 97.
98 + some n, which is at least 98.
99 + some n, which is at least 99.
9 + some n, which is at least 9.
Exact the natural number 0.
Exact the natural number 1.
Exact the natural number 10.
Exact the natural number 100.
Exact the natural number 101.
Exact the natural number 102.
Exact the natural number 103.
Exact the natural number 104.
Exact the natural number 105.
Exact the natural number 106.
Exact the natural number 107.
Exact the natural number 108.
Exact the natural number 109.
Exact the natural number 11.
Exact the natural number 110.
Exact the natural number 111.
Exact the natural number 112.
Exact the natural number 113.
Exact the natural number 114.
Exact the natural number 115.
Exact the natural number 116.
Exact the natural number 117.
Exact the natural number 118.
Exact the natural number 119.
Exact the natural number 12.
Exact the natural number 120.
Exact the natural number 121.
Exact the natural number 122.
Exact the natural number 123.
Exact the natural number 124.
Exact the natural number 125.
Exact the natural number 126.
Exact the natural number 127.
Exact the natural number 128.
Exact the natural number 129.
Exact the natural number 13.
Exact the natural number 130.
Exact the natural number 131.
Exact the natural number 132.
Exact the natural number 133.
Exact the natural number 134.
Exact the natural number 135.
Exact the natural number 136.
Exact the natural number 137.
Exact the natural number 138.
Exact the natural number 139.
Exact the natural number 14.
Exact the natural number 140.
Exact the natural number 141.
Exact the natural number 142.
Exact the natural number 143.
Exact the natural number 144.
Exact the natural number 145.
Exact the natural number 146.
Exact the natural number 147.
Exact the natural number 148.
Exact the natural number 149.
Exact the natural number 15.
Exact the natural number 150.
Exact the natural number 151.
Exact the natural number 152.
Exact the natural number 153.
Exact the natural number 154.
Exact the natural number 155.
Exact the natural number 156.
Exact the natural number 157.
Exact the natural number 158.
Exact the natural number 159.
Exact the natural number 16.
Exact the natural number 160.
Exact the natural number 161.
Exact the natural number 162.
Exact the natural number 163.
Exact the natural number 164.
Exact the natural number 165.
Exact the natural number 166.
Exact the natural number 167.
Exact the natural number 168.
Exact the natural number 169.
Exact the natural number 17.
Exact the natural number 170.
Exact the natural number 171.
Exact the natural number 172.
Exact the natural number 173.
Exact the natural number 174.
Exact the natural number 175.
Exact the natural number 176.
Exact the natural number 177.
Exact the natural number 178.
Exact the natural number 179.
Exact the natural number 18.
Exact the natural number 180.
Exact the natural number 181.
Exact the natural number 182.
Exact the natural number 183.
Exact the natural number 184.
Exact the natural number 185.
Exact the natural number 186.
Exact the natural number 187.
Exact the natural number 188.
Exact the natural number 189.
Exact the natural number 19.
Exact the natural number 190.
Exact the natural number 191.
Exact the natural number 192.
Exact the natural number 2.
Exact the natural number 20.
Exact the natural number 21.
Exact the natural number 22.
Exact the natural number 23.
Exact the natural number 24.
Exact the natural number 25.
Exact the natural number 26.
Exact the natural number 27.
Exact the natural number 28.
Exact the natural number 29.
Exact the natural number 3.
Exact the natural number 30.
Exact the natural number 31.
Exact the natural number 32.
Exact the natural number 33.
Exact the natural number 34.
Exact the natural number 35.
Exact the natural number 36.
Exact the natural number 37.
Exact the natural number 38.
Exact the natural number 39.
Exact the natural number 4.
Exact the natural number 40.
Exact the natural number 41.
Exact the natural number 42.
Exact the natural number 43.
Exact the natural number 44.
Exact the natural number 45.
Exact the natural number 46.
Exact the natural number 47.
Exact the natural number 48.
Exact the natural number 49.
Exact the natural number 5.
Exact the natural number 50.
Exact the natural number 51.
Exact the natural number 52.
Exact the natural number 53.
Exact the natural number 54.
Exact the natural number 55.
Exact the natural number 56.
Exact the natural number 57.
Exact the natural number 58.
Exact the natural number 59.
Exact the natural number 6.
Exact the natural number 60.
Exact the natural number 61.
Exact the natural number 62.
Exact the natural number 63.
Exact the natural number 64.
Exact the natural number 65.
Exact the natural number 66.
Exact the natural number 67.
Exact the natural number 68.
Exact the natural number 69.
Exact the natural number 7.
Exact the natural number 70.
Exact the natural number 71.
Exact the natural number 72.
Exact the natural number 73.
Exact the natural number 74.
Exact the natural number 75.
Exact the natural number 76.
Exact the natural number 77.
Exact the natural number 78.
Exact the natural number 79.
Exact the natural number 8.
Exact the natural number 80.
Exact the natural number 81.
Exact the natural number 82.
Exact the natural number 83.
Exact the natural number 84.
Exact the natural number 85.
Exact the natural number 86.
Exact the natural number 87.
Exact the natural number 88.
Exact the natural number 89.
Exact the natural number 9.
Exact the natural number 90.
Exact the natural number 91.
Exact the natural number 92.
Exact the natural number 93.
Exact the natural number 94.
Exact the natural number 95.
Exact the natural number 96.
Exact the natural number 97.
Exact the natural number 98.
Exact the natural number 99.
100 + some n, which is at least 100.