I was poking around in `RefinedType#normalizeImpl` to see if any of the flattening that happens there is needed here. 

```scala
scala> type T = (Char with Int { def bar: Int })
defined type alias T

scala> showRaw(typeOf[T].dealias)
res18: String = RefinedType(List(TypeRef(ThisType(scala), scala.Char, List()), TypeRef(ThisType(scala), scala.Int, List())), Scope(newTermName("bar")))

scala> type T = (Char with (Int { def bar: Int }))
defined type alias T

scala> showRaw(typeOf[T].dealias)
res19: String = RefinedType(List(TypeRef(ThisType(scala), scala.Char, List()), RefinedType(List(TypeRef(ThisType(scala), scala.Int, List())), Scope(newTermName("bar")))), Scope())
```

I'm not 100% sure, but I'd say you should handle that. (`case rt @ RefinedType => rt.normalize.decls`)

/cc @xeno-by who was asking about this in relation to the subtle differences between `normalize` vs `dealias` vs `etaExpand`.