extract ImmutableSetBase
rename to ImmutableMapBase
refactoring DependArrow composition <- inheritance