bound 0.3.1 → 0.3.2
raw patch · 3 files changed
+4/−6 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- bound.cabal +1/−1
- examples/Simple.hs +2/−4
- src/Bound/Scope.hs +1/−1
bound.cabal view
@@ -1,6 +1,6 @@ name: bound category: Language, Compilers/Interpreters-version: 0.3.1+version: 0.3.2 license: BSD3 cabal-version: >= 1.9.2 license-file: LICENSE
examples/Simple.hs view
@@ -37,8 +37,7 @@ let_ :: Eq a => [(a,Exp a)] -> Exp a -> Exp a let_ [] b = b let_ bs b = Let (map (abstr . snd) bs) (abstr b)- where vs = map fst bs- abstr = abstract (`elemIndex` vs)+ where abstr = abstract (`elemIndex` map fst bs) instance Functor Exp where fmap = fmapDefault instance Foldable Exp where foldMap = foldMapDefault@@ -69,8 +68,7 @@ -- | Compute the normal form of an expression nf :: Exp a -> Exp a nf e@V{} = e-nf (Lam b) = Lam $ toScope $ nf $ fromScope b--- nf (Lam (Scope b)) = Lam $ Scope $ fmap (fmap nf) (nf b)+nf (Lam b) = Lam $ toScope $ nf $ fromScope b nf (f :@ a) = case whnf f of Lam b -> nf (instantiate1 a b) f' -> nf f' :@ nf a
src/Bound/Scope.hs view
@@ -120,7 +120,7 @@ return (Scope (fmap (fmap lower1 . lower2) s), r'') instance Bound (Scope b) where- m >>>= f = m >>= lift . f+ Scope m >>>= f = Scope (liftM (fmap (>>= f)) m) -- | Capture some free variables in an expression to yield -- a 'Scope' with bound variables in @b@