Singleton types are dropped on the floor here:

```scala
scala> val a: Option[Int] = null
a: Option[Int] = null

scala> typer.infer.intersect(typeOf[a.type], typeOf[Option[Int]])
res1: $r.intp.global.analyzer.global.Type = a.type

scala> typer.infer.intersect(typeOf[a.type], typeOf[Some[Int]])
res2: $r.intp.global.analyzer.global.Type = Some[Int]
```