From 2b5fa1851a84f58b43e7c4224bd5695a32a80de9 Mon Sep 17 00:00:00 2001 From: dummy Date: Wed, 18 Dec 2013 03:27:54 +0000 Subject: [PATCH] avoid TH --- lens.cabal | 13 +------------ src/Control/Lens.hs | 4 ++-- src/Control/Lens/Internal/Exception.hs | 30 ------------------------------ src/Control/Lens/Prism.hs | 2 -- 4 files changed, 3 insertions(+), 46 deletions(-) diff --git a/lens.cabal b/lens.cabal index 8477892..a6ac7a5 100644 --- a/lens.cabal +++ b/lens.cabal @@ -10,7 +10,7 @@ stability: provisional homepage: http://github.com/ekmett/lens/ bug-reports: http://github.com/ekmett/lens/issues copyright: Copyright (C) 2012-2013 Edward A. Kmett -build-type: Custom +build-type: Simple tested-with: GHC == 7.6.3 synopsis: Lenses, Folds and Traversals description: @@ -173,7 +173,6 @@ library containers >= 0.4.0 && < 0.6, distributive >= 0.3 && < 1, filepath >= 1.2.0.0 && < 1.4, - generic-deriving >= 1.4 && < 1.7, ghc-prim, hashable >= 1.1.2.3 && < 1.3, MonadCatchIO-transformers >= 0.3 && < 0.4, @@ -235,14 +234,12 @@ library Control.Lens.Review Control.Lens.Setter Control.Lens.Simple - Control.Lens.TH Control.Lens.Traversal Control.Lens.Tuple Control.Lens.Type Control.Lens.Wrapped Control.Lens.Zipper Control.Lens.Zoom - Control.Monad.Error.Lens Control.Parallel.Strategies.Lens Control.Seq.Lens Data.Array.Lens @@ -266,12 +263,8 @@ library Data.Typeable.Lens Data.Vector.Lens Data.Vector.Generic.Lens - Generics.Deriving.Lens - GHC.Generics.Lens System.Exit.Lens System.FilePath.Lens - System.IO.Error.Lens - Language.Haskell.TH.Lens Numeric.Lens if flag(safe) @@ -370,7 +363,6 @@ test-suite doctests deepseq, doctest >= 0.9.1, filepath, - generic-deriving, mtl, nats, parallel, @@ -396,7 +388,6 @@ benchmark plated comonad, criterion, deepseq, - generic-deriving, lens, transformers @@ -431,7 +422,6 @@ benchmark unsafe comonads-fd, criterion, deepseq, - generic-deriving, lens, transformers @@ -448,6 +438,5 @@ benchmark zipper comonads-fd, criterion, deepseq, - generic-deriving, lens, transformers diff --git a/src/Control/Lens.hs b/src/Control/Lens.hs index f7c6548..125153e 100644 --- a/src/Control/Lens.hs +++ b/src/Control/Lens.hs @@ -59,7 +59,7 @@ module Control.Lens , module Control.Lens.Review , module Control.Lens.Setter , module Control.Lens.Simple -#ifndef DISABLE_TEMPLATE_HASKELL +#if 0 , module Control.Lens.TH #endif , module Control.Lens.Traversal @@ -89,7 +89,7 @@ import Control.Lens.Reified import Control.Lens.Review import Control.Lens.Setter import Control.Lens.Simple -#ifndef DISABLE_TEMPLATE_HASKELL +#if 0 import Control.Lens.TH #endif import Control.Lens.Traversal diff --git a/src/Control/Lens/Internal/Exception.hs b/src/Control/Lens/Internal/Exception.hs index 387203e..bb1ca10 100644 --- a/src/Control/Lens/Internal/Exception.hs +++ b/src/Control/Lens/Internal/Exception.hs @@ -128,18 +128,6 @@ class Handleable e (m :: * -> *) (h :: * -> *) | h -> e m where handler_ l = handler l . const {-# INLINE handler_ #-} -instance Handleable SomeException IO Exception.Handler where - handler = handlerIO - -instance Handleable SomeException m (CatchIO.Handler m) where - handler = handlerCatchIO - -handlerIO :: forall a r. Getting (First a) SomeException a -> (a -> IO r) -> Exception.Handler r -handlerIO l f = reify (preview l) $ \ (_ :: Proxy s) -> Exception.Handler (\(Handling a :: Handling a s IO) -> f a) - -handlerCatchIO :: forall m a r. Getting (First a) SomeException a -> (a -> m r) -> CatchIO.Handler m r -handlerCatchIO l f = reify (preview l) $ \ (_ :: Proxy s) -> CatchIO.Handler (\(Handling a :: Handling a s m) -> f a) - ------------------------------------------------------------------------------ -- Helpers ------------------------------------------------------------------------------ @@ -159,21 +147,3 @@ supply = unsafePerformIO $ newIORef 0 -- | This permits the construction of an \"impossible\" 'Control.Exception.Handler' that matches only if some function does. newtype Handling a s (m :: * -> *) = Handling a --- the m parameter exists simply to break the Typeable1 pattern, so we can provide this without overlap. --- here we simply generate a fresh TypeRep so we'll fail to compare as equal to any other TypeRep. -instance Typeable (Handling a s m) where - typeOf _ = unsafePerformIO $ do - i <- atomicModifyIORef supply $ \a -> let a' = a + 1 in a' `seq` (a', a) - return $ mkTyConApp (mkTyCon3 "lens" "Control.Lens.Internal.Exception" ("Handling" ++ show i)) [] - {-# INLINE typeOf #-} - --- The @Handling@ wrapper is uninteresting, and should never be thrown, so you won't get much benefit here. -instance Show (Handling a s m) where - showsPrec d _ = showParen (d > 10) $ showString "Handling ..." - {-# INLINE showsPrec #-} - -instance Reifies s (SomeException -> Maybe a) => Exception (Handling a s m) where - toException _ = SomeException HandlingException - {-# INLINE toException #-} - fromException = fmap Handling . reflect (Proxy :: Proxy s) - {-# INLINE fromException #-} diff --git a/src/Control/Lens/Prism.hs b/src/Control/Lens/Prism.hs index 45b5cfe..88c7ff9 100644 --- a/src/Control/Lens/Prism.hs +++ b/src/Control/Lens/Prism.hs @@ -53,8 +53,6 @@ import Unsafe.Coerce import Data.Profunctor.Unsafe #endif -{-# ANN module "HLint: ignore Use camelCase" #-} - -- $setup -- >>> :set -XNoOverloadedStrings -- >>> import Control.Lens -- 1.8.5.1