0
當我傳遞一個記錄的JavaScript,它的工作原理:傳遞記錄FFI
data Record = Record {
elem :: String
}
doSomethingForeign :: Record -> Fay()
doSomethingForeign = ffi " callJsFun(%1) "
但是,當功能不monomorphical,記錄不計算,需要手工進行:
class Passable a
instance Passable Record
instance Passable Text
doSomethingForeign' :: (Passable a) => a -> Fay()
doSomethingForeign' = ffi " callJsFun(Fay$$_(%1)) "
這是一個簡單的例子,當額外的打字Fay$$_
不是那麼煩人,但如果我將更復雜的結構與類型參數傳遞給js,那麼只添加Fay$$_
將無法解決它。我想知道規則,當對原生js類型的評估被應用,而不是。