@@ -400,7 +400,7 @@ union ::
400 forall lhs rhs res.
400 forall lhs rhs res.
401 ( KnownNat (RecSize lhs),
401 ( KnownNat (RecSize lhs),
402 KnownNat (RecSize rhs),
402 KnownNat (RecSize rhs),
403− KnownNat (RecSize lhs + RecSize rhs),
403+ KnownNat (RecSize res),
404 res ~ Union lhs rhs,
404 res ~ Union lhs rhs,
405 RecCopy lhs lhs res,
405 RecCopy lhs lhs res,
406 RecCopy rhs rhs res
406 RecCopy rhs rhs res
@@ -410,7 +410,7 @@ union ::
411union lts rts =
411union lts rts =
412 let !(I# size#) =
412 let !(I# size#) =
413− fromIntegral $ natVal' (proxy# :: Proxy# (RecSize lhs + RecSize rhs))
413+ fromIntegral $ natVal' (proxy# :: Proxy# (RecSize (Union lhs rhs)))
414 in runST' $
414 in runST' $
415 ST $ \s# ->
415 ST $ \s# ->
416 case newSmallArray# size# (error "No value") s# of
416 case newSmallArray# size# (error "No value") s# of