Express exact natural numbers in a type.
onlyExact1 : Nat (ArgIn min Nat1 ifN_) -> CaketakesOnlyExact1 nat10 is a compile-time erroradd2 : Nat (ArgIn min max ifN_) -> Nat (In (Nat2Plus min) (Nat4Plus max))add2 nat2 is of type Nat (In Nat4 (Nat4Plus a_))Sadly, while experimenting with type aliases, I discovered that type aliases can only expand so much.
compilingGetsKilled : Nat (N (Nat100Plus Nat93) isA_ isB_)If a type alias is not fully expanded after ~192 tries,
the compilation stops
the elm-stuff can corrupt
101 + some natural number n.
102 + some natural number n.
103 + some natural number n.
104 + some natural number n.
105 + some natural number n.
106 + some natural number n.
107 + some natural number n.
108 + some natural number n.
109 + some natural number n.
10 + some natural number n.
110 + some natural number n.
111 + some natural number n.
112 + some natural number n.
113 + some natural number n.
114 + some natural number n.
115 + some natural number n.
116 + some natural number n.
117 + some natural number n.
118 + some natural number n.
119 + some natural number n.
11 + some natural number n.
120 + some natural number n.
121 + some natural number n.
122 + some natural number n.
123 + some natural number n.
124 + some natural number n.
125 + some natural number n.
126 + some natural number n.
127 + some natural number n.
128 + some natural number n.
129 + some natural number n.
12 + some natural number n.
130 + some natural number n.
131 + some natural number n.
132 + some natural number n.
133 + some natural number n.
134 + some natural number n.
135 + some natural number n.
136 + some natural number n.
137 + some natural number n.
138 + some natural number n.
139 + some natural number n.
13 + some natural number n.
140 + some natural number n.
141 + some natural number n.
142 + some natural number n.
143 + some natural number n.
144 + some natural number n.
145 + some natural number n.
146 + some natural number n.
147 + some natural number n.
148 + some natural number n.
149 + some natural number n.
14 + some natural number n.
150 + some natural number n.
151 + some natural number n.
152 + some natural number n.
153 + some natural number n.
154 + some natural number n.
155 + some natural number n.
156 + some natural number n.
157 + some natural number n.
158 + some natural number n.
159 + some natural number n.
15 + some natural number n.
160 + some natural number n.
16 + some natural number n.
17 + some natural number n.
18 + some natural number n.
19 + some natural number n.
1 + some natural number n.
20 + some natural number n.
21 + some natural number n.
22 + some natural number n.
23 + some natural number n.
24 + some natural number n.
25 + some natural number n.
26 + some natural number n.
27 + some natural number n.
28 + some natural number n.
29 + some natural number n.
2 + some natural number n.
30 + some natural number n.
31 + some natural number n.
32 + some natural number n.
33 + some natural number n.
34 + some natural number n.
35 + some natural number n.
36 + some natural number n.
37 + some natural number n.
38 + some natural number n.
39 + some natural number n.
3 + some natural number n.
40 + some natural number n.
41 + some natural number n.
42 + some natural number n.
43 + some natural number n.
44 + some natural number n.
45 + some natural number n.
46 + some natural number n.
47 + some natural number n.
48 + some natural number n.
49 + some natural number n.
4 + some natural number n.
50 + some natural number n.
51 + some natural number n.
52 + some natural number n.
53 + some natural number n.
54 + some natural number n.
55 + some natural number n.
56 + some natural number n.
57 + some natural number n.
58 + some natural number n.
59 + some natural number n.
5 + some natural number n.
60 + some natural number n.
61 + some natural number n.
62 + some natural number n.
63 + some natural number n.
64 + some natural number n.
65 + some natural number n.
66 + some natural number n.
67 + some natural number n.
68 + some natural number n.
69 + some natural number n.
6 + some natural number n.
70 + some natural number n.
71 + some natural number n.
72 + some natural number n.
73 + some natural number n.
74 + some natural number n.
75 + some natural number n.
76 + some natural number n.
77 + some natural number n.
78 + some natural number n.
79 + some natural number n.
7 + some natural number n.
80 + some natural number n.
81 + some natural number n.
82 + some natural number n.
83 + some natural number n.
84 + some natural number n.
85 + some natural number n.
86 + some natural number n.
87 + some natural number n.
88 + some natural number n.
89 + some natural number n.
8 + some natural number n.
90 + some natural number n.
91 + some natural number n.
92 + some natural number n.
93 + some natural number n.
94 + some natural number n.
95 + some natural number n.
96 + some natural number n.
97 + some natural number n.
98 + some natural number n.
99 + some natural number n.
9 + some natural number n.
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 17.
Exact the natural number 18.
Exact the natural number 19.
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 natural number n.