diff --git a/hasbolt.cabal b/hasbolt.cabal
--- a/hasbolt.cabal
+++ b/hasbolt.cabal
@@ -1,6 +1,6 @@
 cabal-version: >=1.10
 name:          hasbolt
-version:       0.1.4.4
+version:       0.1.4.5
 license:       BSD3
 license-file:  LICENSE
 copyright:     (c) 2018 Pavel Yakovlev
@@ -83,7 +83,7 @@
         base >=4.8 && <5,
         hasbolt -any,
         hspec >=2.4.1 && <2.8,
-        QuickCheck >=2.9 && <2.14,
-        text >=1.2.4.0 && <1.3,
+        QuickCheck >=2.9 && <2.15,
+        text >=1.2.4.1 && <1.3,
         containers >=0.6.2.1 && <0.7,
-        bytestring >=0.10.10.1 && <0.11
+        bytestring >=0.10.12.0 && <0.11
diff --git a/src/Database/Bolt.hs b/src/Database/Bolt.hs
--- a/src/Database/Bolt.hs
+++ b/src/Database/Bolt.hs
@@ -8,7 +8,7 @@
     , Pipe
     , BoltCfg (..)
     , Value (..), IsValue (..), Structure (..), Record, RecordValue (..), exact, exactMaybe, at
-    , Node (..), Relationship (..), URelationship (..), Path (..)
+    , maybeAt, Node (..), Relationship (..), URelationship (..), Path (..)
     ) where
 
 import           Database.Bolt.Connection hiding (query, queryP)
@@ -22,11 +22,12 @@
 import           Data.Text                     (Text)
 import           Data.Map.Strict               (Map)
 import           Control.Monad.Trans           (MonadIO)
+import           GHC.Stack                     (HasCallStack)
 
 -- |Runs Cypher query and returns list of obtained 'Record's. Strict version
-query :: MonadIO m => Text -> BoltActionT m [Record]
+query :: MonadIO m => HasCallStack => Text -> BoltActionT m [Record]
 query = query'
 
 -- |Runs Cypher query with parameters and returns list of obtained 'Record's. Strict version
-queryP :: MonadIO m => Text -> Map Text Value -> BoltActionT m [Record]
+queryP :: MonadIO m => HasCallStack => Text -> Map Text Value -> BoltActionT m [Record]
 queryP = queryP'
diff --git a/src/Database/Bolt/Record.hs b/src/Database/Bolt/Record.hs
--- a/src/Database/Bolt/Record.hs
+++ b/src/Database/Bolt/Record.hs
@@ -82,3 +82,9 @@
 at record key = case M.lookup key record of
                   Just x  -> liftE $ withExceptT WrongMessageFormat (exact x)
                   Nothing -> throwError $ RecordHasNoKey key
+
+-- |Possibly gets result from obtained record
+maybeAt :: (Monad m, RecordValue a) => Record -> Text -> BoltActionT m (Maybe a)
+maybeAt record key = case M.lookup key record of
+                  Just x  -> liftE $ withExceptT WrongMessageFormat (exact x)
+                  Nothing -> return Nothing
