Re: Re:スーパータイピング
toList等はポリモーフィックなリストに入れて返さないといけませんね。いろいろ書かなくてはいけなくなるので少なくとも結構面倒になりそうなので、する価値がないかもしれないと思います。こんなものをイメージしていました。
data List u = forall uos. UrelemOrSet u uos => uos :-: List u | Nul class UrelemOrSet u uos where member :: ... instance UrelemOrSet u u where instance UrelemOrSet u (Set u) where toList :: UrelemOrSet u uos => Set u -> List u
HypersetらしいHypersetを作ろうと
*Hyperset> let x = singleton (Right x) in isEmpty x
等としたのですが、固まってしまいました。何か正しいExampleを教えて頂けませんか?
追記
(id:yts:20041207#p1)
勉強
*1:「いわゆるurelementは用いない」と書いてあるけれど