on master help sign in
Apply ormolu from default.nix
aa02e13Sridhar Ratnakumar
src/JRec.hs+2−2
@@ -11,7 +11,7 @@ module JRec
11 )
11 )
12where
12where
13
13
14−import Control.Lens ((&), (.~), (^.), coerced)
14+import Control.Lens (coerced, (&), (.~), (^.))
15import qualified "generic-lens" Data.Generics.Product.Fields as GL
15import qualified "generic-lens" Data.Generics.Product.Fields as GL
16import qualified "generic-optics" Data.Generics.Product.Fields as GO
16import qualified "generic-optics" Data.Generics.Product.Fields as GO
17import qualified "generic-lens" Data.Generics.Wrapped as GL
17import qualified "generic-lens" Data.Generics.Wrapped as GL
@@ -23,8 +23,8 @@ import GHC.OverloadedLabels
23import GHC.TypeLits
23import GHC.TypeLits
24import Generic.Data
24import Generic.Data
25import JRec.Field
25import JRec.Field
26+import JRec.Super (Rec, (:=) (..))
26import qualified JRec.Super as R
27import qualified JRec.Super as R
27−import JRec.Super ((:=) (..), Rec)
28import JRec.Tuple
28import JRec.Tuple
29import Unsafe.Coerce
29import Unsafe.Coerce
30
30
src/JRec/Super.hs+42−37
@@ -128,24 +128,26 @@ rnil = unsafeRNil 0
128-- | An empty record with an initial size for the record
128-- | An empty record with an initial size for the record
129unsafeRNil :: Int -> Rec '[]
129unsafeRNil :: Int -> Rec '[]
130unsafeRNil (I# n#) =
130unsafeRNil (I# n#) =
131− runST' $ ST $ \s# ->
131+ runST' $
132+ ST $ \s# ->
132− case newSmallArray# n# (error "No Value") s# of
133+ case newSmallArray# n# (error "No Value") s# of
133− (# s'#, arr# #) ->
134+ (# s'#, arr# #) ->
134− case unsafeFreezeSmallArray# arr# s'# of
135+ case unsafeFreezeSmallArray# arr# s'# of
135− (# s''#, a# #) -> (# s''#, MkRec a# #)
136+ (# s''#, a# #) -> (# s''#, MkRec a# #)
136{-# INLINE unsafeRNil #-}
137{-# INLINE unsafeRNil #-}
137
138
138-- Not in superrecord
139-- Not in superrecord
139recCopy :: forall lts rts. RecCopy lts lts rts => Rec lts -> Rec rts
140recCopy :: forall lts rts. RecCopy lts lts rts => Rec lts -> Rec rts
140recCopy r@(MkRec vec#) =
141recCopy r@(MkRec vec#) =
141 let size# = sizeofSmallArray# vec#
142 let size# = sizeofSmallArray# vec#
142− in runST' $ ST $ \s# ->
143+ in runST' $
144+ ST $ \s# ->
143− case newSmallArray# size# (error "No value") s# of
145+ case newSmallArray# size# (error "No value") s# of
144− (# s'#, arr# #) ->
146+ (# s'#, arr# #) ->
145− case recCopyInto (Proxy @lts) r (Proxy @rts) arr# s'# of
147+ case recCopyInto (Proxy @lts) r (Proxy @rts) arr# s'# of
146− s''# ->
148+ s''# ->
147− case unsafeFreezeSmallArray# arr# s''# of
149+ case unsafeFreezeSmallArray# arr# s''# of
148− (# s'''#, a# #) -> (# s'''#, MkRec a# #)
150+ (# s'''#, a# #) -> (# s'''#, MkRec a# #)
149{-# INLINE recCopy #-}
151{-# INLINE recCopy #-}
150
152
151class RecCopy (pts :: [*]) (lts :: [*]) (rts :: [*]) where
153class RecCopy (pts :: [*]) (lts :: [*]) (rts :: [*]) where
@@ -195,13 +197,14 @@ unsafeRCons ::
195 Rec lts ->
197 Rec lts ->
196 Rec (l := t ': lts)
198 Rec (l := t ': lts)
197unsafeRCons (_ := val) (MkRec vec#) =
199unsafeRCons (_ := val) (MkRec vec#) =
198− runST' $ ST $ \s# ->
200+ runST' $
201+ ST $ \s# ->
199− case unsafeThawSmallArray# vec# s# of
202+ case unsafeThawSmallArray# vec# s# of
200− (# s'#, arr# #) ->
203+ (# s'#, arr# #) ->
201− case writeSmallArray# arr# size# (unsafeCoerce# val) s'# of
204+ case writeSmallArray# arr# size# (unsafeCoerce# val) s'# of
202− s''# ->
205+ s''# ->
203− case unsafeFreezeSmallArray# arr# s''# of
206+ case unsafeFreezeSmallArray# arr# s''# of
204− (# s'''#, a# #) -> (# s'''#, MkRec a# #)
207+ (# s'''#, a# #) -> (# s'''#, MkRec a# #)
205 where
208 where
206 !(I# size#) = fromIntegral $ natVal' (proxy# :: Proxy# s)
209 !(I# size#) = fromIntegral $ natVal' (proxy# :: Proxy# s)
207{-# INLINE unsafeRCons #-}
210{-# INLINE unsafeRCons #-}
@@ -308,15 +311,16 @@ set _ !val (MkRec vec#) =
308 dynVal :: Any
311 dynVal :: Any
309 !dynVal = unsafeCoerce# val
312 !dynVal = unsafeCoerce# val
310 r2 =
313 r2 =
311− runST' $ ST $ \s# ->
314+ runST' $
315+ ST $ \s# ->
312− case newSmallArray# size# (error "No value") s# of
316+ case newSmallArray# size# (error "No value") s# of
313− (# s'#, arr# #) ->
317+ (# s'#, arr# #) ->
314− case copySmallArray# vec# 0# arr# 0# size# s'# of
318+ case copySmallArray# vec# 0# arr# 0# size# s'# of
315− s''# ->
319+ s''# ->
316− case writeSmallArray# arr# (size# -# index# -# 1#) dynVal s''# of
320+ case writeSmallArray# arr# (size# -# index# -# 1#) dynVal s''# of
317− s'''# ->
321+ s'''# ->
318− case unsafeFreezeSmallArray# arr# s'''# of
322+ case unsafeFreezeSmallArray# arr# s'''# of
319− (# s''''#, a# #) -> (# s''''#, MkRec a# #)
323+ (# s''''#, a# #) -> (# s''''#, MkRec a# #)
320 in r2
324 in r2
321{-# INLINE set #-}
325{-# INLINE set #-}
322
326
@@ -380,15 +384,16 @@ combine ::
380combine lts rts =
384combine lts rts =
381 let !(I# size#) =
385 let !(I# size#) =
382 fromIntegral $ natVal' (proxy# :: Proxy# (RecSize lhs + RecSize rhs))
386 fromIntegral $ natVal' (proxy# :: Proxy# (RecSize lhs + RecSize rhs))
383− in runST' $ ST $ \s# ->
387+ in runST' $
388+ ST $ \s# ->
384− case newSmallArray# size# (error "No value") s# of
389+ case newSmallArray# size# (error "No value") s# of
385− (# s'#, arr# #) ->
390+ (# s'#, arr# #) ->
386− case recCopyInto (Proxy :: Proxy lhs) lts (Proxy :: Proxy res) arr# s'# of
391+ case recCopyInto (Proxy :: Proxy lhs) lts (Proxy :: Proxy res) arr# s'# of
387− s''# ->
392+ s''# ->
388− case recCopyInto (Proxy :: Proxy rhs) rts (Proxy :: Proxy res) arr# s''# of
393+ case recCopyInto (Proxy :: Proxy rhs) rts (Proxy :: Proxy res) arr# s''# of
389− s'''# ->
394+ s'''# ->
390− case unsafeFreezeSmallArray# arr# s'''# of
395+ case unsafeFreezeSmallArray# arr# s'''# of
391− (# s''''#, a# #) -> (# s''''#, MkRec a# #)
396+ (# s''''#, a# #) -> (# s''''#, MkRec a# #)
392{-# INLINE combine #-}
397{-# INLINE combine #-}
393
398
394-- | Alias for 'combine'
399-- | Alias for 'combine'