diff --git a/src/Util/Eff.md b/src/Util/Eff.md
index 6025de3..40517ea 100644
--- a/src/Util/Eff.md
+++ b/src/Util/Eff.md
@@ -155,3 +155,28 @@ export
 trace : Has Logger fs => Lazy String -> Eff fs ()
 trace x = send $ Log Trace x
 ```
+
+## Choose
+
+Lifts any foldable data structure into the Choose effect, enabling the style of
+nondeterministic programming from the list monad
+
+```idris
+export
+oneOf : Has (Choose) fs => Foldable f =>
+    f a -> Eff fs a
+oneOf x = foldl oneOf' empty x
+  where
+  oneOf' : Eff fs a -> a -> Eff fs a
+  oneOf' acc val = pure val `alt` acc
+```
+
+Lifts any foldable of effectful computations into the Choose effect much the
+same as `oneOf`
+
+```idris
+export
+oneOfM : Has (Choose) fs => Foldable f =>
+    f (Eff fs a) -> Eff fs a
+oneOfM x = foldl alt empty x
+```