all1 :: (ApplicativeIO f, ApplicativeReader Float f, ApplicativeReader Int f) => f [Float]
all1 = liftIO (putStrLn "Hi") *> (work <$> ask <*> ask)
  where work :: Float -> Int -> [Float]
        work = flip replicate
all1 :: (ApplicativeIO f, ApplicativeReader Float f, ApplicativeReader Int f) => f [Float]
all1 = liftIO (putStrLn "Hi") *> (work <$> ask <*> ask)
  where work :: Float -> Int -> [Float]
        work = flip replicate
all1 = liftIO (putStrLn "Hi") *> (work <$> ask <*> ask)
  where work :: Float -> Int -> [Float]
        work = flip replicate