sam
class ForGen private constructor() { companion object } typealias GenOf<A> = Kind<ForGen, A> fun <A> GenOf<A>.fix() = this as Gen<A>