diff --git a/changelog.txt b/changelog.txt
--- a/changelog.txt
+++ b/changelog.txt
@@ -9,3 +9,5 @@
   + <<<**> and <**>>> for shortest and longest match, respectively
     defined some/many and variants using <**>>> and <<<**>
     disambiguation remains very experimental 
+0.3.0.9 -> 0.3.0.10
+  + exporting chooses
diff --git a/gll.cabal b/gll.cabal
--- a/gll.cabal
+++ b/gll.cabal
@@ -3,7 +3,7 @@
 
 -- The name of the package.
 name:                gll
-version:             0.3.0.9
+version:             0.3.0.10
 synopsis:            GLL parser with simple combinator interface 
 license:             BSD3
 license-file:        LICENSE
diff --git a/src/GLL/Combinators/Interface.hs b/src/GLL/Combinators/Interface.hs
--- a/src/GLL/Combinators/Interface.hs
+++ b/src/GLL/Combinators/Interface.hs
@@ -193,7 +193,7 @@
     -- *** Semantic actions
     (<$$>),
     -- *** Nonterminal introduction
-    (<:=>),(<::=>),
+    (<:=>),(<::=>),chooses,
     -- * Types
     -- ** Grammar (combinator expression) types
     BNF, SymbExpr, AltExpr, AltExprs,
@@ -330,6 +330,10 @@
 --  grammar are reversed.
 (<::=>) :: (Show t, Ord t, HasAlts b) => String -> b t a -> SymbExpr t a 
 x <::=> altPs = mkNtRule True False x altPs
+
+-- | Variant of <::=> that can be supplied with a list of alternates
+chooses :: (Show t, Ord t) => String -> [AltExpr t a] -> SymbExpr t a
+chooses p alts = (<::=>) p (OO alts)
 
 infixl 4 <$$>
 -- |
