@@ -60,7 +60,7 @@ tailSafe = \xs -> case xs of
6060 [_:xs] -> Just xs
6161 _ -> Nothing
6262
63−extern map :: forall a b. (a -> b) -> [a] -> [b]
63+foreign import map :: forall a b. (a -> b) -> [a] -> [b]
6464
6565foldr :: forall a b. (a -> b -> a) -> a -> [b] -> a
6666foldr = \f -> \a -> \bs -> case bs of
@@ -74,29 +74,29 @@ foldl = \f -> \b -> \as -> do
7474 result = f a result
7575 return result
7676
77−extern length :: forall a. [a] -> Number
77+foreign import member "length" length :: forall a. [a] -> Number
7878
79−extern indexOf :: forall a. [a] -> a -> Number
79+foreign import indexOf :: forall a. [a] -> a -> Number
8080
81−extern lastIndexOf :: forall a. [a] -> a -> Number
81+foreign import lastIndexOf :: forall a. [a] -> a -> Number
8282
83−extern concat :: forall a. [a] -> [a] -> [a]
83+foreign import concat :: forall a. [a] -> [a] -> [a]
8484
85−extern join :: [String] -> String
85+foreign import join :: [String] -> String
8686
87−extern joinWith :: [String] -> String -> String
87+foreign import joinWith :: [String] -> String -> String
8888
89−extern push :: forall a. [a] -> a -> [a]
89+foreign import push :: forall a. [a] -> a -> [a]
9090
91−extern reverse :: forall a. [a] -> [a]
91+foreign import reverse :: forall a. [a] -> [a]
9292
93−extern shift :: forall a. [a] -> [a]
93+foreign import shift :: forall a. [a] -> [a]
9494
95−extern slice :: forall a. Number -> Number -> [a] -> [a]
95+foreign import slice :: forall a. Number -> Number -> [a] -> [a]
9696
97−extern sort :: forall a. [a] -> [a]
97+foreign import sort :: forall a. [a] -> [a]
9898
99−extern splice :: forall a. Number -> Number -> [a] -> [a] -> [a]
99+foreign import splice :: forall a. Number -> Number -> [a] -> [a] -> [a]
100100
101101cons :: forall a. a -> [a] -> [a]
102102cons = \a -> concat([a])
@@ -108,7 +108,7 @@ concatMap = \as -> \f -> do
108108 result = result `concat` f a
109109 return result
110110
111−extern filter :: forall a. [a] -> (a -> Boolean) -> [a]
111+foreign import filter :: forall a. [a] -> (a -> Boolean) -> [a]
112112
113113empty :: forall a. [a] -> Boolean
114114empty = \as -> case as of
@@ -165,75 +165,75 @@ unzip = \ts -> case ts of
165165
166166-- Strings
167167
168−extern lengthS :: String -> Number
168+foreign import member "length" lengthS :: String -> Number
169169
170−extern charAt :: Number -> String -> String
170+foreign import charAt :: Number -> String -> String
171171
172−extern indexOfS :: String -> String -> Number
172+foreign import indexOfS :: String -> String -> Number
173173
174−extern lastIndexOfS :: String -> String -> Number
174+foreign import lastIndexOfS :: String -> String -> Number
175175
176−extern localeCompare :: String -> String -> Number
176+foreign import localeCompare :: String -> String -> Number
177177
178−extern replace :: String -> String -> String -> String
178+foreign import replace :: String -> String -> String -> String
179179
180−extern sliceS :: Number -> Number -> String -> String
180+foreign import sliceS :: Number -> Number -> String -> String
181181
182−extern split :: String -> String -> [String]
182+foreign import split :: String -> String -> [String]
183183
184−extern substr :: Number -> Number -> String -> String
184+foreign import substr :: Number -> Number -> String -> String
185185
186−extern substring :: Number -> Number -> String -> String
186+foreign import substring :: Number -> Number -> String -> String
187187
188−extern toLower :: String -> String
188+foreign import toLower :: String -> String
189189
190−extern toUpper :: String -> String
190+foreign import toUpper :: String -> String
191191
192−extern trim :: String -> String
192+foreign import trim :: String -> String
193193
194194-- Regex
195195
196−extern data Regex :: *
196+foreign import data Regex :: *
197197
198−extern regex :: String -> String -> Regex
198+foreign import regex :: String -> String -> Regex
199199
200−extern test :: Regex -> String -> Boolean
200+foreign import test :: Regex -> String -> Boolean
201201
202−extern match :: Regex -> String -> [String]
202+foreign import match :: Regex -> String -> [String]
203203
204−extern replaceR :: Regex -> String -> String -> String
204+foreign import replaceR :: Regex -> String -> String -> String
205205
206−extern search :: Regex -> String -> Number
206+foreign import search :: Regex -> String -> Number
207207
208208-- Globals
209209
210−extern nan :: Number
210+foreign import nan :: Number
211211
212−extern infinity :: Number
212+foreign import infinity :: Number
213213
214−extern toExponential :: Number -> String
214+foreign import toExponential :: Number -> String
215215
216−extern toFixed :: Number -> Number -> String
216+foreign import toFixed :: Number -> Number -> String
217217
218−extern toPrecision :: Number -> Number -> String
218+foreign import toPrecision :: Number -> Number -> String
219219
220−extern numberToString :: Number -> String
220+foreign import numberToString :: Number -> String
221221
222−extern isNaN :: Number -> Boolean
222+foreign import isNaN :: Number -> Boolean
223223
224−extern isFinite :: Number -> Boolean
224+foreign import isFinite :: Number -> Boolean
225225
226−extern parseFloat :: String -> Number
226+foreign import parseFloat :: String -> Number
227227
228−extern parseInt :: String -> Number
228+foreign import parseInt :: String -> Number
229229
230−extern encodeURIComponent :: String -> String
230+foreign import encodeURIComponent :: String -> String
231231
232−extern decodeURIComponent :: String -> String
232+foreign import decodeURIComponent :: String -> String
233233
234−extern encodeURI :: String -> String
234+foreign import encodeURI :: String -> String
235235
236−extern decodeURI :: String -> String
236+foreign import decodeURI :: String -> String
237237
238238-- Math
239239
@@ -257,5 +257,5 @@ type Math =
257257 , tan :: Number -> Number
258258 }
259259
260−extern math :: Math
260+foreign import math :: Math
261261