次のコード type Id[+A] = A
type ReprF[A, F[_]] = Unit
type Repr[A] = ReprF[A, Id]
covariant type Id occurs in invariant position in type
[A]Playground.this.ReprF[A,Playground.this.Id] of type Repr
が
クラスについては、タイプを参照するのにvalを使用できないことは明らかです。例えば 、 class LongName {
...
}
typealias A = LongName // OK
val B = LongName // compile error
val C = LongName() // compiles, but it refers to an instance
で再帰的な文法について説明します。 type FieldValue = Seq[String] :+: String :+: Int :+: Long :+: CNil
type FieldLeaf = FieldValue :+: SubField :+: CNil
type SubField = Seq[Field]
type Field = (String, FieldLeaf)