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 +3/−20
- src/Language/Haskell/Reflect.hs +39/−1
- src/Language/Haskell/Reflect/Types.hs +2/−2
- src/Language/Haskell/Reflect/Utils.hs +0/−24
- src/main.hs +0/−21
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-----