about summary refs log tree commit diff
path: root/lib/Grav2ty/Core.hs
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Grav2ty/Core.hs')
-rw-r--r--lib/Grav2ty/Core.hs5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/Grav2ty/Core.hs b/lib/Grav2ty/Core.hs
index 4d61c5a..171cdf9 100644
--- a/lib/Grav2ty/Core.hs
+++ b/lib/Grav2ty/Core.hs
@@ -164,13 +164,13 @@ makeLenses ''Grav2tyState
 type Grav2ty p g m a = StateT (Grav2tyState p g) m a
 
 -- | Shortcut for @'setObject' Nothing@.
-addObject :: Monad m => Object a -> Grav2ty a g m ()
+addObject :: Monad m => Object a -> Grav2ty a g m Id
 addObject = setObject Nothing
 
 -- | setObject overwrites or sets the 'Object' at the given 'Id'.
 --   If no 'Id' is given it picks a new 'Id' using '_highestId'
 --   that is guaranteed to be unused (if nothing messed with the 'World').
-setObject :: Monad m => Maybe Id -> Object a -> Grav2ty a g m ()
+setObject :: Monad m => Maybe Id -> Object a -> Grav2ty a g m Id
 setObject id obj = do
   id <- case id of
           Just id -> pure id
@@ -178,6 +178,7 @@ setObject id obj = do
             highestId += 1
             use highestId
   world %= M.insert id obj
+  pure id
 
 -- | Returns the 'Object' at 'Id'.
 getObject :: Monad m => Id -> Grav2ty a g m (Maybe (Object a))