packages feed

egison 2.1.9 → 2.1.10

raw patch · 2 files changed

+13/−11 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

egison.cabal view
@@ -1,5 +1,5 @@ Name:                egison-Version:             2.1.9+Version:             2.1.10 Synopsis:            An Interpreter for the Programming Language Egison Description:         An interpreter for the programming language Egison.                      A feature of Egison is the strong pattern match facility.
hs-src/Language/Egison/Core.hs view
@@ -664,16 +664,18 @@  snocDestructInnerRefs :: [InnerValRef] -> IOThrowsError (ObjectRef, ObjectRef) snocDestructInnerRefs [] = throwError $ Default "snocDestructInnerRefs: empty collection"-snocDestructInnerRefs ((IElement objRef):rest) = do-  cdrObjRef <- liftIO $ newIORef $ Intermidiate $ ICollection rest-  return (objRef, cdrObjRef)-snocDestructInnerRefs ((ISubCollection objRef):rest) = do-  b <- isEmptyCollection objRef-  if b-    then snocDestructInnerRefs rest-    else do (carObjRef, cdrObjRef) <- snocDestruct objRef-            cdrObjRef2 <- liftIO $ newIORef $ Intermidiate $ ICollection $ (ISubCollection cdrObjRef):rest-            return (carObjRef, cdrObjRef2)+snocDestructInnerRefs innerRefs =+  case reverse innerRefs of+    ((IElement objRef):rest) -> do+      cdrObjRef <- liftIO $ newIORef $ Intermidiate $ ICollection $ reverse rest+      return (objRef, cdrObjRef)+    ((ISubCollection objRef):rest) -> do+      b <- isEmptyCollection objRef+      if b+        then snocDestructInnerRefs $ reverse rest+        else do (racObjRef, rdcObjRef) <- snocDestruct objRef+                rdcObjRef2 <- liftIO $ newIORef $ Intermidiate $ ICollection $ (reverse rest) ++ [(ISubCollection rdcObjRef)]+                return (racObjRef, rdcObjRef2)      snocDestructInnerVals :: [InnerVal] -> IOThrowsError (ObjectRef, ObjectRef) snocDestructInnerVals [] = throwError $ Default "snocDestructInnerVals: empty collection"