Typechecking but untested version of the whole kit and kaboodle