introduce Spore trait and explain how type constraints are expressed