Open Rembane opened 6 years ago
read'
works on Foreign
values, but Foreign
objects can be anything -- including being a String
as you have defined. Your foreign import definition should actually define a JS object or your foreign import type declaration should be of type String
.
If you look at the types here, you'll see how the second works, by using the JSON string:
readString :: Foreign -> F String
readJSON' :: forall a. ReadForeign a => String -> F a
bind :: forall a b m. Bind m => m a -> (a -> m b) -> m b
r1 :: F String
r1 = readString (rcrd :: Foreign)
r2 :: forall b. (String -> F b) -> F b
r2 = bind r1
r3 :: forall a. ReadJSON a => F a
r3 = r2 readJSON'
Good morning,
I have a record in a
Foreign
object, and when I try to turn it into a Purescript record usingread'
I get the following error:The interesting thing is that it just works if I first convert the
Foreign
object to a string.Why does it behave like this?
Here's a quite large minimum failing example:
Main.js:
Main.purs: