PureScriptのFFI
実装はJSで型だけpsで定義されているpackageも割といっぱいある

かんたんな例
./readline.js"use strict";
var readlineSync = require('readline-sync')
exports.readLine = function () {
return readlineSync.question('user> ')
}
./Readline.purs(hs)module Readline where
import Effect (Effect)
foreign import readLine :: Effect String
expors.hoge
の部分と、
foreign import hoge
の部分の名前を合わせないとコンパイルエラーになる

新たなkindを定義する
purs(hs)foreign import data Frob :: Type
foreign import data UseState :: Type -> Type -> Type
実際のsyntax hilight
型の付け方
例えば間違った型を付けることもできるのか
できる.
tsの型定義と同じ感じ
手順
ディレクトリ
js側のexport
purs側のimport
カリー化
jsの多引数関数をどうやってカリー化してpursの世界に持ってくるのか
この記事はめちゃくちゃ古いので参考程度に
JSのnullの扱い
この記事はめちゃくちゃ古いので参考程度に
副作用の扱い
この記事はめちゃくちゃ古いので参考程度に
JSのthisの扱い
この記事はめちゃくちゃ古いので参考程度に
関連
TSの型定義ファイルをpursに使う