Confusing example in docs for Custom Distributions

I am trying to understand how custom distributions work in PyMC and I find the minimalistic example in the docs to be confusing. Namely, where does the lambda variable in the logp function come from? Is this supposed to be another variable in the model that is just being omitted here? Why doesn’t it have to be passed in the observed dict?

def logp(failure, value):
    return (failure * log(λ) - λ * value).sum()

exp_surv = pm.DensityDist('exp_surv', logp, observed={'failure':failure, 'value':t})

There are a bit more information from this FAQ maybe answers your question: Frequently Asked Questions