Tagged Typeとは?ある型と値は同じだけど違う型を持たせる いくつか実装がある 今回はScalaz 7.1.0-RC1のものについて Scalaz 7.0.xまでとは挙動が異なる shapelessにも存在する Scalaでの実現方法を考えたのがshapeless作者のMiles Sabinさん 7.0.xと同様のものがshapeless.tag、7.1.0-RC1と同様のものがshapeless.newtypeとして定義されている Tagged Typeとは?scala> import scalaz.Tag import scalaz.Tag scala> sealed trait Foo defined trait Foo scala> "Hello, Scalaz!" res0: String = Hello, Scalaz! scala> Tag[String, Foo](