sml: add indexing properties and remove unwanted types

Start an attempt to do a backwards compatible port of the indexing
branch.