tar.gzを書くと、extra-depsの設定がないとか言われちゃいますね。
stack.yaml にパッケージ名と好きなフラグを定義して、各パッケージの .cabal でそのフラグを使って処理すると思います。
flags:
tls:
compat: true
network: true
tls-debug:
xxxx: true
$(defineTable "example.db" "account") の構文を教えてください。Relation型のプレースホルダーはなんのために…あるんですか?
あと、ドキュメントにある $(defineTable "example.db" "account") の構文を教えてください。hakyll に渡した do ブロックじゃなくて main 関数の中でやるのはダメなんですかね?compilerUnsafeIO というのがあるみたいです。 https://hackage.haskell.org/package/hakyll-4.9.8.0/docs/Hakyll-Core-Compiler-Internal.html#v:compilerUnsafeIOunixFilterLBS を使って、 ByteString として読んでみてはいかがでしょうか?chcp 65001 と言うコマンドを実行すれば回避できます。unsafeCompiler = compilerUnsafeIO となっていますね、 unsafeCompiler (E.setLocaleEncoding E.utf8) >> unixFilter ... みたいな感じで使うということでしょうか? unixFilterLBS を使うのは確かに手ですね、両方試してみます。runST 後の do 式の型を明示して forall s. して、それを中で使う形ですかね?
{-# LANGUAGE ScopedTypeVariables #-}
module Main where
import
import
main :: IO ()
main = print $ runST st
st :: forall s . ST s Int
st = do
array <- newArray (0, 1) 0 :: ST s (STArray s Int Int)
let
go :: Int -> ST s Int
go = readArray array
writeArray array 1 1
go 1
-- go array 1
packages: - location: .
stack init とか stack new していれば自動でその部分はやってくれるはずですが、一から書いてしまいましたか。。。 :sweat_smile:stack exec foo で起動される fooがどこにあるか調べる方法はないですか? stack which foo とかできればいいのですが。。。stack path --bin-path して出てくるパスから調べることになりますかね。。。stack exec which foo ならいかがでしょうか?find .stack-work -name foo でうまくいかないかなぁ(笑)stack exec which foo がよさそう。ありがとうございます。find だと、`.stack-work`以外にあるコマンドが起動されていた場合に探せないのです。(^) の定義が多相になっているため、 phi^7 などと書くと「Integer に defaulting したよ!」っていう警告が出てしまうんですが phi^(7 :: Int) と書く以外に何か回避策ってあるでしょうか?-fno-warn-type-defaults というオプションがあります。ほかに試してみたところでは、 default 宣言を使って default(Int) としても警告は出てしまうようです。import Prelude hiding ( (^) )import qualified Prelude as Pre ( (^) )(^) :: (Num a) => a -> Int -> ax ^ y = x Pre.^ y