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 +2/−2
- src/LiveCoding.hs +1/−0
- src/LiveCoding/Cell/Monad/Trans.hs +3/−5
- src/LiveCoding/Debugger.lhs +1/−0
- src/LiveCoding/External.hs +1/−1
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