case classClassBinding(from: Surface, to: Surface, sourceCode: SourceCode) extends Binding with Product with Serializable
case classDependencyFactory(from: Surface, dependencyTypes: Seq[Surface], factory: Any) extends Product with Serializable
case classProviderBinding(factory: DependencyFactory, provideSingleton: Boolean, eager: Boolean, sourceCode: SourceCode) extends Binding with Product with Serializable
case classSingletonBinding(from: Surface, to: Surface, isEager: Boolean, sourceCode: SourceCode) extends Binding with Product with Serializable