diff --git a/Util.hs b/Util.hs
--- a/Util.hs
+++ b/Util.hs
@@ -4,6 +4,7 @@
 import Control.Category
 import Control.Monad
 import Data.Bool
+import Data.Foldable
 import Data.Function (flip)
 import Data.Functor.Classes
 import Data.Maybe
@@ -11,7 +12,7 @@
 import Data.Monoid
 import Numeric.Natural
 
-import Prelude (Enum (..), Bounded, Eq, Ord, Read, Show, Foldable, Traversable (..))
+import Prelude (Enum (..), Bounded, Eq, Ord, Read, Show, Traversable (..))
 
 infixr 3 &=&
 (&=&) :: Applicative p => (a -> p b) -> (a -> p c) -> a -> p (b, c)
@@ -90,3 +91,8 @@
 instance (Applicative p, Semigroup a, Monoid a) => Monoid (Ap p a) where
     mempty = pure mempty
     mappend = (<>)
+
+(!!?) :: Foldable f => f a -> Natural -> Maybe a
+(!!?) = go . toList where go [] _ = Nothing
+                          go (x:_) 0 = Just x
+                          go (_:xs) n = go xs (pred n)
diff --git a/util.cabal b/util.cabal
--- a/util.cabal
+++ b/util.cabal
@@ -1,5 +1,5 @@
 name:                util
-version:             0.1.1.0
+version:             0.1.2.0
 synopsis:            Utilities
 -- description:         
 license:             BSD3
