あるいは、
というインスタンスなら汎用性があるのでそれをPRしてあげるか。
instance MonadFail m => AWST' env m where fail = ...
というインスタンスなら汎用性があるのでそれをPRしてあげるか。
instance MonadFail m => AWST' env m where fail = ...
streaming の方はサードパーティーか... じゃあおかしいのはfail が絶対に必要な展開ではないんだよなぁ... https://hackage.haskell.org/package/amazonka-s3-streaming-1.1.0.0/docs/src/Network.AWS.S3.StreamingUpload.html#concurrentUploadMonadFail を MonadThrow に変えるか、 SomeException で fail で投げるはずの例外を包んであげればいいかな、と思いましたが、そもそも、すでに m は MonadUnliftIO m ( MonadIO のサブクラス)が実装済みなワケですから liftIO fail にすればそこで賄えるかと(多分作者の気持ちはそっちの方が近いし)MonadThrow に変える方法に抵抗がある理由が「例外作らなきゃいけない」でしたら throwString の使用をご検討ください。MonadFail のままにしているのか気になります。> groupBy (\_ x -> x /= -1) [1,2,-1,3,4,-1,5,6] [[1,2],[-1,3,4],[-1,5,6]]
Element ByteString = Word8 なので、空行 (`"\n\n"`)とか指定できないですね。。。group :: Monad m => (a -> Bool) -> ConduitT a [a] m ()
group f = loop id
where
loop rest = do
mx <- await
case mx of
Nothing -> case rest [] of
[] -> return ()
l -> yield l
Just x
| f x -> yield (rest []) >> loop id
| otherwise -> loop (rest . (x:))splitOn が提供されない問題ですね!stack build pretty-simiple (あるいは cabal install --lib pretty-simple )してくれ」と書くか、stack.yaml か cabal.project には有効にするよう記載する、ってところですかね。() => a -> Hoge って関数がいきなり Num a => a -> Hoge とかに変わったら同じコードから呼び出せなくなりませんか?data AnyBot = forall b. Bot b => AnyBot b instance Bot AnyBot where type Dep AnyBot a = () name (AnyBot b) = name b reply (AnyBot b) msg = reply b msg
Could not deduce: Dep b env arising from a use of 'reply'
n までの総和を求める関数を作りたいです。f n = sum [0..n] と書けばしまいですが、こうすると nが大きく(9桁とか)なったときにかなり時間がかかってしまいます。(回避策はあるのでしょうか)div 関数があるので、余りが出ないことを確信しているなら使えます