val bar: Bar = Bar(100)
assert(bar == Bar(100))
val foo: Bar = bar.f(10)
assert(foo == Bar(10))
/*
 * scala> val foobar: Option[Bar] = foo.g(1)
 * <console>:12: error: type mismatch;
 *  found   : Option[Foo]
 *  required: Option[Bar]
 *        val foobar: Option[Bar] = foo.g(1)
 *                                       ^
 */
val baz: String = foo.h
assert(baz == "hoge")