@@ -0,0 +1,42 @@
1+module SmallRecordBench where
2+
3+type alias SmallRecord =
4+ { myLargeNamedField1 : Float
5+ , myLargeNamedField2 : Float
6+ , myLargeNamedField3 : Float
7+ , myLargeNamedField4 : Float
8+ , myLargeNamedField5 : Float
9+ , myLargeNamedField6 : Float
10+ , myLargeNamedField7 : Float
11+ , myLargeNamedField8 : Float
12+ , myLargeNamedField9 : Float
13+ }
14+
15+defaultRec =
16+ SmallRecord 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0
17+
18+getField i =
19+ case (i % 9) of
20+ 1 ->
21+ defaultRec.myLargeNamedField1
22+ 2 ->
23+ defaultRec.myLargeNamedField2
24+ 3 ->
25+ defaultRec.myLargeNamedField3
26+ 4 ->
27+ defaultRec.myLargeNamedField4
28+ 5 ->
29+ defaultRec.myLargeNamedField5
30+ 6 ->
31+ defaultRec.myLargeNamedField6
32+ 7 ->
33+ defaultRec.myLargeNamedField7
34+ 8 ->
35+ defaultRec.myLargeNamedField8
36+ 0 ->
37+ defaultRec.myLargeNamedField9
38+
39+
40+sumRandomElems : List Int -> Float
41+sumRandomElems randomInts =
42+ List.foldr (\i sumSoFar -> (getField i) + sumSoFar ) 0.0 randomInts