Type-logical grammars typically take verbs to be derived. It is quite standard to take transitive verbs to be typed VP/NP, ditransitives as (in terms of the Lambek calculus typing conventions) VP/NP/NP, prepositional transitives as VP/PP/NP, and so on, where VP itself is nothing more than an abbreviation for X\S, with X ranging over a set of types---all those that can appear as the last argument in (including 'that' clauses, PPs ('Under the bed has become everyone's favorite place to store beer'), APs, etc. The point is that if you keep your ontology restricted to propositions, entities and functions built from these primitive logical types (as in classical montegovian semantics), then verbs can be characterized as syntactic objects which combine with a list of arguments specified in the lexicon (aka their valence). The tight linkage between semantic and syntactic types in type-logical versions of categorial grammar ensures that semantic functors and syntactic functors mirror each other in their respective argument structures; hence a predicate of type <e,<e,t>> is directly reflected in the syntactic type of a transitive verb as (NP\S)/NP. Things work a little differently in non-Lambek versions of TLG, such as the system introduced by Dick Oerhle in 1994 and extended and codified in so called Abstract Categorial Grammar (de Groote) and λ-Grammar (Muskens) as a fragment of propositional linear logic, but the idea is essentially the same.
The Lambek and Oehrle systems are combined in the hybrid type-logical proof theory developed in Kubota and Levine's 2020 monograph Type-Logical Syntax from MIT Press, which also includes a compact discussion of the relationship between TLG and CCG; you might want to take a look at their final chapter on the spectrum of CG variants.