Lazy type-class resolution