  Fibrations over a category $B$, introduced to category theory by
Grothendieck, encode pseudo-functors $B^{op} \rightsquigarrow {\bf Cat}$, while
the special case of discrete fibrations encode presheaves $B^{op} \to {\bf
Set}$. A two-sided discrete variation encodes functors $B^{op} \times A \to
{\bf Set}$, which are also known as profunctors from $A$ to $B$. By work of
Street, all of these fibration notions can be defined internally to an
arbitrary 2-category or bicategory. While the two-sided discrete fibrations
model profunctors internally to ${\bf Cat}$, unexpectedly, the dual two-sided
codiscrete cofibrations are necessary to model $\cal V$-profunctors internally
to $\cal V$-$\bf Cat$.
