    {-# LANGUAGE TemplateHaskell #-}
    module StatusNotifier.Watcher.Client where

    import DBus.Generation
    import Language.Haskell.TH

    import StatusNotifier.Watcher.Constants
    import StatusNotifier.Watcher.Service

    generateClient watcherClientGenerationParams watcherInterface

    printWatcherClient :: IO ()
    printWatcherClient =
      Q [Dec] -> IO [Dec]
    forall (m :: * -> *) a. Quasi m => Q a -> m a
    runQ (GenerationParams -> Interface -> Q [Dec]
    generateClient GenerationParams
    watcherClientGenerationParams Interface
    watcherInterface) IO [Dec] -> ([Dec] -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>=
           String -> IO ()
    putStrLn (String -> IO ()) -> ([Dec] -> String) -> [Dec] -> IO ()
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . [Dec] -> String
    forall a. Ppr a => a -> String
    pprint