remove has / hasNot -> use filter / filterNot instead!
add filterPF and filterNotPF that take partial functions
rename map to propertyMap (name map collides with term from monad)
show how filter edges works
propertyMap: use Scala types, add test