@@ -60,7 +60,7 @@ tailSafe = \xs -> case xs of
60 [_:xs] -> Just xs
60 [_:xs] -> Just xs
61 _ -> Nothing
61 _ -> Nothing
63−extern map :: forall a b. (a -> b) -> [a] -> [b]
63+foreign import map :: forall a b. (a -> b) -> [a] -> [b]
65foldr :: forall a b. (a -> b -> a) -> a -> [b] -> a
65foldr :: forall a b. (a -> b -> a) -> a -> [b] -> a
66foldr = \f -> \a -> \bs -> case bs of
66foldr = \f -> \a -> \bs -> case bs of
@@ -74,29 +74,29 @@ foldl = \f -> \b -> \as -> do
74 result = f a result
74 result = f a result
75 return result
75 return result
77−extern length :: forall a. [a] -> Number
77+foreign import member "length" length :: forall a. [a] -> Number
79−extern indexOf :: forall a. [a] -> a -> Number
79+foreign import indexOf :: forall a. [a] -> a -> Number
81−extern lastIndexOf :: forall a. [a] -> a -> Number
81+foreign import lastIndexOf :: forall a. [a] -> a -> Number
83−extern concat :: forall a. [a] -> [a] -> [a]
83+foreign import concat :: forall a. [a] -> [a] -> [a]
85−extern join :: [String] -> String
85+foreign import join :: [String] -> String
87−extern joinWith :: [String] -> String -> String
87+foreign import joinWith :: [String] -> String -> String
89−extern push :: forall a. [a] -> a -> [a]
89+foreign import push :: forall a. [a] -> a -> [a]
91−extern reverse :: forall a. [a] -> [a]
91+foreign import reverse :: forall a. [a] -> [a]
93−extern shift :: forall a. [a] -> [a]
93+foreign import shift :: forall a. [a] -> [a]
95−extern slice :: forall a. Number -> Number -> [a] -> [a]
95+foreign import slice :: forall a. Number -> Number -> [a] -> [a]
97−extern sort :: forall a. [a] -> [a]
97+foreign import sort :: forall a. [a] -> [a]
99−extern splice :: forall a. Number -> Number -> [a] -> [a] -> [a]
99+foreign import splice :: forall a. Number -> Number -> [a] -> [a] -> [a]
101cons :: forall a. a -> [a] -> [a]
101cons :: forall a. a -> [a] -> [a]
102cons = \a -> concat([a])
102cons = \a -> concat([a])
@@ -108,7 +108,7 @@ concatMap = \as -> \f -> do
108 result = result `concat` f a
108 result = result `concat` f a
109 return result
109 return result
111−extern filter :: forall a. [a] -> (a -> Boolean) -> [a]
111+foreign import filter :: forall a. [a] -> (a -> Boolean) -> [a]
113empty :: forall a. [a] -> Boolean
113empty :: forall a. [a] -> Boolean
114empty = \as -> case as of
114empty = \as -> case as of
@@ -165,75 +165,75 @@ unzip = \ts -> case ts of
166-- Strings
166-- Strings
168−extern lengthS :: String -> Number
168+foreign import member "length" lengthS :: String -> Number
170−extern charAt :: Number -> String -> String
170+foreign import charAt :: Number -> String -> String
172−extern indexOfS :: String -> String -> Number
172+foreign import indexOfS :: String -> String -> Number
174−extern lastIndexOfS :: String -> String -> Number
174+foreign import lastIndexOfS :: String -> String -> Number
176−extern localeCompare :: String -> String -> Number
176+foreign import localeCompare :: String -> String -> Number
178−extern replace :: String -> String -> String -> String
178+foreign import replace :: String -> String -> String -> String
180−extern sliceS :: Number -> Number -> String -> String
180+foreign import sliceS :: Number -> Number -> String -> String
182−extern split :: String -> String -> [String]
182+foreign import split :: String -> String -> [String]
184−extern substr :: Number -> Number -> String -> String
184+foreign import substr :: Number -> Number -> String -> String
186−extern substring :: Number -> Number -> String -> String
186+foreign import substring :: Number -> Number -> String -> String
188−extern toLower :: String -> String
188+foreign import toLower :: String -> String
190−extern toUpper :: String -> String
190+foreign import toUpper :: String -> String
192−extern trim :: String -> String
192+foreign import trim :: String -> String
196−extern data Regex :: *
196+foreign import data Regex :: *
198−extern regex :: String -> String -> Regex
198+foreign import regex :: String -> String -> Regex
200−extern test :: Regex -> String -> Boolean
200+foreign import test :: Regex -> String -> Boolean
202−extern match :: Regex -> String -> [String]
202+foreign import match :: Regex -> String -> [String]
204−extern replaceR :: Regex -> String -> String -> String
204+foreign import replaceR :: Regex -> String -> String -> String
206−extern search :: Regex -> String -> Number
206+foreign import search :: Regex -> String -> Number
208-- Globals
208-- Globals
210−extern nan :: Number
210+foreign import nan :: Number
212−extern infinity :: Number
212+foreign import infinity :: Number
214−extern toExponential :: Number -> String
214+foreign import toExponential :: Number -> String
216−extern toFixed :: Number -> Number -> String
216+foreign import toFixed :: Number -> Number -> String
218−extern toPrecision :: Number -> Number -> String
218+foreign import toPrecision :: Number -> Number -> String
220−extern numberToString :: Number -> String
220+foreign import numberToString :: Number -> String
222−extern isNaN :: Number -> Boolean
222+foreign import isNaN :: Number -> Boolean
224−extern isFinite :: Number -> Boolean
224+foreign import isFinite :: Number -> Boolean
226−extern parseFloat :: String -> Number
226+foreign import parseFloat :: String -> Number
228−extern parseInt :: String -> Number
228+foreign import parseInt :: String -> Number
230−extern encodeURIComponent :: String -> String
230+foreign import encodeURIComponent :: String -> String
232−extern decodeURIComponent :: String -> String
232+foreign import decodeURIComponent :: String -> String
234−extern encodeURI :: String -> String
234+foreign import encodeURI :: String -> String
236−extern decodeURI :: String -> String
236+foreign import decodeURI :: String -> String
@@ -257,5 +257,5 @@ type Math =
257 , tan :: Number -> Number
257 , tan :: Number -> Number
260−extern math :: Math
260+foreign import math :: Math