on master help sign in
Constraint result size to match union
commit321daa44a5271ba0c843c2fcb6aea896bdb4d307 authorSridhar Ratnakumar <srid@srid.ca> dateSun 23 Aug 2020, 14:14 (6 years ago) parent7bbf81c
2 files changed+3−3
src/JRec.hs+1−1 src/JRec/Internal.hs+2−2
src/JRec.hs+1−1
@@ -65,7 +65,7 @@ union ::
6565 forall lhs rhs res.
6666 ( KnownNat (R.RecSize lhs),
6767 KnownNat (R.RecSize rhs),
68− KnownNat (R.RecSize lhs + R.RecSize rhs),
68+ KnownNat (R.RecSize res),
6969 res ~ R.Union lhs rhs,
7070 R.RecCopy lhs lhs res,
7171 R.RecCopy rhs rhs res
src/JRec/Internal.hs+2−2
@@ -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