>>657
飲み込みが悪くてすまんが、Cへの引数として受けとるというのが今ひとつ分からない。

もしかして、viewRecords 関数ではなく

f :: (MonadIO m) => Source m A -> m ()
f src = src $$ recordsSink

という関数を C に作れってこと?
で、viewRecords 関数の定義は f recordsSource にしろと?

もしそうなら、viewRecords 関数はどこに書く?

勘違いしてたらごめん