CurryInfo: base-3.4.0 / Control.Monad.liftM3

definition: Info
 
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: Info
 argument 1
deterministic: Info
 deterministic operation
documentation: Info
 
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: Info
 (_, _, _, _, _)
indeterministic: Info
 referentially transparent operation
infix: Info
 no fixity defined
iotype: Info
 {(_,_,_,_,_) |-> _}
name: Info
 liftM3
precedence: Info
 no precedence defined
result-values: Info
 _
signature: Info
 Prelude.Monad e => (a -> b -> c -> d) -> e a -> e b -> e c -> e d
solution-complete: Info
 operation might suspend on free variables
terminating: Info
 yes
totally-defined: Info
 reducible on all ground data terms