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})
```