https://mstdn.maud.io/@kb10uy/102473310257911903
こういう場合なら、後続の write!(output, ...) する部分を別の関数とかにして、そっちの型パラメータとして W: Write みたいな型で受け取ってやるというのが良いかと
そういえばここの実装本当にこれでいいのか地味に悩んでるのでRustに自信ニキの助言がほしい
https://github.com/kb10uy/ongeki-data/blob/master/src/bin/emit-skk-dictionary.rs#L62-L66
この定義のあとに補足があるのでそっちも読んでねというお気持ちです (プログラムについての文脈ではこういう定義になるけど、型システムという概念は論理学とか数学とかもっと広い分野で使われる概念だよ〜的なことが書いてあり)
で、もっとカジュアルに言うところの「型 (システム) が強い」というのは、基本的には「型検査によってより多くの制約や正しさを保証してほしい」くらいの意味。
たとえば go でどうしても interface {} を使う必要があるとかの場面だと、どのような型でも受け入れてしまうので、ある種の保証や正しさの検査が行えなくなる。
こういうのはたとえ静的型付きであってもカジュアルには「型システムが弱い」と形容したりする
ダンボールでBEAを作ったら本家BEAに寄贈することになった - ニコニコ動画
https://www.nicovideo.jp/watch/sm35425728
これになった><
博学多才タイプ | MASHING UP https://www.mashingup.jp/2017/10/065041anger_type02.html