doc
function types (+ a bit of `checking`) & hooks