単一のデータ型に対してマルチメソッドの複数の実装を作成するにはどうすればよいですか?
これは良い例ではないかもしれませんが、ネストされたベクトルを両方ともシーケンスとして扱うことができるという考えを示してくれることを願っています:
repl> (def thing [[[1] []] [27] [18 [32 35]]])
repl> (fmap count thing)
[2 1 2]
そしてツリーとして:
repl> (fmap (partial + 1) thing)
[[[2] []] [28] [19 [33 36]]]
同じ型に対して複数のマルチメソッド実装を作成して使用する一般的な方法は何ですか?