diff --git a/edn/src/types.rs b/edn/src/types.rs
index 4fb651ae..53342212 100644
--- a/edn/src/types.rs
+++ b/edn/src/types.rs
@@ -216,16 +216,44 @@ fn to_ord(value: &Value) -> i32 {
pub struct Pair(Value, Value);
+/// Converts `name` into a plain or namespaced value symbol, depending on
+/// whether or not `namespace` is given.
+///
+/// # Examples
+///
+/// ```
+/// # use edn::types::to_symbol;
+/// # use edn::types::Value;
+/// # use edn::symbols;
+/// let value = to_symbol("foo", "bar");
+/// assert_eq!(value, Value::NamespacedSymbol(symbols::NamespacedSymbol::new("foo", "bar")));
+///
+/// let value = to_symbol(None, "baz");
+/// assert_eq!(value, Value::PlainSymbol(symbols::PlainSymbol::new("baz")));
+/// ```
pub fn to_symbol<'a, T: Into