diff --git a/scheme/fd.rs b/scheme/fd.rs
new file mode 100644
index 0000000000000000000000000000000000000000..844f07d96ad701e2d9c8958c8d9b2c2e78c57a8e
--- /dev/null
+++ b/scheme/fd.rs
@@ -0,0 +1,5 @@
+/// A file descriptor.
+#[derive(PartialEq, Eq, PartialOrd, Ord, Hash)]
+pub struct Fd {
+    inner: usize,
+}