CurryInfo: base-3.3.0 / Control.Monad.liftM3

definition:
 
liftM3 :: Monad m => (a -> b -> c -> d) -> m a -> m b -> m c -> m d
liftM3 f ma mb mc = do
  a <- ma 
  b <- mb 
  c <- mc
  return (f a b c)
demand:
 argument 1
deterministic:
 deterministic operation
documentation:
 
Promotes a ternary function to a monad.
The function arguments are scanned from left to right.

Examples:

    > liftM3 (\x y z -> x+y+z) [1,2] [3,4] [5,6]
    [9,10,10,11,10,11,11,12]
    > liftM3 (,,) [1,2] [3,4] [5,6]
   [(1,3,5),(1,3,6),(1,4,5),(1,4,6),(2,3,5),(2,3,6),(2,4,5),(2,4,6)]
failfree:
 (_, _, _, _, _)
indeterministic:
 referentially transparent operation
infix:
 no fixity defined
iotype:
 {(_,_,_,_,_) |-> _}
name:
 liftM3
precedence:
 no precedence defined
result-values:
 _
signature:
 Prelude.Monad e => (a -> b -> c -> d) -> e a -> e b -> e c -> e d
solution-complete:
 operation might suspend on free variables
terminating:
 yes
totally-defined:
 reducible on all ground data terms