Here is a more complete example without my ramblings to disturb you. Imagine the code being distributed across three files.
---
aspect Data.Aspect.Bool.All where

    instance Monoid Bool where
        mempty = True
        mappend False _ = False
        mappend True  b = b

---
aspect Data.Aspect.Bool.Any where

    instance Monoid Bool where
        mempty = False
        mappend True  _ = True
        mappend False b = b

---
module Test where

    import qualified Data.Bool under (Default, Data.Aspect.Bool.All) as A_All_ (Bool)
    import qualified Data.Bool under (Default, Data.Aspect.Bool.Any) as A_Any_ (Bool)

    allEven :: (Integral a) => [a] -> A_All_.Bool
    allEven = foldMap even                  -- uses instance from 'All' aspect

    anyOdd  :: (Integral a) => [a] -> A_Any_.Bool
    anyOdd  = foldMap odd                   -- uses instance from 'Any' aspect

    test :: (Integral a) => [a] -> Bool     -- no need for qualification
    test xs = allEven xs == not (anyOdd xs) -- works because booleanss are still booleans