applicative token type
factoring Type.Token out