, apply Option[A], A . , Operation[Unit], Option[Unit] ..
. , , Option[Unit] Option[A], , Print , , Operation[Unit]. - Option[Unit], Operation[Unit], . Read String. : Option[Unit] Read, , , .
, , ? , Scala ( IntelliJ) , . case Print , Operation[A] Operation[Unit], A = Unit .
:
case Print(s) => Some(s)
Operation[Unit] (, Print extends Operation[Unit]), Option[Unit], Some(s) Option[String]. .
case Read() => Some(Unit)
Unit - Unit, , Unit. Unit ().
, , : Operation[String], Operation[String], Operation[Unit] ( Operation[Unit.type]).