@@ -36,6 +36,9 @@ selectD2 ::
3636 ) => Dist (Either a b) -> Matrix Prob a b -> Dist b
3737selectD2 (D d) m = D (junc m identity `comp` d)
3838
39+-- Composition with identity
40+compId m = comp identity m
41+
3942randomDist :: forall a . (Countable a, FromListsN () a) => Gen (Dist a)
4043randomDist = do
4144 let size = fromInteger (natVal (Proxy :: Proxy (Count a)))
@@ -157,6 +160,10 @@ benchmark = defaultMain [
157160 bgroup "200x200" [
158161 bench "WHNF - 200x200" $ whnf (comp m31) m32
159162 , bench "NF - 200x200" $ nf (comp m31) m32
163+ ],
164+ bgroup "200x200 - RULES" [
165+ bench "No rules - 200x200" $ nf (comp m21) identity
166+ , bench "Rules - 200x200" $ nf compId m21
160167 ] ],
161168 env setupEnv2 $ \ ~(m21, m40, dist, dist2, dl1, dl2) -> bgroup "Matrix vs List - `select`" [
162169 bgroup "Distribution `select` - 100+100 / 100x100" [