tagless with discipline in scala