on master help sign in
Use case rather than let
97aaeacMatthew Pickering
src/Data/Generics/Internal/VL/Lens.hs+2−2
@@ -42,8 +42,8 @@ set l x = runIdentity . l (Identity . const x)
42lens2lensvl :: ALens a b s t -> Lens s t a b
42lens2lensvl :: ALens a b s t -> Lens s t a b
43lens2lensvl (ALens _get _set) =
43lens2lensvl (ALens _get _set) =
44 \f x ->
44 \f x ->
45− let (c, a) = oneShot _get (inline x)
45+ case _get x of
46− in oneShot (_set . (c, )) <$> f (inline a)
46+ (c, a) -> (_set . (c, )) <$> f a
47{-# INLINE lens2lensvl #-}
47{-# INLINE lens2lensvl #-}
48
48
49ravel :: (ALens a b a b -> ALens a b s t)
49ravel :: (ALens a b a b -> ALens a b s t)
src/Data/Generics/Product/Internal/Positions.hs+3−3
@@ -49,18 +49,18 @@ class GHasPosition (i :: Nat) (s :: Type -> Type) (t :: Type -> Type) a b | s i
49type GHasPosition' i s a = GHasPosition i s s a a
49type GHasPosition' i s a = GHasPosition i s s a a
50
50
51instance (GHasPosition i l l' a b, GHasPosition i r r' a b) => GHasPosition i (l :+: r) (l' :+: r') a b where
51instance (GHasPosition i l l' a b, GHasPosition i r r' a b) => GHasPosition i (l :+: r) (l' :+: r') a b where
52− gposition = \x -> sumIso (choosing (gposition @i) (gposition @i) x)
52+ gposition = sumIso . choosing (gposition @i) (gposition @i)
53 {-# INLINE gposition #-}
53 {-# INLINE gposition #-}
54
54
55instance GHasPosition i s t a b => GHasPosition i (M1 D meta s) (M1 D meta t) a b where
55instance GHasPosition i s t a b => GHasPosition i (M1 D meta s) (M1 D meta t) a b where
56− gposition x = mLens (gposition @i x)
56+ gposition = mLens . gposition @i
57 {-# INLINE gposition #-}
57 {-# INLINE gposition #-}
58
58
59instance
59instance
60 ( IndexList (i - 1) as bs a b
60 ( IndexList (i - 1) as bs a b
61 , GIsList () f g as bs
61 , GIsList () f g as bs
62 ) => GHasPosition i (M1 C meta f) (M1 C meta g) a b where
62 ) => GHasPosition i (M1 C meta f) (M1 C meta g) a b where
63− gposition x = mIso (glist @() (point @(i - 1) x))
63+ gposition = mIso . glist @() . point @(i - 1)
64 {-# INLINE gposition #-}
64 {-# INLINE gposition #-}
65
65
66type family Size f :: Nat where
66type family Size f :: Nat where