on master help sign in
Run ormolu
7df1dfbSridhar Ratnakumar
src/JRec.hs+4−5
@@ -8,11 +8,11 @@ module JRec
8 pattern ExactRecord,
8 pattern ExactRecord,
9 unField,
9 unField,
10 union,
10 union,
11− (:=)(..),
11+ (:=) (..),
12 )
12 )
13where
13where
14
14
15−import Control.Lens ((.~), coerced)
15+import Control.Lens ((&), (.~), (^.), coerced)
16import qualified Data.Generics.Product.Fields as GL
16import qualified Data.Generics.Product.Fields as GL
17import qualified Data.Generics.Wrapped as GL
17import qualified Data.Generics.Wrapped as GL
18import Data.Proxy
18import Data.Proxy
@@ -21,11 +21,10 @@ import GHC.Generics
21import GHC.OverloadedLabels
21import GHC.OverloadedLabels
22import GHC.TypeLits
22import GHC.TypeLits
23import Generic.Data
23import Generic.Data
24+import JRec.Field
24import qualified JRec.Super as R
25import qualified JRec.Super as R
25−import Control.Lens ((&), (^.))
26−import JRec.Super ((:=)(..))
26+import JRec.Super ((:=) (..))
27import JRec.Tuple
27import JRec.Tuple
28−import JRec.Field
29import Unsafe.Coerce
28import Unsafe.Coerce
30
29
31----------------------------------------------------------------------------
30----------------------------------------------------------------------------
test/JRecSpec.hs+5−7
@@ -1,19 +1,19 @@
1module JRecSpec (spec) where
1module JRecSpec (spec) where
2
2
3−import Test.Hspec
4−import Control.Lens ((&), (^.), (.~))
3+import Control.Lens ((&), (.~), (^.))
5import JRec
4import JRec
5+import Test.Hspec
6
6
7spec :: Spec
7spec :: Spec
8−spec = do
8+spec = do
9 it "polymorphic" $ do
9 it "polymorphic" $ do
10 (ExactRecord (#u := True, #a := 5, #b := 6) & #u .~ 5)
10 (ExactRecord (#u := True, #a := 5, #b := 6) & #u .~ 5)
11− `shouldBe` ExactRecord (#u := 5, #a := 5, #b := 6)
11+ `shouldBe` ExactRecord (#u := 5, #a := 5, #b := 6)
12 it "show" $ do
12 it "show" $ do
13 show (ExactRecord ()) `shouldBe` "{}"
13 show (ExactRecord ()) `shouldBe` "{}"
14 show (ExactRecord (#foo := True)) `shouldBe` "{foo = True}"
14 show (ExactRecord (#foo := True)) `shouldBe` "{foo = True}"
15 show (ExactRecord (#foo := True, #bar := 0)) `shouldBe` "{foo = True, bar = 0}"
15 show (ExactRecord (#foo := True, #bar := 0)) `shouldBe` "{foo = True, bar = 0}"
16− it "get" $ do
16+ it "get" $ do
17 let getA1 :: Record ("a" := Int ': rest) -> Int
17 let getA1 :: Record ("a" := Int ': rest) -> Int
18 getA1 = (^. #a)
18 getA1 = (^. #a)
19 let getA2 :: Record ("u" := Bool ': "a" := Int ': rest) -> Int
19 let getA2 :: Record ("u" := Bool ': "a" := Int ': rest) -> Int
@@ -39,5 +39,3 @@ spec = do
39 `shouldBe` (ExactRecord (#u := True, #a := 8))
39 `shouldBe` (ExactRecord (#u := True, #a := 8))
40 setA2 (ExactRecord (#u := True, #a := 5, #b := 6))
40 setA2 (ExactRecord (#u := True, #a := 5, #b := 6))
41 `shouldBe` (ExactRecord (#u := True, #a := 8, #b := 6))
41 `shouldBe` (ExactRecord (#u := True, #a := 8, #b := 6))
42−
43−