@@ -13,6 +13,8 @@ import prelude.vect
1313import prelude.strings
1414import prelude.char
1515
16+%access public
17+
1618-- Show and instances
1719
1820class Show a where
@@ -164,7 +166,7 @@ floor x = prim__floatFloor x
164166ceiling : Float -> Float
165167ceiling x = prim__floatCeil x
166168
167−-- Ranges
169+---- Ranges
168170
169171count : Num a => a -> a -> a -> List a
170172count a inc b = if (a <= b) then (a :: count (a + inc) inc b)
@@ -175,6 +177,17 @@ syntax "[" [start] ".." [end] "]"
175177syntax "[" [start] "," [next] ".." [end] "]"
176178 = count start (next - start) end
177179
180+---- More utilities
181+
182+flip : (a -> b -> c) -> b -> a -> c
183+flip f x y = f y x
184+
185+sum : Num a => List a -> a
186+sum = foldl (+) 0
187+
188+prod : Num a => List a -> a
189+prod = foldl (*) 1
190+
178191---- some basic io
179192
180193putStr : String -> IO ()