func (s *SliceOfSomething) Unshift(item Something) *SliceOfSomething {
	s.items = append([]Something{item}, s.items...)
	return s
}
Unshift adds the given Something to the start of the slice
package slicy
import (
	"github.com/cheekybits/genny/generic"
)
type Something generic.Type
type SliceOfSomething struct {
	items []Something
}
func NewFromSomethingSlice(items []Something) *SliceOfSomething {
	slicy := &SliceOfSomething{items}
	return slicy
}
func (s *SliceOfSomething) Filter(filterFunc func(Something) bool) *SliceOfSomething {
	var newItems []Something
	for _, value := range s.items {
		if filterFunc(value) {
			newItems = append(newItems, value)
		}
	}
	return s
}
func (s *SliceOfSomething) Map(mapFunc func(Something) Something) *SliceOfSomething {
	for index, value := range s.items {
		s.items[index] = mapFunc(value)
	}
	return s
}
func (s *SliceOfSomething) Shift() *SliceOfSomething {
	s.items = s.items[1:]
	return s
}