packages feed

essence-of-live-coding 0.2.0.0 → 0.2.0.1

raw patch · 5 files changed

+8/−8 lines, 5 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

+ LiveCoding: (&&&) :: Arrow a => a b c -> a b c' -> a b (c, c')
+ LiveCoding: (***) :: Arrow a => a b c -> a b' c' -> a (b, b') (c, c')
+ LiveCoding: (+++) :: ArrowChoice a => a b c -> a b' c' -> a (Either b b') (Either c c')
+ LiveCoding: (<+>) :: ArrowPlus a => a b c -> a b c -> a b c
+ LiveCoding: (<<<) :: Category cat => cat b c -> cat a b -> cat a c
+ LiveCoding: (<<^) :: Arrow a => a c d -> (b -> c) -> a b d
+ LiveCoding: (>>>) :: Category cat => cat a b -> cat b c -> cat a c
+ LiveCoding: (>>^) :: Arrow a => a b c -> (c -> d) -> a b d
+ LiveCoding: (^<<) :: Arrow a => (c -> d) -> a b c -> a b d
+ LiveCoding: (^>>) :: Arrow a => (b -> c) -> a c d -> a b d
+ LiveCoding: (|||) :: ArrowChoice a => a b d -> a c d -> a (Either b c) d
+ LiveCoding: ArrowMonad :: a () b -> ArrowMonad b
+ LiveCoding: Kleisli :: (a -> m b) -> Kleisli a b
+ LiveCoding: [runKleisli] :: Kleisli a b -> a -> m b
+ LiveCoding: arr :: Arrow a => (b -> c) -> a b c
+ LiveCoding: class Category a => Arrow (a :: Type -> Type -> Type)
+ LiveCoding: class Arrow a => ArrowApply (a :: Type -> Type -> Type)
+ LiveCoding: class Arrow a => ArrowChoice (a :: Type -> Type -> Type)
+ LiveCoding: class Arrow a => ArrowLoop (a :: Type -> Type -> Type)
+ LiveCoding: class ArrowZero a => ArrowPlus (a :: Type -> Type -> Type)
+ LiveCoding: class Arrow a => ArrowZero (a :: Type -> Type -> Type)
+ LiveCoding: first :: Arrow a => a b c -> a (b, d) (c, d)
+ LiveCoding: infixr 1 <<<
+ LiveCoding: infixr 2 +++
+ LiveCoding: infixr 3 &&&
+ LiveCoding: infixr 5 <+>
+ LiveCoding: left :: ArrowChoice a => a b c -> a (Either b d) (Either c d)
+ LiveCoding: leftApp :: ArrowApply a => a b c -> a (Either b d) (Either c d)
+ LiveCoding: loop :: ArrowLoop a => a (b, d) (c, d) -> a b c
+ LiveCoding: newtype ArrowMonad (a :: Type -> Type -> Type) b
+ LiveCoding: newtype Kleisli (m :: Type -> Type) a b
+ LiveCoding: returnA :: Arrow a => a b b
+ LiveCoding: right :: ArrowChoice a => a b c -> a (Either d b) (Either d c)
+ LiveCoding: second :: Arrow a => a b c -> a (d, b) (d, c)
+ LiveCoding: zeroArrow :: ArrowZero a => a b c
- LiveCoding: runReaderC' :: Cell (ReaderT r m) a b -> Cell m (r, a) b
+ LiveCoding: runReaderC' :: Monad m => Cell (ReaderT r m) a b -> Cell m (r, a) b
- LiveCoding.Cell.Monad.Trans: runReaderC' :: Cell (ReaderT r m) a b -> Cell m (r, a) b
+ LiveCoding.Cell.Monad.Trans: runReaderC' :: Monad m => Cell (ReaderT r m) a b -> Cell m (r, a) b
- LiveCoding.External: concurrently :: MonadIO m => ExternalCell m eIn eOut a b -> IO (Cell m a b, ExternalLoop eIn eOut)
+ LiveCoding.External: concurrently :: (MonadIO m, Monoid eOut) => ExternalCell m eIn eOut a b -> IO (Cell m a b, ExternalLoop eIn eOut)

Files

essence-of-live-coding.cabal view
@@ -1,5 +1,5 @@ name:                essence-of-live-coding-version:             0.2.0.0+version:             0.2.0.1 synopsis: General purpose live coding framework description:   essence-of-live-coding is a general purpose and type safe live coding framework.@@ -30,7 +30,7 @@ source-repository this   type:     git   location: git@github.com:turion/essence-of-live-coding.git-  tag:      v0.2.0.0+  tag:      v0.2.0.1   library
src/LiveCoding.hs view
@@ -3,6 +3,7 @@   where  -- base+import Control.Arrow as X hiding (app) import Data.Data as X  -- essence-of-live-coding
src/LiveCoding/Cell/Monad/Trans.hs view
@@ -59,9 +59,7 @@  -- | Supply a 'ReaderT' environment live runReaderC'-  :: Cell (ReaderT r m) a b+  :: Monad m+  => Cell (ReaderT r m) a b   -> Cell m (r, a) b-runReaderC' Cell { .. } = Cell-  { cellStep = \state (r, a) -> runReaderT (cellStep state a) r-  , ..-  }+runReaderC' = hoistCellKleisli_ $ \action (r, a) -> runReaderT (action a) r
src/LiveCoding/Debugger.lhs view
@@ -103,6 +103,7 @@       (b, state') <- step state a       states <- runStateT (dbgStep dbgState) state'       return (b, uncurry (flip Debugging) states)+withDebuggerC noCell debugger = withDebuggerC (toCell noCell) debugger \end{code} \end{comment} Again, let us understand the function through its state type:
src/LiveCoding/External.hs view
@@ -31,7 +31,7 @@   , ..   } -concurrently :: MonadIO m => ExternalCell m eIn eOut a b -> IO (Cell m a b, ExternalLoop eIn eOut)+concurrently :: (MonadIO m, Monoid eOut) => ExternalCell m eIn eOut a b -> IO (Cell m a b, ExternalLoop eIn eOut) concurrently externalCell = do   inVar  <- newEmptyMVar   outVar <- newEmptyMVar