type classes expression problem