...Templates that interleave OCaml with already-familiar HTML. A fully composable router. Session management with pluggable back ends; and unified error handling that leaks no English strings from any level of your app. You can integrate Dream into a fully self-contained binary, or run it in large deployments behind proxies. Dream assumes no databases, environment variables, or configuration files, and requires no setup beyond installing the one package, dream. Dream sticks to base OCaml types as much as possible, introducing only a few types of its own. ...