えっ、つまりそもそもscalaz6だとFirstに対して(ネストするとはいえ) dual が呼べてLastっぽいものが返ってきたのに、そもそも(現状のscalaz-sevenだと)コンパイルエラーになるのか・・・
2012-03-04 02:11:27これ https://t.co/tECune6d なんのためにあるんだろう、もしかしてさっき出来なかったやつこれ使えばできるんじゃないか・・・?と思って色々試しているが、偶然コンパイラをクラシュさせた以外なにも成果なし・・・(´・ω・`)
2012-03-04 03:07:21val hoge: Name[Option[Int] @@ Tags.First] = Tag.subst(Name(100.some))
2012-03-04 03:13:46substは、コンテナ自体は変えずに、コンテナに包まれているものの中身にだけTagを付けたい場合につかうって感じだろうか。これじゃないな
2012-03-04 03:17:03First と Dual を継承した新しいTraitを作ればなにかできるんじゃないか?と思いついたが、当たり前のようにsealedェ・・・
2012-03-04 03:23:29Tag[Option[String], t[Dual]#t[First]]("foo".some) |+| Tag[Option[String], t[Dual]#t[First]]("bar".some)
2012-03-04 03:34:29うーん、IdentityやMAで定義されていた|+|とかの記号は、scalaz-sevenではsyntax以下に定義されてるのかぁ。随分変わったなぁ。
2012-03-04 03:38:00val i = Lens.lensId[Int] val s = for { _ <- i := 0 _ <- i += 1 _ <- i += 1 x <- i += 1 } yield x s.evalZero が-3になるのだけどナンデ?
2012-03-04 03:59:12def +=(that: N): State[S, N] = lens %= (num.minus(_, that)) うわあああ・・・・
2012-03-04 04:07:22