object semiauto extends SemiAutoInstances
allows semi automatically derive each instance. The derivation might need help when there are fields with a type constructor that comes with instances, e.g.
scala> case class Bar(a: String) scala> case class Foo(bars: List[Bar]) scala> import cats.instances.all._ scala> cats.derived.semiauto.show[Foo].show(Foo(List(Bar("a")))) res1: String = Foo(bars = $colon$colon(head = Bar(a = a), tl$access$1 = Nil.type()))
Note that semi.show didn't respect the native Show[List]
instance
You could either derive a Bar instance first
scala> implicit val barShow = cats.derived.semi.show[Bar] scala> cats.derived.semiauto.show[Foo].show(Foo(List(Bar("a")))) res2: String = Foo(bars = List(Bar(a = a)))
Or you can take advantage of a controlled auto derivation
scala> implicit val fooShow: Show[Foo] = { | import cats.derived.auto.show._ | cats.derived.semiauto.show | } scala> Foo(List(Bar("a"))).show res3: String = Foo(bars = List(Bar(a = a)))
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- semiauto
- SemiAutoInstances
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
applicative[F[_]](implicit F: Lazy[MkApplicative[F]]): Applicative[F]
- Definition Classes
- SemiAutoInstances
-
def
apply[F[_]](implicit F: Lazy[MkApply[F]]): Apply[F]
- Definition Classes
- SemiAutoInstances
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
commutativeMonoid[A](implicit ev: Lazy[MkCommutativeMonoid[A]]): CommutativeMonoid[A]
- Definition Classes
- SemiAutoInstances
-
def
commutativeSemigroup[T](implicit ev: Lazy[MkCommutativeSemigroup[T]]): CommutativeSemigroup[T]
- Definition Classes
- SemiAutoInstances
-
def
consK[F[_]](implicit F: Lazy[MkConsK[F, F]]): ConsK[F]
- Definition Classes
- SemiAutoInstances
-
def
contravariant[F[_]](implicit F: Lazy[MkContravariant[F]]): Contravariant[F]
- Definition Classes
- SemiAutoInstances
-
def
empty[A](implicit ev: Lazy[MkEmpty[A]]): Empty[A]
- Definition Classes
- SemiAutoInstances
-
def
emptyK[F[_]](implicit F: Lazy[MkEmptyK[F]]): EmptyK[F]
- Definition Classes
- SemiAutoInstances
-
def
eq[A](implicit ev: Lazy[MkEq[A]]): Eq[A]
- Definition Classes
- SemiAutoInstances
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
foldable[F[_]](implicit F: Lazy[MkFoldable[F]]): Foldable[F]
- Definition Classes
- SemiAutoInstances
-
def
functor[F[_]](implicit F: Lazy[MkFunctor[F]]): Functor[F]
- Definition Classes
- SemiAutoInstances
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hash[A](implicit ev: Lazy[MkHash[A]]): Hash[A]
- Definition Classes
- SemiAutoInstances
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
invariant[F[_]](implicit F: Lazy[MkInvariant[F]]): Invariant[F]
- Definition Classes
- SemiAutoInstances
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
iterable[F[_], A](fa: F[A])(implicit F: MkIterable[F]): Iterable[A]
- Definition Classes
- SemiAutoInstances
-
def
monoid[A](implicit ev: Lazy[MkMonoid[A]]): Monoid[A]
- Definition Classes
- SemiAutoInstances
-
def
monoidK[F[_]](implicit F: Lazy[MkMonoidK[F]]): MonoidK[F]
- Definition Classes
- SemiAutoInstances
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
nonEmptyTraverse[F[_]](implicit F: Lazy[MkNonEmptyTraverse[F]]): NonEmptyTraverse[F]
- Definition Classes
- SemiAutoInstances
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
order[A](implicit ev: Lazy[MkOrder[A]]): Order[A]
- Definition Classes
- SemiAutoInstances
-
def
partialOrder[A](implicit ev: Lazy[MkPartialOrder[A]]): PartialOrder[A]
- Definition Classes
- SemiAutoInstances
-
def
pure[F[_]](implicit F: Lazy[MkPure[F]]): Pure[F]
- Definition Classes
- SemiAutoInstances
-
def
reducible[F[_]](implicit F: Lazy[MkReducible[F]]): Reducible[F]
- Definition Classes
- SemiAutoInstances
-
def
semigroup[T](implicit ev: Lazy[MkSemigroup[T]]): Semigroup[T]
- Definition Classes
- SemiAutoInstances
-
def
semigroupK[F[_]](implicit F: Lazy[MkSemigroupK[F]]): SemigroupK[F]
- Definition Classes
- SemiAutoInstances
-
def
show[A](implicit ev: Lazy[MkShow[A]]): Show[A]
- Definition Classes
- SemiAutoInstances
-
def
showPretty[A](implicit ev: Lazy[MkShowPretty[A]]): ShowPretty[A]
- Definition Classes
- SemiAutoInstances
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
traverse[F[_]](implicit F: Lazy[MkTraverse[F]]): Traverse[F]
- Definition Classes
- SemiAutoInstances
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()