on master help sign in
examples: Use CPP to support multiple GHC versions
14ec0deErik de Castro Lopo
examples/main/feedforward.hs+3−1
@@ -1,4 +1,5 @@
1{-# LANGUAGE BangPatterns #-}
1{-# LANGUAGE BangPatterns #-}
2+{-# LANGUAGE CPP #-}
2{-# LANGUAGE DataKinds #-}
3{-# LANGUAGE DataKinds #-}
3{-# LANGUAGE ScopedTypeVariables #-}
4{-# LANGUAGE ScopedTypeVariables #-}
4{-# LANGUAGE TypeOperators #-}
5{-# LANGUAGE TypeOperators #-}
@@ -10,8 +11,9 @@ import Data.List ( foldl' )
10
11
11import qualified Data.ByteString as B
12import qualified Data.ByteString as B
12import Data.Serialize
13import Data.Serialize
14+#if ! MIN_VERSION_base(4,13,0)
13import Data.Semigroup ( (<>) )
15import Data.Semigroup ( (<>) )
14−
16+#endif
15import GHC.TypeLits
17import GHC.TypeLits
16
18
17import qualified Numeric.LinearAlgebra.Static as SA
19import qualified Numeric.LinearAlgebra.Static as SA
examples/main/gan-mnist.hs+3
@@ -1,4 +1,5 @@
1{-# LANGUAGE BangPatterns #-}
1{-# LANGUAGE BangPatterns #-}
2+{-# LANGUAGE CPP #-}
2{-# LANGUAGE DataKinds #-}
3{-# LANGUAGE DataKinds #-}
3{-# LANGUAGE GADTs #-}
4{-# LANGUAGE GADTs #-}
4{-# LANGUAGE ScopedTypeVariables #-}
5{-# LANGUAGE ScopedTypeVariables #-}
@@ -43,7 +44,9 @@ import Control.Monad.Trans.Except
43import qualified Data.Attoparsec.Text as A
44import qualified Data.Attoparsec.Text as A
44import qualified Data.ByteString as B
45import qualified Data.ByteString as B
45import Data.List ( foldl' )
46import Data.List ( foldl' )
47+#if ! MIN_VERSION_base(4,13,0)
46import Data.Semigroup ( (<>) )
48import Data.Semigroup ( (<>) )
49+#endif
47import Data.Serialize
50import Data.Serialize
48import qualified Data.Text as T
51import qualified Data.Text as T
49import qualified Data.Text.IO as T
52import qualified Data.Text.IO as T
examples/main/mnist.hs+4
@@ -1,4 +1,5 @@
1{-# LANGUAGE BangPatterns #-}
1{-# LANGUAGE BangPatterns #-}
2+{-# LANGUAGE CPP #-}
2{-# LANGUAGE DataKinds #-}
3{-# LANGUAGE DataKinds #-}
3{-# LANGUAGE ScopedTypeVariables #-}
4{-# LANGUAGE ScopedTypeVariables #-}
4{-# LANGUAGE TypeOperators #-}
5{-# LANGUAGE TypeOperators #-}
@@ -13,7 +14,10 @@ import Control.Monad.Trans.Except
13
14
14import qualified Data.Attoparsec.Text as A
15import qualified Data.Attoparsec.Text as A
15import Data.List ( foldl' )
16import Data.List ( foldl' )
17+#if ! MIN_VERSION_base(4,13,0)
16import Data.Semigroup ( (<>) )
18import Data.Semigroup ( (<>) )
19+#endif
20+
17import qualified Data.Text as T
21import qualified Data.Text as T
18import qualified Data.Text.IO as T
22import qualified Data.Text.IO as T
19import qualified Data.Vector.Storable as V
23import qualified Data.Vector.Storable as V
examples/main/recurrent.hs+4
@@ -9,8 +9,12 @@
9import Control.Monad ( foldM )
9import Control.Monad ( foldM )
10import Control.Monad.Random ( MonadRandom, getRandomR )
10import Control.Monad.Random ( MonadRandom, getRandomR )
11
11
12+#if MIN_VERSION_base(4,13,0)
13+import Data.List ( unfoldr )
14+#else
12import Data.List ( cycle, unfoldr )
15import Data.List ( cycle, unfoldr )
13import Data.Semigroup ( (<>) )
16import Data.Semigroup ( (<>) )
17+#endif
14
18
15import qualified Numeric.LinearAlgebra.Static as SA
19import qualified Numeric.LinearAlgebra.Static as SA
16
20
examples/main/shakespeare.hs+6
@@ -1,4 +1,5 @@
1{-# LANGUAGE BangPatterns #-}
1{-# LANGUAGE BangPatterns #-}
2+{-# LANGUAGE CPP #-}
2{-# LANGUAGE RecordWildCards #-}
3{-# LANGUAGE RecordWildCards #-}
3{-# LANGUAGE DataKinds #-}
4{-# LANGUAGE DataKinds #-}
4{-# LANGUAGE ScopedTypeVariables #-}
5{-# LANGUAGE ScopedTypeVariables #-}
@@ -13,13 +14,18 @@ import Control.Monad.Trans.Except
13import Data.Char ( isUpper, toUpper, toLower )
14import Data.Char ( isUpper, toUpper, toLower )
14import Data.List ( foldl' )
15import Data.List ( foldl' )
15import Data.Maybe ( fromMaybe )
16import Data.Maybe ( fromMaybe )
17+
18+#if ! MIN_VERSION_base(4,13,0)
16import Data.Semigroup ( (<>) )
19import Data.Semigroup ( (<>) )
20+#endif
17
21
18import qualified Data.Vector as V
22import qualified Data.Vector as V
19import Data.Vector ( Vector )
23import Data.Vector ( Vector )
20
24
21import qualified Data.Map as M
25import qualified Data.Map as M
26+#if ! MIN_VERSION_base(4,13,0)
22import Data.Proxy ( Proxy (..) )
27import Data.Proxy ( Proxy (..) )
28+#endif
23
29
24import qualified Data.ByteString as B
30import qualified Data.ByteString as B
25import Data.Serialize
31import Data.Serialize