@@ -400,7 +400,7 @@ union ::
400400 forall lhs rhs res.
401401 ( KnownNat (RecSize lhs),
402402 KnownNat (RecSize rhs),
403− KnownNat (RecSize lhs + RecSize rhs),
403+ KnownNat (RecSize res),
404404 res ~ Union lhs rhs,
405405 RecCopy lhs lhs res,
406406 RecCopy rhs rhs res
@@ -410,7 +410,7 @@ union ::
410410 Rec res
411411union lts rts =
412412 let !(I# size#) =
413− fromIntegral $ natVal' (proxy# :: Proxy# (RecSize lhs + RecSize rhs))
413+ fromIntegral $ natVal' (proxy# :: Proxy# (RecSize (Union lhs rhs)))
414414 in runST' $
415415 ST $ \s# ->
416416 case newSmallArray# size# (error "No value") s# of