name: infernu version: 0.0.0.0 x-revision: 1 synopsis: Type inference and checker for JavaScript (experimental) description: This version is highly experimental and may set your computer on fire (also, a lot of JS is not supported yet, so it may not be very useful.) . Also, the latest version is always at . The version here (on hackage) is most certainly outdated. . Infernu is a type checker for JavaScript. Since JavaScript is dynamically and weakly typed, it makes no sense to talk about "type errors" in arbitrary JavaScript code. . Consequently Infernu makes assumptions about the code and expects it to follow certain rules that are not required by plain JavaScript (for example, implicit coercions such as `3 + 'a'` are not allowed.) . Infernu's type system is designed for writing dynamic-looking code in a safe statically type-checked environment. Type annotations are not required (though they would be nice to support, for various reasons). Instead, Infernu *infers* the types of expressions by examining the code. If the inferred types contradict each other, Infernu reports the contradiction as an error. . Infernu places restrictions on JS programs that are otherwise valid. In other words, Infernu is a **subset of JavaScript**. Infernu tries to strike a balance between type system complexity and dynamic-style coding flexibility. . See the .md files included in the package for more information. license: GPL-2 homepage: https://github.com/sinelaw/infernu bug-reports: https://github.com/sinelaw/infernu/issues license-file: LICENSE author: Noam Lewis maintainer: jones.noamle@gmail.com copyright: Noam Lewis, 2014-2015 -- category: build-type: Simple extra-source-files: README.md cabal-version: >=1.10 stability: experimental source-repository head type: git location: git@github.com:sinelaw/infernu.git flag quickcheck default: False manual: True flag trace default: False manual: True flag debug default: False manual: True library hs-source-dirs: src exposed-modules: Infernu.Builtins.Array , Infernu.Builtins.Operators , Infernu.Builtins.Regex , Infernu.Builtins.String , Infernu.Builtins.TypeClasses , Infernu.Decycle , Infernu.Fix , Infernu.Infer , Infernu.InferState , Infernu.Lib , Infernu.Log , Infernu.Options , Infernu.Parse , Infernu.Pretty , Infernu.Types , Infernu.Unify , Infernu.Util -- TODO: use only mtl (not transformers) build-depends: base >= 4.8 && < 5, mtl, containers, transformers, either, language-ecmascript, digits, parsec, fgl, optparse-applicative default-language: Haskell2010 ghc-options: -Wall -O2 -rtsopts -threaded if flag(debug) ghc-options: -g if flag(trace) cpp-options: -DTRACE if flag(quickcheck) cpp-options: -DQUICKCHECK build-depends: QuickCheck, derive default-extensions: TemplateHaskell, DeriveGeneric, FlexibleInstances executable infernu main-is: Main.hs build-depends: base, parsec, infernu, optparse-applicative default-language: Haskell2010 ghc-options: -Wall -O2 -rtsopts -threaded if flag(debug) ghc-options: -g if flag(trace) cpp-options: -DTRACE if flag(quickcheck) cpp-options: -DQUICKCHECK build-depends: QuickCheck, derive default-extensions: TemplateHaskell, DeriveGeneric executable infernu-demo main-is: Demo.hs hs-source-dirs: test build-depends: base, infernu default-language: Haskell2010 ghc-options: -Wall -O2 -main-is Demo if flag(trace) cpp-options: -DTRACE if flag(quickcheck) cpp-options: -DQUICKCHECK build-depends: QuickCheck, derive default-extensions: TemplateHaskell, DeriveGeneric executable test if flag(quickcheck) cpp-options: -DQUICKCHECK build-depends: QuickCheck, derive default-extensions: TemplateHaskell, DeriveGeneric else buildable: False main-is: Test.hs hs-source-dirs: test build-depends: base, infernu default-language: Haskell2010 ghc-options: -Wall -O2 -main-is Test if flag(trace) cpp-options: -DTRACE