I'm getting the errors below if I try to build tagged with head:

src/Data/Tagged.hs:57:5:
    ‛Tagged’ is applied to too many type arguments
    In an expression type signature:
      Tagged k s b -> Tagged k s b -> Bool
    In the expression:
        ghc-prim:GHC.Prim.coerce ((==) :: b -> b -> Bool) ::
          Tagged k s b -> Tagged k s b -> Bool
    In an equation for ‛==’:
        (==)
          = ghc-prim:GHC.Prim.coerce ((==) :: b -> b -> Bool) ::
              Tagged k s b -> Tagged k s b -> Bool

src/Data/Tagged.hs:57:9:
    ‛Tagged’ is applied to too many type arguments
    In an expression type signature:
      Tagged k s b -> Tagged k s b -> Ordering
    In the expression:
        ghc-prim:GHC.Prim.coerce (compare :: b -> b -> Ordering) ::
          Tagged k s b -> Tagged k s b -> Ordering
    In an equation for ‛compare’:
        compare
          = ghc-prim:GHC.Prim.coerce (compare :: b -> b -> Ordering) ::
              Tagged k s b -> Tagged k s b -> Ordering

src/Data/Tagged.hs:57:14:
    ‛Tagged’ is applied to too many type arguments
    In an expression type signature:
      (,) (Tagged k s b) (Tagged k s b) -> [] (Tagged k s b)
    In the expression:
        ghc-prim:GHC.Prim.coerce (range :: (,) b b -> [] b) ::
          (,) (Tagged k s b) (Tagged k s b) -> [] (Tagged k s b)
    In an equation for ‛range’:
        range
          = ghc-prim:GHC.Prim.coerce (range :: (,) b b -> [] b) ::
              (,) (Tagged k s b) (Tagged k s b) -> [] (Tagged k s b)

src/Data/Tagged.hs:57:18:
    ‛Tagged’ is applied to too many type arguments
    In an expression type signature: Tagged k s b
    In the expression:
        ghc-prim:GHC.Prim.coerce (minBound :: b) :: Tagged k s b
    In an equation for ‛minBound’:
        minBound = ghc-prim:GHC.Prim.coerce (minBound :: b) :: Tagged k s b

Line 57 is the "(" in

newtype Tagged s b = Tagged { unTagged :: b } deriving
  ( Eq, Ord, Ix, Bounded
#if __GLASGOW_HASKELL__ >= 707
  , Typeable
#endif
  )

Anyone any ideas what's going on?

-E