diff --git a/src/Language/Coq/Deep.hs b/src/Language/Coq/Deep.hs
index 8496e95a8a3a47d07580f2c08cdb1cfdc7db6e29..a415a7a1517de943a173dce3fd1292b61917003d 100644
--- a/src/Language/Coq/Deep.hs
+++ b/src/Language/Coq/Deep.hs
@@ -250,13 +250,16 @@ type SymbolTable = Map.Map Id VTyp
 
 -- | Extract the "symbol type"
 --
--- * if it is a function, the type of the value it returns
+-- * if it is a monadic function, the type of the value inside the
+--   monad
+-- * if it is a non-monadic function, the type of the value it returns
 -- * if it is a global variable, its type
 extractSymbolType :: ConversionParams -> Type -> Either ErrorMsg VTyp
 extractSymbolType  _ (Glob ty []) = pure ty
 extractSymbolType cp typ          = go typ
     where go (Arrow _ ty)                          = go ty
           go (Glob m [Glob ty []]) | m == monad cp = pure ty
+          go (Glob ty [])                          = pure ty
           go ty                                    = Left $ impossibleType ty
 
           impossibleType ty = "Impossible to extract symbol type of: " ++ show ty