@@ -38,7 +38,7 @@ inc tipe x =
3838
3939 Data "Json.Value" [] ->
4040 obj "Native.Json.fromJS" <| x
41−
41+
4242 Data ctor []
4343 | ctor == "Int" -> from JSNumber
4444 | ctor == "Float" -> from JSNumber
@@ -55,8 +55,12 @@ inc tipe x =
5555
5656 | ctor == "_List" ->
5757 check x JSArray (obj "_L.fromArray" <| array)
58− where
59− array = DotRef () x (var "map") <| incoming t
58+
59+ | ctor == "Array.Array" ->
60+ check x JSArray (obj "_A.fromJSArray" <| array)
61+
62+ where
63+ array = DotRef () x (var "map") <| incoming t
6064
6165 Data ctor ts
6266 | Help.isTuple ctor -> check x JSArray tuple
@@ -67,10 +71,10 @@ inc tipe x =
6771 , inc t (BracketRef () x (IntLit () n)))
6872
6973 Data _ _ ->
70− error "bad ADT got to port generation code"
74+ error "bad ADT got to incoming port generation code"
7175
7276 Record _ (Just _) ->
73− error "bad record got to port generation code"
77+ error "bad record got to incoming port generation code"
7478
7579 Record fields Nothing ->
7680 check x (JSObject (map fst fields)) object
@@ -117,16 +121,19 @@ out tipe x =
117121 | ctor == "_List" ->
118122 DotRef () (obj "_L.toArray" <| x) (var "map") <| outgoing t
119123
124+ | ctor == "Array.Array" ->
125+ DotRef () (obj "_A.toJSArray" <| x) (var "map") <| outgoing t
126+
120127 Data ctor ts
121128 | Help.isTuple ctor ->
122129 let convert n t = out t $ DotRef () x $ var ('_':show n)
123130 in ArrayLit () $ zipWith convert [0..] ts
124−
131+
125132 Data _ _ ->
126− error "bad ADT got to port generation code"
133+ error "bad ADT got to outgoing port generation code"
127134
128135 Record _ (Just _) ->
129− error "bad record got to port generation code"
136+ error "bad record got to outgoing port generation code"
130137
131138 Record fields Nothing ->
132139 ObjectLit () keys