append :: forall n m a. (DIM n, KnownNat m) => SparseVector n a -> SparseVector m a -> SparseVector (n + m) a
append (SV x) (SV y) = SV (M.union x (shiftKeys s y))
  where
    s = natInt (Proxy :: Proxy n)

-- Serialization --------------------------------------------------------------
append :: forall n m a. (DIM n, KnownNat m) => SparseVector n a -> SparseVector m a -> SparseVector (n + m) a
append (SV x) (SV y) = SV (M.union x (shiftKeys s y))
  where
    s = natInt (Proxy :: Proxy n)

-- Serialization --------------------------------------------------------------
append (SV x) (SV y) = SV (M.union x (shiftKeys s y))
  where
    s = natInt (Proxy :: Proxy n)

-- Serialization --------------------------------------------------------------