Made func_t constructor be protected.
Made val_t constructor not take scope_env_t, take env_t instead.