packages feed

haskell-reflect 0.1 → 0.9

raw patch · 5 files changed

+44/−68 lines, 5 filesdep −haskell-reflectPVP ok

version bump matches the API change (PVP)

Dependencies removed: haskell-reflect

API changes (from Hackage documentation)

- Language.Haskell.Reflect.Utils: instanceInfo :: Info -> Q HInstance
- Language.Haskell.Reflect.Utils: typeclassInfo :: Info -> Q HTypeclass
+ Language.Haskell.Reflect: checkModuleAvailability :: (Functor m, MonadCatchIO m) => [String] -> m [(String, Bool)]
+ Language.Haskell.Reflect: readContextFromSignature :: String -> a
+ Language.Haskell.Reflect: readKindFromSignature :: String -> a

Files

haskell-reflect.cabal view
@@ -1,5 +1,5 @@ name:           haskell-reflect-version:        0.1+version:        0.9  license:        MIT license-file:   LICENSE@@ -21,24 +21,12 @@     location: http://hub.darcs.net/scravy/haskell-reflect  Library-    build-depends:      base >= 4.5 && < 5-                        , containers >= 0.4.2.1-                        , mtl >= 2.1.1-                        , transformers >= 0.3-                        , hint >= 0.3.3.4-                        , parsec >= 3.1.2-                        , template-haskell >= 2.7-                        , MonadCatchIO-mtl-     hs-source-dirs:     src -    exposed-modules:    Language.Haskell.Reflect,-                        Language.Haskell.Reflect.Types,-                        Language.Haskell.Reflect.Utils+    exposed-modules:    Language.Haskell.Reflect+                        , Language.Haskell.Reflect.Types -Executable hsreflect     build-depends:      base >= 4.5 && < 5-                        , haskell-reflect                         , containers >= 0.4.2.1                         , mtl >= 2.1.1                         , transformers >= 0.3@@ -46,9 +34,4 @@                         , parsec >= 3.1.2                         , template-haskell >= 2.7                         , MonadCatchIO-mtl---    hs-source-dirs:     src-    main-is:            main.hs- 
src/Language/Haskell/Reflect.hs view
@@ -11,6 +11,7 @@ import Prelude  import Data.Either+--import Data.Functor.Identity import Data.Map (Map) import qualified Data.Map as Map @@ -21,7 +22,44 @@ import Language.Haskell.Interpreter import Language.Haskell.Reflect.Types +--import Text.Parsec +{-+readTypeFromSignature :: String -> [HType]+readTypeFromSignature signature = runParserT parse () "-" signature >>= either [] id+  where+    pTypes = sepBy pType (string " -> ")+    pType = pParens <|> pVar+    pParens = do+        char '('+        types <- pTypes+        char ')'+        return types+    pVar = do+-}      ++readContextFromSignature :: String -> a+readContextFromSignature _context = undefined++readKindFromSignature :: String -> a+readKindFromSignature _kind = undefined+++checkModuleAvailability :: (Functor m, C.MonadCatchIO m)+                        => [String] -> m [(String, Bool)]+-- ^ Checks whether the given modules are installed in the+-- package database or not.+checkModuleAvailability names = do+    result <- runInterpreter $ do+        set [ installedModulesInScope := True+            , languageExtensions := [TemplateHaskell, MagicHash] ]+        let check name = E.catchError+                (getModuleExports name >>= return . const True)+                (return . const False)+        mapM check names >>= return . zip names+    either C.throw return result+        + reflectModules :: (Functor m, C.MonadCatchIO m)                => [String] -> m (Map String InterpreterError, Map String HModule) reflectModules names = do@@ -66,7 +104,7 @@                     return $ HFunction {                         functionName = name,                         functionSignature = signature,-                        functionType = [],+                        functionType = [], --readTypeFromSignature signature,                         functionContext = []                       } 
src/Language/Haskell/Reflect/Types.hs view
@@ -16,8 +16,8 @@  instance IsString HName where     fromString n@(x:_)-        | isUpper x = TyVar n-        | isLower x = QName n+        | isUpper x = QName n+        | otherwise = TyVar n     fromString "" = error "empty name"     fromString _  = error "not a name" 
− src/Language/Haskell/Reflect/Utils.hs
@@ -1,24 +0,0 @@-{-# LANGUAGE Haskell2010 #-}-{-# OPTIONS -Wall #-}--module Language.Haskell.Reflect.Utils where--import Data.Map--import Language.Haskell.TH-import Language.Haskell.Reflect.Types--typeclassInfo :: Info -> Q HTypeclass-typeclassInfo _ = do-    return $ HTypeclass {-        typeclassName = "",-        typeclassInstances = []-      }--instanceInfo :: Info -> Q HInstance-instanceInfo _ = do-    return $ HInstance----
− src/main.hs
@@ -1,21 +0,0 @@-{-# LANGUAGE Haskell2010- #-}-{-# OPTIONS-    -Wall- #-}--module Main where--import Prelude-import Language.Haskell.Reflect--import System.Environment---main :: IO ()-main = getArgs >>= reflectModules >>= print-----