The problem is we can't be sure if we get the underlying symbol,
the setter, or the getter. isVal and isVar only return true for the
underlying symbol (see repl session below)

Also we need to consider cases like the following

	trait A { 
		var foo: String
	} 
	trait C extends A { 
		def foo: String 
		def foo_=(x: String): Unit 
	}
 
In that case we have to compare C.foo with A.foo.getter and C.foo_= with A.foo.setter
thus we need a bit of logic that decides what kinds of symbols we compare :)

---- REPL session ----

scala> class A(val x: String)
defined class A

scala> val aFoo = typeOf[A].member(newTermName("x"))
aFoo: $r.intp.global.Symbol = value x

scala> aFoo.isVal
res2: Boolean = false

scala> aFoo.isGetter
res3: Boolean = true

scala> aFoo.isMethod
res11: Boolean = true