    -- |
    -- This module partially reexports "Language.Haskell.Exts.Fixity", adapting `applyFixityies`.

    module Language.Haskell.Exts.Simple.Fixity (
        module Language.Haskell.Exts.Simple.Fixity,
        module Language.Haskell.Exts.Fixity
    ) where

    import qualified Language.Haskell.Exts.Fixity as H
    import Language.Haskell.Exts.Fixity (
        Fixity(..),
        infix_, infixl_, infixr_,
        preludeFixities, baseFixities,
        AppFixity,
     )
    import Language.Haskell.Exts.Simple.Syntax
    import Language.Haskell.Exts.SrcLoc
    import Control.Monad
    import Control.Monad.Fail

    -- * Functions

    applyFixities :: (AppFixity ast, Functor ast, MonadFail m) => [Fixity] -> ast () -> m (ast ())
    applyFixities :: forall (ast :: * -> *) (m :: * -> *).
    (AppFixity ast, Functor ast, MonadFail m) =>
    [Fixity] -> ast () -> m (ast ())
    applyFixities [Fixity]
    fixs = (ast SrcSpanInfo -> ast ()) -> m (ast SrcSpanInfo) -> m (ast ())
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM ((SrcSpanInfo -> ()) -> ast SrcSpanInfo -> ast ()
    forall a b. (a -> b) -> ast a -> ast b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (() -> SrcSpanInfo -> ()
    forall a b. a -> b -> a
    const ())) (m (ast SrcSpanInfo) -> m (ast ()))
    -> (ast () -> m (ast SrcSpanInfo)) -> ast () -> m (ast ())
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . [Fixity] -> ast SrcSpanInfo -> m (ast SrcSpanInfo)
    forall (m :: * -> *).
    MonadFail m =>
    [Fixity] -> ast SrcSpanInfo -> m (ast SrcSpanInfo)
    forall (ast :: * -> *) (m :: * -> *).
    (AppFixity ast, MonadFail m) =>
    [Fixity] -> ast SrcSpanInfo -> m (ast SrcSpanInfo)
    H.applyFixities [Fixity]
    fixs (ast SrcSpanInfo -> m (ast SrcSpanInfo))
    -> (ast () -> ast SrcSpanInfo) -> ast () -> m (ast SrcSpanInfo)
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . (() -> SrcSpanInfo) -> ast () -> ast SrcSpanInfo
    forall a b. (a -> b) -> ast a -> ast b
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
    fmap (SrcSpanInfo -> () -> SrcSpanInfo
    forall a b. a -> b -> a
    const SrcSpanInfo
    noSrcSpan)