SAM types don't work for methods that don't take params e.g. this type class ``` trait Default[A] { def default: A } ``` can't have instances defined, e.g. ``` implicit val string: Default[String] = "" ``` or ``` implicit val string: Default[String] = { () => "" } ``` have to do it the old fashioned way