tarunon - 2017/05/09 えっとですねー 原初の欲求としては、assoctypeに複数値を持たせたいんですよ omochimetaru - 2017/05/09 昨日話してた可変長ジェネリックか tarunon - 2017/05/09 複数種類の型を定義すると、複数種類の実装のオーバーロードで実現される。 これが出来るとですね、assoctypeで引数を束縛するような、2つの型の関係が 1:1,1:多しか今は出来ないが omochimetaru - 2017/05/09 Tuple2にある機能はTuple3にも全て欲しい、みたいな? tarunon - 2017/05/09 多:多が可能になる いや、タプルとは違うな Viewから実装を引っぺがして、それをGenericsに作ることで NibとGenerics型の共存が出来ないかなと考えてるところから派生してる これ自体は上手く行きそうなんだけど、Viewと実装の繋ぎ込みがfuncになっちゃって、型を書くのが怠いから、assoctypeで縛ろうとしたが… という感じ、Viewと実装をassoctypeに持つ第三の型を作ればいい気もするけど、登場人物はなるべく増やしたくない omochimetaru - 2017/05/09 よくわからないけど、型Aと型Xの組み合わせのときの処理を静的に定義したい、そのペア自体を型付けしたい? tarunon - 2017/05/09 extension View: HasImpl { typealias Impl=Int } ↑これだと、Intしか実装がない。なので、IntかStringを使おうとすると↓ extension View: HasImpl { typealias Impl=Int|String } ↑こういうのが欲しくなる そうそう omochimetaru - 2017/05/09 (A/B/C) x (X/Y/Z) のような合成がしたいと tarunon - 2017/05/09 そう! omochimetaru - 2017/05/09 で、(*) x (X) とか (A) x (X) とか (A/B) x (*) の場合における実装を定義したい?(編集済) tarunon - 2017/05/09 えーっと、そこの掛け算全部書くのは吝かではない(編集済) omochimetaru - 2017/05/09 なるほど あー、 A / B / C とかは個別の データモデル型とか 個別のViewだから enum にならんのか