on master help sign in
Update the type hints for `all`, `any`, `show`, the new HTTP API, and the new character functions.
05cfda7evancz
elm/src/Types/Hints.hs+25−4
@@ -40,7 +40,7 @@ elements = let iee = int ==> element ==> element in
40 , "centeredText" -: text ==> element
40 , "centeredText" -: text ==> element
41 , "justifiedText" -: text ==> element
41 , "justifiedText" -: text ==> element
42 , "asText" -:: a ==> element
42 , "asText" -:: a ==> element
43− , "show" -:: a ==> text
43+ , "show" -:: a ==> string
44 , "collage" -: int ==> int ==> listOf form ==> element
44 , "collage" -: int ==> int ==> listOf form ==> element
45 , "fittedImage" -: int ==> int ==> string ==> element
45 , "fittedImage" -: int ==> int ==> string ==> element
46 ]
46 ]
@@ -145,6 +145,18 @@ signals =
145 , "sampleOn" -:: signalOf a ==> signalOf b ==> signalOf b
145 , "sampleOn" -:: signalOf a ==> signalOf b ==> signalOf b
146 ]
146 ]
147
147
148+http =
149+ [ "send" -:: signalOf (request a) -> signalOf (response string)
150+ , "sendGet" -:: signalOf string -> signalOf (response string)
151+ , "get" -: string ==> request string
152+ , "post" -: string ==> string ==> request string
153+ , "request" -: string ==> string ==> string ==> listOf (pairOf string) ==> request string
154+ , "Waiting" -:: response a
155+ , "Failure" -:: int ==> string ==> response a
156+ , "Success" -:: a -> response a ]
157+ where request t = ADT "Request" [t]
158+ response t = ADT "Response" [t]
159+
148concreteSignals =
160concreteSignals =
149 [ "keysDown" -: signalOf (listOf int)
161 [ "keysDown" -: signalOf (listOf int)
150 , "charPressed" -: signalOf (maybeOf int)
162 , "charPressed" -: signalOf (maybeOf int)
@@ -199,6 +211,15 @@ bools =
199 , Forall [0,1] [ Context "`compare'" $ VarT 0 :<: comparable ] (VarT 0 ==> VarT 0 ==> VarT 1) )
211 , Forall [0,1] [ Context "`compare'" $ VarT 0 :<: comparable ] (VarT 0 ==> VarT 0 ==> VarT 1) )
200 ]
212 ]
201
213
214+chars =
215+ [ hasType (char ==> bool)
216+ ["isDigit","isOctDigit","isHexDigit","isUpper","isLower"]
217+ , hasType (char ==> char)
218+ ["toUpper","toLower","toLocaleUpper","toLocaleLower"]
219+ , "toCode" -: char ==> int
220+ , "fromCode" -: int ==> char
221+ ]
222+
202-------- Polymorphic Functions --------
223-------- Polymorphic Functions --------
203
224
204[a,b,c] = map VarT [1,2,3]
225[a,b,c] = map VarT [1,2,3]
@@ -237,8 +258,8 @@ lists =
237 , "foldr1" -:: (a ==> a ==> a) ==> listOf a ==> a
258 , "foldr1" -:: (a ==> a ==> a) ==> listOf a ==> a
238 , "foldl1" -:: (a ==> a ==> a) ==> listOf a ==> a
259 , "foldl1" -:: (a ==> a ==> a) ==> listOf a ==> a
239 , "scanl1" -:: (a ==> a ==> a) ==> listOf a ==> a
260 , "scanl1" -:: (a ==> a ==> a) ==> listOf a ==> a
240− , "forall" -:: (a ==> bool) ==> listOf a ==> bool
261+ , "all" -:: (a ==> bool) ==> listOf a ==> bool
241− , "exists" -:: (a ==> bool) ==> listOf a ==> bool
262+ , "any" -:: (a ==> bool) ==> listOf a ==> bool
242 , "reverse" -:: listOf a ==> listOf a
263 , "reverse" -:: listOf a ==> listOf a
243 , "take" -:: int ==> listOf a ==> listOf a
264 , "take" -:: int ==> listOf a ==> listOf a
244 , "drop" -:: int ==> listOf a ==> listOf a
265 , "drop" -:: int ==> listOf a ==> listOf a
@@ -275,5 +296,5 @@ hints = mapM (\(n,s) -> (,) n `liftM` rescheme s) hs
275 where hs = concat [ funcs, lists, signals, math, bools, str2elem, textAttrs
296 where hs = concat [ funcs, lists, signals, math, bools, str2elem, textAttrs
276 , elements, directions, colors, lineTypes, shapes
297 , elements, directions, colors, lineTypes, shapes
277 , concreteSignals, casts, polyCasts, json, maybeFuncs
298 , concreteSignals, casts, polyCasts, json, maybeFuncs
278− , positions, collages
299+ , positions, collages, http
279 ]
300 ]