language-ats 1.7.3.1 → 1.7.4.0
raw patch · 5 files changed
+74/−1 lines, 5 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Language.ATS: languageATSVersion :: Version
Files
- CHANGELOG.md +4/−0
- language-ats.cabal +2/−1
- src/Language/ATS.hs +8/−0
- test/data/finger-tree.out +30/−0
- test/data/finger-tree.sats +30/−0
CHANGELOG.md view
@@ -1,5 +1,9 @@ # language-ats +## 1.7.4.0++ * Add `languageATSVersion`+ ## 1.7.3.1 * Fix bug in parse order for `symintr` declarations
language-ats.cabal view
@@ -1,6 +1,6 @@ cabal-version: 1.18 name: language-ats-version: 1.7.3.1+version: 1.7.4.0 license: BSD3 license-file: LICENSE copyright: Copyright: (c) 2018-2019 Vanessa McHale@@ -50,6 +50,7 @@ Language.ATS.Types Language.ATS.Types.Lens Language.ATS.Rewrite+ Paths_language_ats default-language: Haskell2010 other-extensions:
src/Language/ATS.hs view
@@ -59,12 +59,15 @@ , constructorUniversals , typeCall , typeCallArgs+ -- * Misecellany+ , languageATSVersion ) where import Control.Composition ((-$)) import Control.Monad import Control.Monad.IO.Class import Control.Monad.Trans.State+import Data.Version (Version) import GHC.IO.Handle.FD (stderr) import Language.ATS.Lexer import Language.ATS.Parser@@ -73,7 +76,12 @@ import Language.ATS.Types import Language.ATS.Types.Lens import Lens.Micro+import Paths_language_ats (version) import Text.PrettyPrint.ANSI.Leijen hiding ((<$>))++-- | @since 1.7.4.0+languageATSVersion :: Version+languageATSVersion = version rewriteATS' :: Eq a => (ATS a, FixityState a) -> ATS a rewriteATS' (ATS ds, st) = ATS (rewriteDecl st <$> ds)
+ test/data/finger-tree.out view
@@ -0,0 +1,30 @@+datatype list(a: t@ype+) =+ | cons of (a, list(a))+ | nil++fun concat {a:t@ype+} (list(a), list(a)) : list(a)++typedef digit(a: t@ype+) = list(a)++datatype node(a: t@ype) =+ | node2 of (a, a)+ | node3 of (a, a, a)++datatype finger_tree(a: t@ype+) =+ | empty+ | single of (a)+ | deep of (digit(a), finger_tree(node(a)), digit(a))++symintr <| |>++infixr 5 <|++infixl 5 |>++fun lcons {a:t@ype+} (a, finger_tree(a)) : finger_tree(a)++fun rcons {a:t@ype+} (finger_tree(a), a) : finger_tree(a)++overload <| with lcons++overload |> with rcons
+ test/data/finger-tree.sats view
@@ -0,0 +1,30 @@+datatype list(a: t@ype+) =+ | cons of (a, list(a))+ | nil++fun concat {a:t@ype+} (list(a), list(a)) : list(a)++typedef digit(a: t@ype+) = list(a)++datatype node(a: t@ype) =+ | node2 of (a, a)+ | node3 of (a, a, a)++datatype finger_tree(a: t@ype+) =+ | empty+ | single of (a)+ | deep of (digit(a), finger_tree(node(a)), digit(a))++symintr <| |>++infixr 5 <|++infixl 5 |>++fun lcons {a:t@ype+} (a, finger_tree(a)) : finger_tree(a)++fun rcons {a:t@ype+} (finger_tree(a), a) : finger_tree(a)++overload <| with lcons++overload |> with rcons