def _build(self, model):
if not _is_dict_like(model):<EOL><INDENT>raise TypeError('<STR_LIT>'.format(<EOL>type(model).__name__))<EOL><DEDENT>[<EOL>self._dist_fn,<EOL>self._dist_fn_wrapped,<EOL>self._dist_fn_args,<EOL>self._dist_fn_name,  <EOL>] = _prob_chain_rule_flatten(model)<EOL>
Creates `dist_fn`, `dist_fn_wrapped`, `dist_fn_args`, `dist_fn_name`.