case class Book( title :String, author :String, numPages :Int, isCopyrighted :Boolean ) // example of the data: var cih = Book( "The Cat", "Seuss", 37, false ) def enbiggen( original :Book ) :Book = Book( original.title, original.author, original.numPages * 2, original.isCopyrighted ) def derive( original :Book, newAuthor :String, newNumPages :Int ) :Book = { Book( "Son of " + original.title, original.author + " & " + newAuthor, original.numPages + newNumPages, original.isCopyrighted ) } assert( enbiggen(cih).equals( Book( "The Cat", "Seuss", 74, false ) ) )