s-exp example use new typeclass features