-extern SCM scm_system_environment;
-
-extern void scm_error_environment_unbound (const char *, SCM, SCM) SCM_NORETURN;
-extern void scm_error_environment_immutable_binding (const char *, SCM, SCM) SCM_NORETURN;
-extern void scm_error_environment_immutable_location (const char *, SCM, SCM) SCM_NORETURN;
-
-extern SCM scm_make_environment (void *type);
-extern SCM scm_environment_p (SCM env);
-extern SCM scm_environment_bound_p (SCM env, SCM sym);
-extern SCM scm_environment_ref (SCM env, SCM sym);
-extern SCM scm_c_environment_ref (SCM env, SCM sym);
-extern SCM scm_environment_fold (SCM env, SCM proc, SCM init);
-extern SCM scm_c_environment_fold (SCM env, scm_environment_folder proc, SCM data, SCM init);
-extern SCM scm_environment_define (SCM env, SCM sym, SCM val);
-extern SCM scm_environment_undefine (SCM env, SCM sym);
-extern SCM scm_environment_set_x (SCM env, SCM sym, SCM val);
-extern SCM scm_environment_cell (SCM env, SCM sym, SCM for_write);
-extern SCM scm_c_environment_cell (SCM env, SCM sym, int for_write);
-extern SCM scm_environment_observe (SCM env, SCM proc);
-extern SCM scm_environment_observe_weak (SCM env, SCM proc);
-extern SCM scm_c_environment_observe (SCM env, scm_environment_observer proc, SCM data, int weak_p);
-extern SCM scm_environment_unobserve (SCM token);
-
-extern void scm_environments_prehistory (void);
-extern void scm_init_environments (void);
+SCM_API SCM scm_system_environment;
+
+SCM_API void scm_error_environment_unbound (const char *, SCM, SCM) SCM_NORETURN;
+SCM_API void scm_error_environment_immutable_binding (const char *, SCM, SCM) SCM_NORETURN;
+SCM_API void scm_error_environment_immutable_location (const char *, SCM, SCM) SCM_NORETURN;
+
+SCM_API SCM scm_make_environment (void *type);
+SCM_API SCM scm_environment_p (SCM env);
+SCM_API SCM scm_environment_bound_p (SCM env, SCM sym);
+SCM_API SCM scm_environment_ref (SCM env, SCM sym);
+SCM_API SCM scm_c_environment_ref (SCM env, SCM sym);
+SCM_API SCM scm_environment_fold (SCM env, SCM proc, SCM init);
+SCM_API SCM scm_c_environment_fold (SCM env, scm_environment_folder proc, SCM data, SCM init);
+SCM_API SCM scm_environment_define (SCM env, SCM sym, SCM val);
+SCM_API SCM scm_environment_undefine (SCM env, SCM sym);
+SCM_API SCM scm_environment_set_x (SCM env, SCM sym, SCM val);
+SCM_API SCM scm_environment_cell (SCM env, SCM sym, SCM for_write);
+SCM_API SCM scm_c_environment_cell (SCM env, SCM sym, int for_write);
+SCM_API SCM scm_environment_observe (SCM env, SCM proc);
+SCM_API SCM scm_environment_observe_weak (SCM env, SCM proc);
+SCM_API SCM scm_c_environment_observe (SCM env, scm_environment_observer proc, SCM data, int weak_p);
+SCM_API SCM scm_environment_unobserve (SCM token);
+
+SCM_API void scm_environments_prehistory (void);
+SCM_API void scm_init_environments (void);