findWindow :: Exp String -> Exp String -> Maybe HWND -> Action HWND
findWindow a b c = do
    v <- var
    Value a <- a
    Value b <- b
    c <- maybe (return Nothing) (fmap (Just . fromValue)) c
    emit $ FindWindow v a b c Nothing
    return $ return $ Value $ val v
findWindow :: Exp String -> Exp String -> Maybe HWND -> Action HWND
findWindow a b c = do
    v <- var
    Value a <- a
    Value b <- b
    c <- maybe (return Nothing) (fmap (Just . fromValue)) c
    emit $ FindWindow v a b c Nothing
    return $ return $ Value $ val v
findWindow a b c = do
    v <- var
    Value a <- a
    Value b <- b
    c <- maybe (return Nothing) (fmap (Just . fromValue)) c
    emit $ FindWindow v a b c Nothing
    return $ return $ Value $ val v