arrowp-qq 0.2 → 0.2.0.1
raw patch · 4 files changed
+58/−28 lines, 4 filesdep −arraydep −sybPVP ok
version bump matches the API change (PVP)
Dependencies removed: array, syb
API changes (from Hackage documentation)
Files
- README.md +1/−1
- arrowp-qq.cabal +1/−3
- src/ArrCode.hs +34/−22
- src/Utils.hs +22/−2
README.md view
@@ -4,7 +4,7 @@ Arrowp-qq ==========-A preprocessor for arrow notation packaged by Jose Iborra,+A preprocessor for arrow notation based on the arrowp preprocessor developed by Ross Paterson <ross@soi.city.ac.uk>. Notable features include support for GHC Haskell syntax and a
arrowp-qq.cabal view
@@ -1,5 +1,5 @@ Name: arrowp-qq-Version: 0.2+Version: 0.2.0.1 Cabal-Version: >= 1.20 Build-Type: Simple License: GPL@@ -31,13 +31,11 @@ Control.Arrow.Notation, Control.Arrow.QuasiQuoter Build-Depends: base < 5,- array, containers, data-default, haskell-src-exts, haskell-src-exts-util, haskell-src-meta,- syb, template-haskell < 2.13, transformers, uniplate
src/ArrCode.hs view
@@ -8,19 +8,39 @@ {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -fno-warn-name-shadowing #-} -module ArrCode (- Arrow,- bind, anon,- arr, arrLet, (>>>), arrowExp, applyOp, infixOp, (|||), first,- VarDecl(VarDecl), letCmd,- context, anonArgs, toHaskell,- Tuple(..),- isEmptyTuple, unionTuple, minusTuple, intersectTuple,- patternTuple, expTuple,- returnA_exp, arr_exp, compose_op, choice_op, first_exp,- left_exp, right_exp, app_exp, loop_exp,- ifte, app, loop, returnA- ) where+module ArrCode+ ( Arrow+ , bind+ , anon+ , arr+ , arrLet+ , (>>>)+ , arrowExp+ , infixOp+ , (|||)+ , first+ , VarDecl+ , context+ , anonArgs+ , toHaskell+ , Tuple(..)+ , isEmptyTuple+ , intersectTuple+ , patternTuple+ , expTuple+ , returnA_exp+ , arr_exp+ , compose_op+ , choice_op+ , first_exp+ , left_exp+ , right_exp+ , app_exp+ , loop_exp+ , ifte+ , app+ , loop+ ) where import Data.Default import Data.Set (Set) import qualified Data.Set as Set@@ -92,9 +112,8 @@ loop :: Arrow -> Arrow loop f = applyOp loop_exp [f] -app, returnA :: Arrow+app :: Arrow app = arrowExp app_exp-returnA = arrowExp returnA_exp bind :: Set (Name S) -> Arrow -> Arrow bind = observe "bind" $ \vars a -> a {context = context a `minusTuple` vars}@@ -168,13 +187,6 @@ { code = InfixOp (code a1) choice_op (code a2) , context = context a1 `unionTuple` context a2 , anonArgs = 0- }-letCmd :: [VarDecl Arrow] -> Arrow -> Arrow-letCmd defs a =- Arrow- { code = Let (map (fmap code) defs) (code a)- , context = context a- , anonArgs = anonArgs a } compose :: Code -> Code -> Code
src/Utils.hs view
@@ -9,9 +9,29 @@ {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-name-shadowing -Wno-orphans #-} module Utils- ( module Utils- , HSE.Located(..)+ ( HSE.Located(..)+ , S(..) , HSE.rebracket1+ , freeVars+ , freeVarss+ , definedVars+ , hidePat+ , irrPat+ , left, right+ , pair+ , pairP+ , same+ , times+ , app_exp+ , arr_exp+ , first_exp+ , left_exp, right_exp+ , loop_exp+ , returnA_exp+ , choice_op+ , compose_op+ , returnCmd+ , observeSt )where import Control.Monad