essence-of-live-coding 0.2.8 → 0.2.9
raw patch · 11 files changed
+92/−66 lines, 11 filesdep ~basePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base
API changes (from Hackage documentation)
- LiveCoding: (>>>=) :: (Data e1, Monad m) => Cell (ExceptT e1 m) a b -> Cell (ExceptT e2 m) (e1, a) b -> Cell (ExceptT e2 m) a b
- LiveCoding: (>>>==) :: (Data e1, Monad m) => Cell (ExceptT e1 m) a b -> Cell (ReaderT e1 (ExceptT e2 m)) a b -> Cell (ExceptT e2 m) a b
- LiveCoding: AlgConstr :: ConIndex -> ConstrRep
- LiveCoding: AlgRep :: [Constr] -> DataRep
- LiveCoding: ArrM :: (a -> m b) -> Cell m a b
- LiveCoding: Cell :: s -> (s -> a -> m (b, s)) -> Cell m a b
- LiveCoding: CharConstr :: Char -> ConstrRep
- LiveCoding: CharRep :: DataRep
- LiveCoding: Choice :: stateL -> stateR -> Choice stateL stateR
- LiveCoding: CofreeTraversing :: (forall (f :: Type -> Type). Traversable f => p (f a) (f b)) -> CofreeTraversing (p :: Type -> Type -> Type) a b
- LiveCoding: Composition :: state1 -> state2 -> Composition state1 state2
- LiveCoding: Copastro :: (forall (r :: Type -> Type -> Type). Costrong r => (forall x y. () => p x y -> r x y) -> r a b) -> Copastro (p :: Type -> Type -> Type) a b
- LiveCoding: CountObserver :: IO Integer -> CountObserver
- LiveCoding: Debugger :: (forall s. Data s => LiveProgram (StateT s m)) -> Debugger m
- LiveCoding: Debugging :: state -> dbgState -> Debugging dbgState state
- LiveCoding: ExceptT :: m (Either e a) -> ExceptT e (m :: Type -> Type) a
- LiveCoding: Exception :: e -> ExceptState state e
- LiveCoding: Feedback :: sPrevious -> sAdditional -> Feedback sPrevious sAdditional
- LiveCoding: FloatConstr :: Rational -> ConstrRep
- LiveCoding: FloatRep :: DataRep
- LiveCoding: ForeverE :: e -> s -> s -> ForeverE e s
- LiveCoding: GR :: GenericR m -> GenericR' m
- LiveCoding: Handle :: m h -> (h -> m ()) -> Handle m h
- LiveCoding: Infix :: Fixity
- LiveCoding: IntConstr :: Integer -> ConstrRep
- LiveCoding: IntRep :: DataRep
- LiveCoding: LiveProgram :: s -> (s -> m s) -> LiveProgram m
- LiveCoding: MSF :: StateTransition m a b (MSF m a b) -> MSF m a b
- LiveCoding: Migration :: (forall a b. (Data a, Data b) => a -> b -> Maybe a) -> Migration
- LiveCoding: NoRep :: DataRep
- LiveCoding: NotThrown :: state -> ExceptState state e
- LiveCoding: Parallel :: stateP1 -> stateP2 -> Parallel stateP1 stateP2
- LiveCoding: ParametrisedHandle :: (p -> m h) -> (p -> p -> h -> m h) -> (p -> h -> m ()) -> ParametrisedHandle p m h
- LiveCoding: Pop :: BufferCommand a
- LiveCoding: Prefix :: Fixity
- LiveCoding: Proxy :: Proxy (t :: k)
- LiveCoding: Push :: a -> BufferCommand a
- LiveCoding: Q :: (x -> q) -> Q q x
- LiveCoding: Tambara :: (forall c. () => p (a, c) (b, c)) -> Tambara (p :: Type -> Type -> Type) a b
- LiveCoding: [Alg] :: s -> AlgStructure m a b s -> Alg m a b
- LiveCoding: [Bind] :: CellExcept a b m e1 -> (e1 -> CellExcept a b m e2) -> CellExcept a b m e2
- LiveCoding: [Coalg] :: s -> (s -> StateTransition m a b s) -> Coalg m a b
- LiveCoding: [Cotambara] :: forall (r :: Type -> Type -> Type) (q :: Type -> Type -> Type) a b. Costrong r => (r :-> q) -> r a b -> Cotambara q a b
- LiveCoding: [FreeTraversing] :: forall (f :: Type -> Type) y b (p :: Type -> Type -> Type) x a. Traversable f => (f y -> b) -> p x y -> (a -> f x) -> FreeTraversing p a b
- LiveCoding: [HRefl] :: forall {k1} (a :: k1). a :~~: a
- LiveCoding: [Pastro] :: forall y z b (p :: Type -> Type -> Type) x a. ((y, z) -> b) -> p x y -> (a -> (x, z)) -> Pastro p a b
- LiveCoding: [Refl] :: forall {k} (a :: k). a :~: a
- LiveCoding: [Return] :: e -> CellExcept a b m e
- LiveCoding: [Try] :: (Data e, Finite e) => Cell (ExceptT e m) a b -> CellExcept a b m e
- LiveCoding: [cellState] :: Cell m a b -> s
- LiveCoding: [cellStep] :: Cell m a b -> s -> a -> m (b, s)
- LiveCoding: [changeParametrised] :: ParametrisedHandle p m h -> p -> p -> h -> m h
- LiveCoding: [choiceLeft] :: Choice stateL stateR -> stateL
- LiveCoding: [choiceRight] :: Choice stateL stateR -> stateR
- LiveCoding: [createParametrised] :: ParametrisedHandle p m h -> p -> m h
- LiveCoding: [create] :: Handle m h -> m h
- LiveCoding: [currentState] :: ForeverE e s -> s
- LiveCoding: [dbgState] :: Debugging dbgState state -> dbgState
- LiveCoding: [destroyParametrised] :: ParametrisedHandle p m h -> p -> h -> m ()
- LiveCoding: [destroy] :: Handle m h -> h -> m ()
- LiveCoding: [getDebugger] :: Debugger m -> forall s. Data s => LiveProgram (StateT s m)
- LiveCoding: [initState] :: ForeverE e s -> s
- LiveCoding: [lastException] :: ForeverE e s -> e
- LiveCoding: [liveState] :: LiveProgram m -> s
- LiveCoding: [liveStep] :: LiveProgram m -> s -> m s
- LiveCoding: [observe] :: CountObserver -> IO Integer
- LiveCoding: [runArrM] :: Cell m a b -> a -> m b
- LiveCoding: [runCofreeTraversing] :: CofreeTraversing (p :: Type -> Type -> Type) a b -> forall (f :: Type -> Type). Traversable f => p (f a) (f b)
- LiveCoding: [runCopastro] :: Copastro (p :: Type -> Type -> Type) a b -> forall (r :: Type -> Type -> Type). Costrong r => (forall x y. () => p x y -> r x y) -> r a b
- LiveCoding: [runMigration] :: Migration -> forall a b. (Data a, Data b) => a -> b -> Maybe a
- LiveCoding: [runTambara] :: Tambara (p :: Type -> Type -> Type) a b -> forall c. () => p (a, c) (b, c)
- LiveCoding: [sAdditional] :: Feedback sPrevious sAdditional -> sAdditional
- LiveCoding: [sPrevious] :: Feedback sPrevious sAdditional -> sPrevious
- LiveCoding: [state1] :: Composition state1 state2 -> state1
- LiveCoding: [state2] :: Composition state1 state2 -> state2
- LiveCoding: [stateP1] :: Parallel stateP1 stateP2 -> stateP1
- LiveCoding: [stateP2] :: Parallel stateP1 stateP2 -> stateP2
- LiveCoding: [state] :: Debugging dbgState state -> state
- LiveCoding: [unGR] :: GenericR' m -> GenericR m
- LiveCoding: [unMSF] :: MSF m a b -> StateTransition m a b (MSF m a b)
- LiveCoding: [unQ] :: Q q x -> x -> q
- LiveCoding: algMSF :: MSF m a b -> Alg m a b
- LiveCoding: arrM :: (a -> m b) -> Cell m a b
- LiveCoding: asciiArt :: Double -> String
- LiveCoding: await :: CountObserver -> Integer -> IO ()
- LiveCoding: boundedFIFO :: (Data a, Monad m) => Int -> Cell m (Maybe a) (Seq a)
- LiveCoding: buffer :: (Monad m, Data a) => Cell m [BufferCommand a] (Maybe a)
- LiveCoding: buffered :: (Monad m, Data a) => Cell m (Maybe a) (Maybe b) -> Cell m (Maybe a) (Maybe b)
- LiveCoding: buildProg :: Sensor a -> SF a b -> Actuator b -> LiveProgram IO
- LiveCoding: cast :: (Typeable a, Typeable b) => a -> Maybe b
- LiveCoding: castMigration :: Migration
- LiveCoding: catchE :: forall (m :: Type -> Type) e a e'. Monad m => ExceptT e m a -> (e -> ExceptT e' m a) -> ExceptT e' m a
- LiveCoding: changes :: (Data a, Eq a, Monad m) => Cell m a (Maybe a)
- LiveCoding: choiceShow :: (Data stateL, Data stateR) => Choice stateL stateR -> String
- LiveCoding: class Profunctor p => Costrong (p :: Type -> Type -> Type)
- LiveCoding: class Typeable a => Data a
- LiveCoding: class Finite e
- LiveCoding: class GFinite f
- LiveCoding: class Profunctor p => Strong (p :: Type -> Type -> Type)
- LiveCoding: class (Choice p, Strong p) => Traversing (p :: Type -> Type -> Type)
- LiveCoding: class () => Typeable (a :: k)
- LiveCoding: coalgebra :: MSF m a b -> Coalg m a b
- LiveCoding: coalgebraC :: Data (MSF m a b) => MSF m a b -> Cell m a b
- LiveCoding: combineHandles :: Applicative m => Handle m h1 -> Handle m h2 -> Handle m (h1, h2)
- LiveCoding: combineParametrisedHandles :: Applicative m => ParametrisedHandle p1 m h1 -> ParametrisedHandle p2 m h2 -> ParametrisedHandle (p1, p2) m (h1, h2)
- LiveCoding: commute :: (Finite e, Generic e, GFinite (Rep e), Monad m) => (e -> Cell m a b) -> Cell (ReaderT e m) a b
- LiveCoding: compositionShow :: (Data s1, Data s2) => Composition s1 s2 -> String
- LiveCoding: constC :: Applicative m => b -> Cell m a b
- LiveCoding: constM :: m b -> Cell m a b
- LiveCoding: constMigrationFrom2 :: Typeable t => (forall a b c. (Typeable a, Typeable b, Typeable c) => t b c -> Maybe a) -> Migration
- LiveCoding: constrFields :: Constr -> [String]
- LiveCoding: constrFixity :: Constr -> Fixity
- LiveCoding: constrIndex :: Constr -> ConIndex
- LiveCoding: constrRep :: Constr -> ConstrRep
- LiveCoding: constrType :: Constr -> DataType
- LiveCoding: constructorMigration :: Migration -> Migration
- LiveCoding: cotambara :: forall (p :: Type -> Type -> Type) (q :: Type -> Type -> Type). Costrong p => (p :-> q) -> p :-> Cotambara q
- LiveCoding: count :: Monad m => Cell m a Integer
- LiveCoding: countDebugger :: IO (Debugger IO, CountObserver)
- LiveCoding: data () => (a :: k) :~: (b :: k)
- LiveCoding: data Alg m a b
- LiveCoding: data BufferCommand a
- LiveCoding: data Cell m a b
- LiveCoding: data CellExcept a b m e
- LiveCoding: data Choice stateL stateR
- LiveCoding: data Coalg m a b
- LiveCoding: data Composition state1 state2
- LiveCoding: data () => Constr
- LiveCoding: data () => ConstrRep
- LiveCoding: data () => Cotambara (q :: Type -> Type -> Type) a b
- LiveCoding: data () => DataRep
- LiveCoding: data () => DataType
- LiveCoding: data Debugging dbgState state
- LiveCoding: data ExceptState state e
- LiveCoding: data Feedback sPrevious sAdditional
- LiveCoding: data () => Fixity
- LiveCoding: data ForeverE e s
- LiveCoding: data () => FreeTraversing (p :: Type -> Type -> Type) a b
- LiveCoding: data Handle m h
- LiveCoding: data LiveProgram m
- LiveCoding: data MSF m a b
- LiveCoding: data Migration
- LiveCoding: data Parallel stateP1 stateP2
- LiveCoding: data ParametrisedHandle p m h
- LiveCoding: data () => Pastro (p :: Type -> Type -> Type) a b
- LiveCoding: data () => Proxy (t :: k)
- LiveCoding: data () => TyCon
- LiveCoding: dataCast1 :: (Data a, Typeable t) => (forall d. Data d => c (t d)) -> Maybe (c a)
- LiveCoding: dataCast2 :: (Data a, Typeable t) => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a)
- LiveCoding: dataTypeConstrs :: DataType -> [Constr]
- LiveCoding: dataTypeName :: DataType -> String
- LiveCoding: dataTypeOf :: Data a => a -> DataType
- LiveCoding: dataTypeRep :: DataType -> DataRep
- LiveCoding: defaultChange :: (Eq p, Monad m) => (p -> m h) -> (p -> h -> m ()) -> p -> p -> h -> m h
- LiveCoding: delay :: (Data s, Monad m) => s -> Cell m s s
- LiveCoding: dimapWandering :: Traversing p => (a' -> a) -> (b -> b') -> p a b -> p a' b'
- LiveCoding: discardVoid :: Functor m => ExceptT Void m a -> m a
- LiveCoding: edge :: Monad m => Cell m Bool Bool
- LiveCoding: emptyMVarHandle :: Handle IO (MVar a)
- LiveCoding: eqT :: forall {k} (a :: k) (b :: k). (Typeable a, Typeable b) => Maybe (a :~: b)
- LiveCoding: except :: forall (m :: Type -> Type) e a. Monad m => Either e a -> ExceptT e m a
- LiveCoding: exceptC :: Monad m => Cell (ExceptT e m) (Either e a) a
- LiveCoding: exceptShow :: (Data s, Data e) => ExceptState s e -> String
- LiveCoding: ext3 :: (Data a, Data b, Data c, Data d, Typeable t, Typeable f) => f a -> f (t b c d) -> f a
- LiveCoding: ext3Q :: (Data a, Data b, Data c, Data d, Typeable t, Typeable q) => (a -> q) -> (t b c d -> q) -> a -> q
- LiveCoding: feedback :: (Monad m, Data s) => s -> Cell m (a, s) (b, s) -> Cell m a b
- LiveCoding: feedbackShow :: (Data state, Data s) => Feedback state s -> String
- LiveCoding: fifo :: (Monad m, Data a) => Cell m (Seq a) (Maybe a)
- LiveCoding: fifoFoldable :: (Monad m, Data a, Foldable f) => Cell m (f a) (Maybe a)
- LiveCoding: fifoList :: (Monad m, Data a) => Cell m [a] (Maybe a)
- LiveCoding: finality :: Monad m => Coalg m a b -> MSF m a b
- LiveCoding: finalityC :: Monad m => Cell m a b -> MSF m a b
- LiveCoding: finallyE :: forall (m :: Type -> Type) e a. Monad m => ExceptT e m a -> ExceptT e m () -> ExceptT e m a
- LiveCoding: first' :: Strong p => p a b -> p (a, c) (b, c)
- LiveCoding: firstTraversing :: Traversing p => p a b -> p (a, c) (b, c)
- LiveCoding: foldC :: (Data b, Monad m) => (a -> b -> b) -> b -> Cell m a b
- LiveCoding: foldC' :: (Data b, Monad m) => (a -> b -> b) -> b -> Cell m a b
- LiveCoding: foreverC :: (Data e, Monad m) => Cell (ExceptT e m) a b -> Cell m a b
- LiveCoding: foreverE :: (Monad m, Data e) => e -> Cell (ReaderT e (ExceptT e m)) a b -> Cell m a b
- LiveCoding: foreverEShow :: (Data e, Data s) => ForeverE e s -> String
- LiveCoding: fromConstr :: Data a => Constr -> a
- LiveCoding: fromConstrB :: Data a => (forall d. Data d => d) -> Constr -> a
- LiveCoding: fromConstrM :: (Monad m, Data a) => (forall d. Data d => m d) -> Constr -> m a
- LiveCoding: funResultTy :: TypeRep -> TypeRep -> Maybe TypeRep
- LiveCoding: gcast :: forall {k} (a :: k) (b :: k) c. (Typeable a, Typeable b) => c a -> Maybe (c b)
- LiveCoding: gcast1 :: forall {k1} {k2} c (t :: k2 -> k1) (t' :: k2 -> k1) (a :: k2). (Typeable t, Typeable t') => c (t a) -> Maybe (c (t' a))
- LiveCoding: gcast2 :: forall {k1} {k2} {k3} c (t :: k2 -> k3 -> k1) (t' :: k2 -> k3 -> k1) (a :: k2) (b :: k3). (Typeable t, Typeable t') => c (t a b) -> Maybe (c (t' a b))
- LiveCoding: gcast3 :: forall f t t' a b c. (Typeable t, Typeable t') => f (t a b c) -> Maybe (f (t' a b c))
- LiveCoding: gcommute :: (GFinite f, Monad m) => (f e -> Cell m a b) -> Cell (ReaderT (f e) m) a b
- LiveCoding: getC :: Monad m => Cell (StateT s m) a s
- LiveCoding: getChildrenMaybe :: Data a => a -> [GenericR' Maybe]
- LiveCoding: getChildrenSetters :: Data a => Migration -> a -> [GenericT']
- LiveCoding: gfoldl :: Data a => (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. () => g -> c g) -> a -> c a
- LiveCoding: gmapM :: (Data a, Monad m) => (forall d. Data d => d -> m d) -> a -> m a
- LiveCoding: gmapMo :: (Data a, MonadPlus m) => (forall d. Data d => d -> m d) -> a -> m a
- LiveCoding: gmapMp :: (Data a, MonadPlus m) => (forall d. Data d => d -> m d) -> a -> m a
- LiveCoding: gmapQ :: Data a => (forall d. Data d => d -> u) -> a -> [u]
- LiveCoding: gmapQi :: Data a => Int -> (forall d. Data d => d -> u) -> a -> u
- LiveCoding: gmapQl :: Data a => (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r
- LiveCoding: gmapQr :: forall r r'. Data a => (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r
- LiveCoding: gmapT :: Data a => (forall b. Data b => b -> b) -> a -> a
- LiveCoding: gshowDebugger :: Debugger IO
- LiveCoding: gunfold :: Data a => (forall b r. Data b => c (b -> r) -> c r) -> (forall r. () => r -> c r) -> Constr -> c a
- LiveCoding: handleE :: forall (m :: Type -> Type) e e' a. Monad m => (e -> ExceptT e' m a) -> ExceptT e m a -> ExceptT e' m a
- LiveCoding: handling :: (Typeable h, Monad m) => Handle m h -> Cell (HandlingStateT m) arbitrary h
- LiveCoding: handlingParametrised :: (Typeable h, Typeable p, Monad m, Eq p) => ParametrisedHandle p m h -> Cell (HandlingStateT m) p h
- LiveCoding: heqT :: forall {k1} {k2} (a :: k1) (b :: k2). (Typeable a, Typeable b) => Maybe (a :~~: b)
- LiveCoding: hoistCell :: (forall x. m1 x -> m2 x) -> Cell m1 a b -> Cell m2 a b
- LiveCoding: hoistCellKleisli :: (Monad m1, Monad m2) => (forall s. (s -> a1 -> m1 (b1, s)) -> s -> a2 -> m2 (b2, s)) -> Cell m1 a1 b1 -> Cell m2 a2 b2
- LiveCoding: hoistCellKleisliStateChange :: (Monad m1, Monad m2, Typeable t, forall s. Data s => Data (t s)) => (forall s. (s -> a1 -> m1 (b1, s)) -> t s -> a2 -> m2 (b2, t s)) -> (forall s. s -> t s) -> Cell m1 a1 b1 -> Cell m2 a2 b2
- LiveCoding: hoistCellKleisli_ :: (Monad m1, Monad m2) => (forall s. (a1 -> m1 (b1, s)) -> a2 -> m2 (b2, s)) -> Cell m1 a1 b1 -> Cell m2 a2 b2
- LiveCoding: hoistCellOutput :: (Monad m1, Monad m2) => (forall s. m1 (b1, s) -> m2 (b2, s)) -> Cell m1 a b1 -> Cell m2 a b2
- LiveCoding: hoistLiveProgram :: (forall a. m1 a -> m2 a) -> LiveProgram m1 -> LiveProgram m2
- LiveCoding: hold :: (Data a, Monad m) => a -> Cell m (Maybe a) a
- LiveCoding: holdFirst :: (Data a, Monad m) => Cell m a a
- LiveCoding: holdJust :: (Monad m, Data a) => Cell m (Maybe a) (Maybe a)
- LiveCoding: hotCodeSwap :: LiveProgram m -> LiveProgram m -> LiveProgram m
- LiveCoding: hotCodeSwapCell :: Cell m a b -> Cell m a b -> Cell m a b
- LiveCoding: indexConstr :: DataType -> ConIndex -> Constr
- LiveCoding: infix 4 :~:
- LiveCoding: initiality :: Functor m => AlgStructure m a b s -> MSF m a b -> s
- LiveCoding: integrate :: (Data a, Fractional a, Monad m) => Cell m a a
- LiveCoding: ioRefHandle :: a -> Handle IO (IORef a)
- LiveCoding: isAlgType :: DataType -> Bool
- LiveCoding: isNorepType :: DataType -> Bool
- LiveCoding: isUnit :: Data s => s -> Bool
- LiveCoding: leftTraversing :: Traversing p => p a b -> p (Either a c) (Either b c)
- LiveCoding: liftCallCC :: CallCC m (Either e a) (Either e b) -> CallCC (ExceptT e m) a b
- LiveCoding: liftCell :: (Monad m, MonadTrans t) => Cell m a b -> Cell (t m) a b
- LiveCoding: liftListen :: Monad m => Listen w m (Either e a) -> Listen w (ExceptT e m) a
- LiveCoding: liftPass :: Monad m => Pass w m (Either e a) -> Pass w (ExceptT e m) a
- LiveCoding: liveCell :: Monad m => Cell m () () -> LiveProgram m
- LiveCoding: lmapWandering :: Traversing p => (a -> b) -> p b c -> p a c
- LiveCoding: localTime :: (Data a, Fractional a, Monad m) => Cell m b a
- LiveCoding: mapExcept :: (Either e a -> Either e' b) -> Except e a -> Except e' b
- LiveCoding: mapExceptT :: (m (Either e a) -> n (Either e' b)) -> ExceptT e m a -> ExceptT e' n b
- LiveCoding: matchingAlgebraicDataTypes :: (Data a, Data b) => a -> b -> Bool
- LiveCoding: maxConstrIndex :: DataType -> ConIndex
- LiveCoding: maybeMigrateFromDebugging :: (Typeable state', Typeable state) => Debugging dbgState state -> Maybe state'
- LiveCoding: maybeMigrateToDebugging :: (Typeable state', Typeable state) => Debugging dbgState state -> state' -> Maybe (Debugging dbgState state)
- LiveCoding: maybePop :: Maybe a -> [BufferCommand b]
- LiveCoding: maybePush :: Maybe a -> [BufferCommand a]
- LiveCoding: migrate :: (Data a, Data b) => a -> b -> a
- LiveCoding: migrateWith :: (Data a, Data b) => Migration -> a -> b -> a
- LiveCoding: migrationDebugging :: Migration
- LiveCoding: migrationFromDebugging :: Migration
- LiveCoding: migrationTo1 :: Typeable t => (forall a b. (Typeable a, Typeable b) => t b -> a -> Maybe (t b)) -> Migration
- LiveCoding: migrationTo2 :: Typeable t => (forall a b c. (Typeable a, Typeable b, Typeable c) => t b c -> a -> Maybe (t b c)) -> Migration
- LiveCoding: migrationToDebugging :: Migration
- LiveCoding: mkCharConstr :: DataType -> Char -> Constr
- LiveCoding: mkCharType :: String -> DataType
- LiveCoding: mkConstr :: DataType -> String -> [String] -> Fixity -> Constr
- LiveCoding: mkConstrTag :: DataType -> String -> Int -> [String] -> Fixity -> Constr
- LiveCoding: mkDataType :: String -> [Constr] -> DataType
- LiveCoding: mkFloatType :: String -> DataType
- LiveCoding: mkFunTy :: TypeRep -> TypeRep -> TypeRep
- LiveCoding: mkIntType :: String -> DataType
- LiveCoding: mkIntegralConstr :: (Integral a, Show a) => DataType -> a -> Constr
- LiveCoding: mkNoRepType :: String -> DataType
- LiveCoding: mkRealConstr :: (Real a, Show a) => DataType -> a -> Constr
- LiveCoding: newMVarHandle :: a -> Handle IO (MVar a)
- LiveCoding: newtype () => CofreeTraversing (p :: Type -> Type -> Type) a b
- LiveCoding: newtype () => Copastro (p :: Type -> Type -> Type) a b
- LiveCoding: newtype CountObserver
- LiveCoding: newtype Debugger m
- LiveCoding: newtype () => ExceptT e (m :: Type -> Type) a
- LiveCoding: newtype GenericR' m
- LiveCoding: newtype Q q x
- LiveCoding: newtype () => Tambara (p :: Type -> Type -> Type) a b
- LiveCoding: newtypeMigration :: Migration
- LiveCoding: nonBlocking :: Typeable b => Bool -> Cell IO a b -> Cell (HandlingStateT IO) (Maybe a) (Maybe b)
- LiveCoding: onChange :: (Monad m, Data p, Eq p) => p -> (p -> p -> a -> m b) -> Cell m a (Maybe b)
- LiveCoding: onChange' :: (Monad m, Data p, Eq p) => (p -> p -> a -> m b) -> Cell m (p, a) (Maybe b)
- LiveCoding: once :: (Monad m, Data e, Finite e) => (a -> m e) -> CellExcept a arbitrary m e
- LiveCoding: once_ :: (Monad m, Data e, Finite e) => m e -> CellExcept a arbitrary m e
- LiveCoding: parallelShow :: (Data s1, Data s2) => Parallel s1 s2 -> String
- LiveCoding: pastro :: forall (q :: Type -> Type -> Type) (p :: Type -> Type -> Type). Strong q => (p :-> q) -> Pastro p :-> q
- LiveCoding: printEverySecond :: Cell IO String ()
- LiveCoding: printSine :: Double -> LiveProgram IO
- LiveCoding: printSineWait :: LiveProgram IO
- LiveCoding: printSinesForever :: LiveProgram IO
- LiveCoding: printTime :: MonadIO m => String -> m ()
- LiveCoding: printTimeC :: MonadIO m => String -> Cell m () ()
- LiveCoding: putC :: Monad m => Cell (StateT s m) s ()
- LiveCoding: readConstr :: DataType -> String -> Maybe Constr
- LiveCoding: repConstr :: DataType -> ConstrRep -> Constr
- LiveCoding: resample :: (Monad m, KnownNat n) => Cell m a b -> Cell m (Vector n a) (Vector n b)
- LiveCoding: resampleList :: Monad m => Cell m a b -> Cell m [a] [b]
- LiveCoding: resampleListPar :: Monad m => Cell m a b -> Cell m [a] [b]
- LiveCoding: resampleMaybe :: Monad m => Cell m a b -> Cell m (Maybe a) (Maybe b)
- LiveCoding: rightTraversing :: Traversing p => p a b -> p (Either c a) (Either c b)
- LiveCoding: rmapWandering :: Traversing p => (b -> c) -> p a b -> p a c
- LiveCoding: rnfTyCon :: TyCon -> ()
- LiveCoding: rnfTypeRep :: TypeRep -> ()
- LiveCoding: runCellExcept :: Monad m => CellExcept a b m e -> Cell (ExceptT e m) a b
- LiveCoding: runExcept :: Except e a -> Either e a
- LiveCoding: runExceptC :: (Data e, Monad m) => Cell (ExceptT e m) a b -> Cell m a (Either e b)
- LiveCoding: runExceptT :: ExceptT e m a -> m (Either e a)
- LiveCoding: runSafeMigration :: (Data a, Data b) => Migration -> a -> b -> a
- LiveCoding: runStateL :: (Data stateT, Monad m) => LiveProgram (StateT stateT m) -> stateT -> LiveProgram m
- LiveCoding: safe :: Monad m => Cell m a b -> CellExcept a b m Void
- LiveCoding: safely :: Monad m => CellExcept a b m Void -> Cell m a b
- LiveCoding: sameConstructorMigration :: Migration -> Migration
- LiveCoding: second' :: Strong p => p a b -> p (c, a) (c, b)
- LiveCoding: secondTraversing :: Traversing p => p a b -> p (c, a) (c, b)
- LiveCoding: setChildren :: Data a => [GenericT'] -> a -> a
- LiveCoding: showConstr :: Constr -> String
- LiveCoding: showsTypeRep :: TypeRep -> ShowS
- LiveCoding: sine :: MonadFix m => Double -> Cell m () Double
- LiveCoding: sineChangeE :: CellExcept () Double IO Void
- LiveCoding: sineWait :: Double -> CellExcept () String IO Void
- LiveCoding: sinesForever :: MonadFix m => Cell m () String
- LiveCoding: sinesForever' :: MonadFix m => CellExcept () String m Void
- LiveCoding: sinesWaitAndTry :: MonadFix m => CellExcept () String m ()
- LiveCoding: splitTyConApp :: TypeRep -> (TyCon, [TypeRep])
- LiveCoding: standardMigration :: Migration
- LiveCoding: statePrint :: Debugger IO
- LiveCoding: stateShow :: Data s => s -> String
- LiveCoding: step :: Monad m => Cell m a b -> a -> m (b, Cell m a b)
- LiveCoding: stepRate :: Num a => a
- LiveCoding: steps :: Monad m => Cell m a b -> [a] -> m ([b], Cell m a b)
- LiveCoding: strong :: Strong p => (a -> b -> c) -> p a b -> p a c
- LiveCoding: sumC :: (Monad m, Num a, Data a) => Cell m a a
- LiveCoding: sumFeedback :: (Monad m, Num a, Data a) => Cell m a a
- LiveCoding: sumFrom :: Monad m => Integer -> Cell m Integer Integer
- LiveCoding: tambara :: forall (p :: Type -> Type -> Type) (q :: Type -> Type -> Type). Strong p => (p :-> q) -> p :-> Tambara q
- LiveCoding: threadHandle :: IO () -> Handle IO ThreadId
- LiveCoding: throwC :: Monad m => Cell (ExceptT e m) e arbitrary
- LiveCoding: throwE :: forall (m :: Type -> Type) e a. Monad m => e -> ExceptT e m a
- LiveCoding: throwIf :: Monad m => (a -> Bool) -> e -> Cell (ExceptT e m) a a
- LiveCoding: throwIf_ :: Monad m => (a -> Bool) -> Cell (ExceptT () m) a a
- LiveCoding: throwWhen0 :: Monad m => Cell (ExceptT () m) Double Double
- LiveCoding: toCell :: Functor m => Cell m a b -> Cell m a b
- LiveCoding: toConstr :: Data a => a -> Constr
- LiveCoding: toLiveCell :: Functor m => LiveProgram m -> Cell m () ()
- LiveCoding: toParametrised :: Monad m => Handle m h -> ParametrisedHandle () m h
- LiveCoding: trLiftedRep :: TypeRep LiftedRep
- LiveCoding: traverse' :: (Traversing p, Traversable f) => p a b -> p (f a) (f b)
- LiveCoding: treeMigration :: Migration -> Migration
- LiveCoding: try :: (Data e, Finite e) => Cell (ExceptT e m) a b -> CellExcept a b m e
- LiveCoding: tryE :: forall (m :: Type -> Type) e a. Monad m => ExceptT e m a -> ExceptT e m (Either e a)
- LiveCoding: tryOneField :: Data a => StateT [GenericR' Maybe] Maybe a
- LiveCoding: tyConFingerprint :: TyCon -> Fingerprint
- LiveCoding: tyConModule :: TyCon -> String
- LiveCoding: tyConName :: TyCon -> String
- LiveCoding: tyConPackage :: TyCon -> String
- LiveCoding: tyconModule :: String -> String
- LiveCoding: tyconUQname :: String -> String
- LiveCoding: type Actuator b = Cell IO b ()
- LiveCoding: type AlgStructure m a b s = StateTransition m a b s -> s
- LiveCoding: type ConIndex = Int
- LiveCoding: type Except e = ExceptT e Identity
- LiveCoding: type SF a b = forall m. Cell m a b
- LiveCoding: type Sensor a = Cell IO () a
- LiveCoding: type StateTransition m a b s = a -> m (b, s)
- LiveCoding: type TypeRep = SomeTypeRep
- LiveCoding: typeOf :: Typeable a => a -> TypeRep
- LiveCoding: typeOf1 :: Typeable t => t a -> TypeRep
- LiveCoding: typeOf2 :: Typeable t => t a b -> TypeRep
- LiveCoding: typeOf3 :: Typeable t => t a b c -> TypeRep
- LiveCoding: typeOf4 :: Typeable t => t a b c d -> TypeRep
- LiveCoding: typeOf5 :: Typeable t => t a b c d e -> TypeRep
- LiveCoding: typeOf6 :: Typeable t => t a b c d e f -> TypeRep
- LiveCoding: typeOf7 :: Typeable t => t a b c d e f g -> TypeRep
- LiveCoding: typeRep :: forall {k} proxy (a :: k). Typeable a => proxy a -> TypeRep
- LiveCoding: typeRepArgs :: TypeRep -> [TypeRep]
- LiveCoding: typeRepFingerprint :: TypeRep -> Fingerprint
- LiveCoding: typeRepTyCon :: TypeRep -> TyCon
- LiveCoding: uncotambara :: forall (q :: Type -> Type -> Type) (p :: Type -> Type -> Type). Profunctor q => (p :-> Cotambara q) -> p :-> q
- LiveCoding: uncurry' :: Strong p => p a (b -> c) -> p (a, b) c
- LiveCoding: unfirst :: Costrong p => p (a, d) (b, d) -> p a b
- LiveCoding: unpastro :: forall (p :: Type -> Type -> Type) (q :: Type -> Type -> Type). (Pastro p :-> q) -> p :-> q
- LiveCoding: unsecond :: Costrong p => p (d, a) (d, b) -> p a b
- LiveCoding: untambara :: forall (q :: Type -> Type -> Type) (p :: Type -> Type -> Type). Profunctor q => (p :-> Tambara q) -> p :-> q
- LiveCoding: userMigration :: (Typeable c, Typeable d) => (c -> d) -> Migration
- LiveCoding: wait :: Monad m => Double -> Cell (ExceptT () m) a a
- LiveCoding: wander :: Traversing p => (forall (f :: Type -> Type). Applicative f => (a -> f b) -> s -> f t) -> p a b -> p s t
- LiveCoding: withDebugger :: Monad m => LiveProgram m -> Debugger m -> LiveProgram m
- LiveCoding: withDebuggerC :: Monad m => Cell m a b -> Debugger m -> Cell m a b
- LiveCoding: withExcept :: (e -> e') -> Except e a -> Except e' a
- LiveCoding: withExceptT :: forall (m :: Type -> Type) e e' a. Functor m => (e -> e') -> ExceptT e m a -> ExceptT e' m a
- LiveCoding.Cell: type SF a b = forall m. Cell m a b
+ LiveCoding.Cell: type SF a b = forall (m :: Type -> Type). () => Cell m a b
+ LiveCoding.Exceptions.Finite: ($dmcommute) :: forall (m :: Type -> Type) a b. (Finite e, Generic e, GFinite (Rep e), Monad m) => (e -> Cell m a b) -> Cell (ReaderT e m) a b
- LiveCoding: HandlingState :: Key -> Destructors m -> HandlingState m
+ LiveCoding: HandlingState :: Key -> Destructors m -> HandlingState (m :: Type -> Type)
- LiveCoding: LaunchedProgram :: MVar (LiveProgram IO) -> ThreadId -> LaunchedProgram (m :: * -> *)
+ LiveCoding: LaunchedProgram :: MVar (LiveProgram IO) -> ThreadId -> LaunchedProgram (m :: Type -> Type)
- LiveCoding: [destructors] :: HandlingState m -> Destructors m
+ LiveCoding: [destructors] :: HandlingState (m :: Type -> Type) -> Destructors m
- LiveCoding: [nHandles] :: HandlingState m -> Key
+ LiveCoding: [nHandles] :: HandlingState (m :: Type -> Type) -> Key
- LiveCoding: [programVar] :: LaunchedProgram (m :: * -> *) -> MVar (LiveProgram IO)
+ LiveCoding: [programVar] :: LaunchedProgram (m :: Type -> Type) -> MVar (LiveProgram IO)
- LiveCoding: [threadId] :: LaunchedProgram (m :: * -> *) -> ThreadId
+ LiveCoding: [threadId] :: LaunchedProgram (m :: Type -> Type) -> ThreadId
- LiveCoding: class (Monad m) => Launchable m
+ LiveCoding: class Monad m => Launchable (m :: Type -> Type)
- LiveCoding: class () => Profunctor (p :: Type -> Type -> Type)
+ LiveCoding: class Profunctor (p :: Type -> Type -> Type)
- LiveCoding: data HandlingState m
+ LiveCoding: data HandlingState (m :: Type -> Type)
- LiveCoding: data LaunchedProgram (m :: * -> *)
+ LiveCoding: data LaunchedProgram (m :: Type -> Type)
- LiveCoding: launch :: Launchable m => LiveProgram m -> IO (LaunchedProgram m)
+ LiveCoding: launch :: forall (m :: Type -> Type). Launchable m => LiveProgram m -> IO (LaunchedProgram m)
- LiveCoding: launchWithDebugger :: (Monad m, Launchable m) => LiveProgram m -> Debugger m -> IO (LaunchedProgram m)
+ LiveCoding: launchWithDebugger :: forall (m :: Type -> Type). (Monad m, Launchable m) => LiveProgram m -> Debugger m -> IO (LaunchedProgram m)
- LiveCoding: liveMain :: Launchable m => LiveProgram m -> IO ()
+ LiveCoding: liveMain :: forall (m :: Type -> Type). Launchable m => LiveProgram m -> IO ()
- LiveCoding: newtype () => ArrowMonad (a :: Type -> Type -> Type) b
+ LiveCoding: newtype ArrowMonad (a :: Type -> Type -> Type) b
- LiveCoding: newtype () => Costar (f :: k -> Type) (d :: k) c
+ LiveCoding: newtype Costar (f :: k -> Type) (d :: k) c
- LiveCoding: newtype () => Forget r a (b :: k)
+ LiveCoding: newtype Forget r a (b :: k)
- LiveCoding: newtype () => Kleisli (m :: Type -> Type) a b
+ LiveCoding: newtype Kleisli (m :: Type -> Type) a b
- LiveCoding: newtype () => Star (f :: k -> Type) d (c :: k)
+ LiveCoding: newtype Star (f :: k -> Type) d (c :: k)
- LiveCoding: newtype () => WrappedArrow (p :: k -> k1 -> Type) (a :: k) (b :: k1)
+ LiveCoding: newtype WrappedArrow (p :: k -> k1 -> Type) (a :: k) (b :: k1)
- LiveCoding: readerC' :: Monad m => Cell m (r, a) b -> Cell (ReaderT r m) a b
+ LiveCoding: readerC' :: forall (m :: Type -> Type) r a b. Monad m => Cell m (r, a) b -> Cell (ReaderT r m) a b
- LiveCoding: runHandlingState :: (Monad m, Typeable m) => LiveProgram (HandlingStateT m) -> LiveProgram m
+ LiveCoding: runHandlingState :: forall (m :: Type -> Type). (Monad m, Typeable m) => LiveProgram (HandlingStateT m) -> LiveProgram m
- LiveCoding: runHandlingStateC :: forall m a b. (Monad m, Typeable m) => Cell (HandlingStateT m) a b -> Cell m a b
+ LiveCoding: runHandlingStateC :: forall (m :: Type -> Type) a b. (Monad m, Typeable m) => Cell (HandlingStateT m) a b -> Cell m a b
- LiveCoding: runReaderC :: r -> Cell (ReaderT r m) a b -> Cell m a b
+ LiveCoding: runReaderC :: forall r (m :: Type -> Type) a b. r -> Cell (ReaderT r m) a b -> Cell m a b
- LiveCoding: runReaderC' :: Monad m => Cell (ReaderT r m) a b -> Cell m (r, a) b
+ LiveCoding: runReaderC' :: forall (m :: Type -> Type) r a b. Monad m => Cell (ReaderT r m) a b -> Cell m (r, a) b
- LiveCoding: runStateC :: (Data stateT, Monad m) => Cell (StateT stateT m) a b -> stateT -> Cell m a (b, stateT)
+ LiveCoding: runStateC :: forall stateT (m :: Type -> Type) a b. (Data stateT, Monad m) => Cell (StateT stateT m) a b -> stateT -> Cell m a (b, stateT)
- LiveCoding: runStateC_ :: (Data stateT, Monad m) => Cell (StateT stateT m) a b -> stateT -> Cell m a b
+ LiveCoding: runStateC_ :: forall stateT (m :: Type -> Type) a b. (Data stateT, Monad m) => Cell (StateT stateT m) a b -> stateT -> Cell m a b
- LiveCoding: runWriterC :: (Monoid w, Monad m) => Cell (WriterT w m) a b -> Cell m a (w, b)
+ LiveCoding: runWriterC :: forall w (m :: Type -> Type) a b. (Monoid w, Monad m) => Cell (WriterT w m) a b -> Cell m a (w, b)
- LiveCoding: stepLaunchedProgram :: (Monad m, Launchable m) => LaunchedProgram m -> IO ()
+ LiveCoding: stepLaunchedProgram :: forall (m :: Type -> Type). (Monad m, Launchable m) => LaunchedProgram m -> IO ()
- LiveCoding: stop :: Launchable m => LaunchedProgram m -> IO ()
+ LiveCoding: stop :: forall (m :: Type -> Type). Launchable m => LaunchedProgram m -> IO ()
- LiveCoding: type HandlingStateT m = StateT (HandlingState m) m
+ LiveCoding: type HandlingStateT (m :: Type -> Type) = StateT HandlingState m m
- LiveCoding: update :: Launchable m => LaunchedProgram m -> LiveProgram m -> IO ()
+ LiveCoding: update :: forall (m :: Type -> Type). Launchable m => LaunchedProgram m -> LiveProgram m -> IO ()
- LiveCoding.Bind: throwWhen0 :: Monad m => Cell (ExceptT () m) Double Double
+ LiveCoding.Bind: throwWhen0 :: forall (m :: Type -> Type). Monad m => Cell (ExceptT () m) Double Double
- LiveCoding.Cell: ArrM :: (a -> m b) -> Cell m a b
+ LiveCoding.Cell: ArrM :: (a -> m b) -> Cell (m :: Type -> Type) a b
- LiveCoding.Cell: Cell :: s -> (s -> a -> m (b, s)) -> Cell m a b
+ LiveCoding.Cell: Cell :: s -> (s -> a -> m (b, s)) -> Cell (m :: Type -> Type) a b
- LiveCoding.Cell: [cellState] :: Cell m a b -> s
+ LiveCoding.Cell: [cellState] :: Cell (m :: Type -> Type) a b -> s
- LiveCoding.Cell: [cellStep] :: Cell m a b -> s -> a -> m (b, s)
+ LiveCoding.Cell: [cellStep] :: Cell (m :: Type -> Type) a b -> s -> a -> m (b, s)
- LiveCoding.Cell: [runArrM] :: Cell m a b -> a -> m b
+ LiveCoding.Cell: [runArrM] :: Cell (m :: Type -> Type) a b -> a -> m b
- LiveCoding.Cell: constC :: Applicative m => b -> Cell m a b
+ LiveCoding.Cell: constC :: forall (m :: Type -> Type) b a. Applicative m => b -> Cell m a b
- LiveCoding.Cell: data Cell m a b
+ LiveCoding.Cell: data Cell (m :: Type -> Type) a b
- LiveCoding.Cell: hoistCell :: (forall x. m1 x -> m2 x) -> Cell m1 a b -> Cell m2 a b
+ LiveCoding.Cell: hoistCell :: (forall x. () => m1 x -> m2 x) -> Cell m1 a b -> Cell m2 a b
- LiveCoding.Cell: integrate :: (Data a, Fractional a, Monad m) => Cell m a a
+ LiveCoding.Cell: integrate :: forall a (m :: Type -> Type). (Data a, Fractional a, Monad m) => Cell m a a
- LiveCoding.Cell: liftCell :: (Monad m, MonadTrans t) => Cell m a b -> Cell (t m) a b
+ LiveCoding.Cell: liftCell :: forall (m :: Type -> Type) (t :: (Type -> Type) -> Type -> Type) a b. (Monad m, MonadTrans t) => Cell m a b -> Cell (t m) a b
- LiveCoding.Cell: liveCell :: Monad m => Cell m () () -> LiveProgram m
+ LiveCoding.Cell: liveCell :: forall (m :: Type -> Type). Monad m => Cell m () () -> LiveProgram m
- LiveCoding.Cell: localTime :: (Data a, Fractional a, Monad m) => Cell m b a
+ LiveCoding.Cell: localTime :: forall a (m :: Type -> Type) b. (Data a, Fractional a, Monad m) => Cell m b a
- LiveCoding.Cell: sine :: MonadFix m => Double -> Cell m () Double
+ LiveCoding.Cell: sine :: forall (m :: Type -> Type). MonadFix m => Double -> Cell m () Double
- LiveCoding.Cell: sumC :: (Monad m, Num a, Data a) => Cell m a a
+ LiveCoding.Cell: sumC :: forall (m :: Type -> Type) a. (Monad m, Num a, Data a) => Cell m a a
- LiveCoding.Cell: toCell :: Functor m => Cell m a b -> Cell m a b
+ LiveCoding.Cell: toCell :: forall (m :: Type -> Type) a b. Functor m => Cell m a b -> Cell m a b
- LiveCoding.Cell: toLiveCell :: Functor m => LiveProgram m -> Cell m () ()
+ LiveCoding.Cell: toLiveCell :: forall (m :: Type -> Type). Functor m => LiveProgram m -> Cell m () ()
- LiveCoding.Cell.Feedback: delay :: (Data s, Monad m) => s -> Cell m s s
+ LiveCoding.Cell.Feedback: delay :: forall s (m :: Type -> Type). (Data s, Monad m) => s -> Cell m s s
- LiveCoding.Cell.Feedback: feedback :: (Monad m, Data s) => s -> Cell m (a, s) (b, s) -> Cell m a b
+ LiveCoding.Cell.Feedback: feedback :: forall (m :: Type -> Type) s a b. (Monad m, Data s) => s -> Cell m (a, s) (b, s) -> Cell m a b
- LiveCoding.Cell.Feedback: sumFeedback :: (Monad m, Num a, Data a) => Cell m a a
+ LiveCoding.Cell.Feedback: sumFeedback :: forall (m :: Type -> Type) a. (Monad m, Num a, Data a) => Cell m a a
- LiveCoding.Cell.HotCodeSwap: hotCodeSwapCell :: Cell m a b -> Cell m a b -> Cell m a b
+ LiveCoding.Cell.HotCodeSwap: hotCodeSwapCell :: forall (m :: Type -> Type) a b. Cell m a b -> Cell m a b -> Cell m a b
- LiveCoding.Cell.Monad: hoistCellKleisli :: (Monad m1, Monad m2) => (forall s. (s -> a1 -> m1 (b1, s)) -> s -> a2 -> m2 (b2, s)) -> Cell m1 a1 b1 -> Cell m2 a2 b2
+ LiveCoding.Cell.Monad: hoistCellKleisli :: (Monad m1, Monad m2) => (forall s. () => (s -> a1 -> m1 (b1, s)) -> s -> a2 -> m2 (b2, s)) -> Cell m1 a1 b1 -> Cell m2 a2 b2
- LiveCoding.Cell.Monad: hoistCellKleisliStateChange :: (Monad m1, Monad m2, Typeable t, forall s. Data s => Data (t s)) => (forall s. (s -> a1 -> m1 (b1, s)) -> t s -> a2 -> m2 (b2, t s)) -> (forall s. s -> t s) -> Cell m1 a1 b1 -> Cell m2 a2 b2
+ LiveCoding.Cell.Monad: hoistCellKleisliStateChange :: (Monad m1, Monad m2, Typeable t, forall s. Data s => Data (t s)) => (forall s. () => (s -> a1 -> m1 (b1, s)) -> t s -> a2 -> m2 (b2, t s)) -> (forall s. () => s -> t s) -> Cell m1 a1 b1 -> Cell m2 a2 b2
- LiveCoding.Cell.Monad: hoistCellKleisli_ :: (Monad m1, Monad m2) => (forall s. (a1 -> m1 (b1, s)) -> a2 -> m2 (b2, s)) -> Cell m1 a1 b1 -> Cell m2 a2 b2
+ LiveCoding.Cell.Monad: hoistCellKleisli_ :: (Monad m1, Monad m2) => (forall s. () => (a1 -> m1 (b1, s)) -> a2 -> m2 (b2, s)) -> Cell m1 a1 b1 -> Cell m2 a2 b2
- LiveCoding.Cell.Monad: hoistCellOutput :: (Monad m1, Monad m2) => (forall s. m1 (b1, s) -> m2 (b2, s)) -> Cell m1 a b1 -> Cell m2 a b2
+ LiveCoding.Cell.Monad: hoistCellOutput :: (Monad m1, Monad m2) => (forall s. () => m1 (b1, s) -> m2 (b2, s)) -> Cell m1 a b1 -> Cell m2 a b2
- LiveCoding.Cell.Monad.Trans: readerC' :: Monad m => Cell m (r, a) b -> Cell (ReaderT r m) a b
+ LiveCoding.Cell.Monad.Trans: readerC' :: forall (m :: Type -> Type) r a b. Monad m => Cell m (r, a) b -> Cell (ReaderT r m) a b
- LiveCoding.Cell.Monad.Trans: runReaderC :: r -> Cell (ReaderT r m) a b -> Cell m a b
+ LiveCoding.Cell.Monad.Trans: runReaderC :: forall r (m :: Type -> Type) a b. r -> Cell (ReaderT r m) a b -> Cell m a b
- LiveCoding.Cell.Monad.Trans: runReaderC' :: Monad m => Cell (ReaderT r m) a b -> Cell m (r, a) b
+ LiveCoding.Cell.Monad.Trans: runReaderC' :: forall (m :: Type -> Type) r a b. Monad m => Cell (ReaderT r m) a b -> Cell m (r, a) b
- LiveCoding.Cell.Monad.Trans: runStateC :: (Data stateT, Monad m) => Cell (StateT stateT m) a b -> stateT -> Cell m a (b, stateT)
+ LiveCoding.Cell.Monad.Trans: runStateC :: forall stateT (m :: Type -> Type) a b. (Data stateT, Monad m) => Cell (StateT stateT m) a b -> stateT -> Cell m a (b, stateT)
- LiveCoding.Cell.Monad.Trans: runStateC_ :: (Data stateT, Monad m) => Cell (StateT stateT m) a b -> stateT -> Cell m a b
+ LiveCoding.Cell.Monad.Trans: runStateC_ :: forall stateT (m :: Type -> Type) a b. (Data stateT, Monad m) => Cell (StateT stateT m) a b -> stateT -> Cell m a b
- LiveCoding.Cell.Monad.Trans: runWriterC :: (Monoid w, Monad m) => Cell (WriterT w m) a b -> Cell m a (w, b)
+ LiveCoding.Cell.Monad.Trans: runWriterC :: forall w (m :: Type -> Type) a b. (Monoid w, Monad m) => Cell (WriterT w m) a b -> Cell m a (w, b)
- LiveCoding.Cell.Resample: resample :: (Monad m, KnownNat n) => Cell m a b -> Cell m (Vector n a) (Vector n b)
+ LiveCoding.Cell.Resample: resample :: forall (m :: Type -> Type) (n :: Nat) a b. (Monad m, KnownNat n) => Cell m a b -> Cell m (Vector n a) (Vector n b)
- LiveCoding.Cell.Resample: resampleList :: Monad m => Cell m a b -> Cell m [a] [b]
+ LiveCoding.Cell.Resample: resampleList :: forall (m :: Type -> Type) a b. Monad m => Cell m a b -> Cell m [a] [b]
- LiveCoding.Cell.Resample: resampleListPar :: Monad m => Cell m a b -> Cell m [a] [b]
+ LiveCoding.Cell.Resample: resampleListPar :: forall (m :: Type -> Type) a b. Monad m => Cell m a b -> Cell m [a] [b]
- LiveCoding.Cell.Resample: resampleMaybe :: Monad m => Cell m a b -> Cell m (Maybe a) (Maybe b)
+ LiveCoding.Cell.Resample: resampleMaybe :: forall (m :: Type -> Type) a b. Monad m => Cell m a b -> Cell m (Maybe a) (Maybe b)
- LiveCoding.Cell.Util: boundedFIFO :: (Data a, Monad m) => Int -> Cell m (Maybe a) (Seq a)
+ LiveCoding.Cell.Util: boundedFIFO :: forall a (m :: Type -> Type). (Data a, Monad m) => Int -> Cell m (Maybe a) (Seq a)
- LiveCoding.Cell.Util: buffer :: (Monad m, Data a) => Cell m [BufferCommand a] (Maybe a)
+ LiveCoding.Cell.Util: buffer :: forall (m :: Type -> Type) a. (Monad m, Data a) => Cell m [BufferCommand a] (Maybe a)
- LiveCoding.Cell.Util: buffered :: (Monad m, Data a) => Cell m (Maybe a) (Maybe b) -> Cell m (Maybe a) (Maybe b)
+ LiveCoding.Cell.Util: buffered :: forall (m :: Type -> Type) a b. (Monad m, Data a) => Cell m (Maybe a) (Maybe b) -> Cell m (Maybe a) (Maybe b)
- LiveCoding.Cell.Util: changes :: (Data a, Eq a, Monad m) => Cell m a (Maybe a)
+ LiveCoding.Cell.Util: changes :: forall a (m :: Type -> Type). (Data a, Eq a, Monad m) => Cell m a (Maybe a)
- LiveCoding.Cell.Util: count :: Monad m => Cell m a Integer
+ LiveCoding.Cell.Util: count :: forall (m :: Type -> Type) a. Monad m => Cell m a Integer
- LiveCoding.Cell.Util: edge :: Monad m => Cell m Bool Bool
+ LiveCoding.Cell.Util: edge :: forall (m :: Type -> Type). Monad m => Cell m Bool Bool
- LiveCoding.Cell.Util: fifo :: (Monad m, Data a) => Cell m (Seq a) (Maybe a)
+ LiveCoding.Cell.Util: fifo :: forall (m :: Type -> Type) a. (Monad m, Data a) => Cell m (Seq a) (Maybe a)
- LiveCoding.Cell.Util: fifoFoldable :: (Monad m, Data a, Foldable f) => Cell m (f a) (Maybe a)
+ LiveCoding.Cell.Util: fifoFoldable :: forall (m :: Type -> Type) a f. (Monad m, Data a, Foldable f) => Cell m (f a) (Maybe a)
- LiveCoding.Cell.Util: fifoList :: (Monad m, Data a) => Cell m [a] (Maybe a)
+ LiveCoding.Cell.Util: fifoList :: forall (m :: Type -> Type) a. (Monad m, Data a) => Cell m [a] (Maybe a)
- LiveCoding.Cell.Util: foldC :: (Data b, Monad m) => (a -> b -> b) -> b -> Cell m a b
+ LiveCoding.Cell.Util: foldC :: forall b (m :: Type -> Type) a. (Data b, Monad m) => (a -> b -> b) -> b -> Cell m a b
- LiveCoding.Cell.Util: foldC' :: (Data b, Monad m) => (a -> b -> b) -> b -> Cell m a b
+ LiveCoding.Cell.Util: foldC' :: forall b (m :: Type -> Type) a. (Data b, Monad m) => (a -> b -> b) -> b -> Cell m a b
- LiveCoding.Cell.Util: hold :: (Data a, Monad m) => a -> Cell m (Maybe a) a
+ LiveCoding.Cell.Util: hold :: forall a (m :: Type -> Type). (Data a, Monad m) => a -> Cell m (Maybe a) a
- LiveCoding.Cell.Util: holdFirst :: (Data a, Monad m) => Cell m a a
+ LiveCoding.Cell.Util: holdFirst :: forall a (m :: Type -> Type). (Data a, Monad m) => Cell m a a
- LiveCoding.Cell.Util: holdJust :: (Monad m, Data a) => Cell m (Maybe a) (Maybe a)
+ LiveCoding.Cell.Util: holdJust :: forall (m :: Type -> Type) a. (Monad m, Data a) => Cell m (Maybe a) (Maybe a)
- LiveCoding.Cell.Util: printTimeC :: MonadIO m => String -> Cell m () ()
+ LiveCoding.Cell.Util: printTimeC :: forall (m :: Type -> Type). MonadIO m => String -> Cell m () ()
- LiveCoding.Cell.Util: sumFrom :: Monad m => Integer -> Cell m Integer Integer
+ LiveCoding.Cell.Util: sumFrom :: forall (m :: Type -> Type). Monad m => Integer -> Cell m Integer Integer
- LiveCoding.CellExcept: [Bind] :: CellExcept a b m e1 -> (e1 -> CellExcept a b m e2) -> CellExcept a b m e2
+ LiveCoding.CellExcept: [Bind] :: forall a b (m :: Type -> Type) e1 e. CellExcept a b m e1 -> (e1 -> CellExcept a b m e) -> CellExcept a b m e
- LiveCoding.CellExcept: [Return] :: e -> CellExcept a b m e
+ LiveCoding.CellExcept: [Return] :: forall e a b (m :: Type -> Type). e -> CellExcept a b m e
- LiveCoding.CellExcept: [Try] :: (Data e, Finite e) => Cell (ExceptT e m) a b -> CellExcept a b m e
+ LiveCoding.CellExcept: [Try] :: forall e (m :: Type -> Type) a b. (Data e, Finite e) => Cell (ExceptT e m) a b -> CellExcept a b m e
- LiveCoding.CellExcept: data CellExcept a b m e
+ LiveCoding.CellExcept: data CellExcept a b (m :: Type -> Type) e
- LiveCoding.CellExcept: runCellExcept :: Monad m => CellExcept a b m e -> Cell (ExceptT e m) a b
+ LiveCoding.CellExcept: runCellExcept :: forall (m :: Type -> Type) a b e. Monad m => CellExcept a b m e -> Cell (ExceptT e m) a b
- LiveCoding.CellExcept: safe :: Monad m => Cell m a b -> CellExcept a b m Void
+ LiveCoding.CellExcept: safe :: forall (m :: Type -> Type) a b. Monad m => Cell m a b -> CellExcept a b m Void
- LiveCoding.CellExcept: safely :: Monad m => CellExcept a b m Void -> Cell m a b
+ LiveCoding.CellExcept: safely :: forall (m :: Type -> Type) a b. Monad m => CellExcept a b m Void -> Cell m a b
- LiveCoding.CellExcept: try :: (Data e, Finite e) => Cell (ExceptT e m) a b -> CellExcept a b m e
+ LiveCoding.CellExcept: try :: forall e (m :: Type -> Type) a b. (Data e, Finite e) => Cell (ExceptT e m) a b -> CellExcept a b m e
- LiveCoding.Coalgebra: MSF :: StateTransition m a b (MSF m a b) -> MSF m a b
+ LiveCoding.Coalgebra: MSF :: StateTransition m a b (MSF m a b) -> MSF (m :: Type -> Type) a b
- LiveCoding.Coalgebra: [Alg] :: s -> AlgStructure m a b s -> Alg m a b
+ LiveCoding.Coalgebra: [Alg] :: forall s (m :: Type -> Type) a b. s -> AlgStructure m a b s -> Alg m a b
- LiveCoding.Coalgebra: [Coalg] :: s -> (s -> StateTransition m a b s) -> Coalg m a b
+ LiveCoding.Coalgebra: [Coalg] :: forall s (m :: Type -> Type) a b. s -> (s -> StateTransition m a b s) -> Coalg m a b
- LiveCoding.Coalgebra: [unMSF] :: MSF m a b -> StateTransition m a b (MSF m a b)
+ LiveCoding.Coalgebra: [unMSF] :: MSF (m :: Type -> Type) a b -> StateTransition m a b (MSF m a b)
- LiveCoding.Coalgebra: algMSF :: MSF m a b -> Alg m a b
+ LiveCoding.Coalgebra: algMSF :: forall (m :: Type -> Type) a b. MSF m a b -> Alg m a b
- LiveCoding.Coalgebra: coalgebra :: MSF m a b -> Coalg m a b
+ LiveCoding.Coalgebra: coalgebra :: forall (m :: Type -> Type) a b. MSF m a b -> Coalg m a b
- LiveCoding.Coalgebra: coalgebraC :: Data (MSF m a b) => MSF m a b -> Cell m a b
+ LiveCoding.Coalgebra: coalgebraC :: forall (m :: Type -> Type) a b. Data (MSF m a b) => MSF m a b -> Cell m a b
- LiveCoding.Coalgebra: data Alg m a b
+ LiveCoding.Coalgebra: data Alg (m :: Type -> Type) a b
- LiveCoding.Coalgebra: data Coalg m a b
+ LiveCoding.Coalgebra: data Coalg (m :: Type -> Type) a b
- LiveCoding.Coalgebra: data MSF m a b
+ LiveCoding.Coalgebra: data MSF (m :: Type -> Type) a b
- LiveCoding.Coalgebra: finality :: Monad m => Coalg m a b -> MSF m a b
+ LiveCoding.Coalgebra: finality :: forall (m :: Type -> Type) a b. Monad m => Coalg m a b -> MSF m a b
- LiveCoding.Coalgebra: finalityC :: Monad m => Cell m a b -> MSF m a b
+ LiveCoding.Coalgebra: finalityC :: forall (m :: Type -> Type) a b. Monad m => Cell m a b -> MSF m a b
- LiveCoding.Coalgebra: type AlgStructure m a b s = StateTransition m a b s -> s
+ LiveCoding.Coalgebra: type AlgStructure (m :: Type -> Type) a b s = StateTransition m a b s -> s
- LiveCoding.Coalgebra: type StateTransition m a b s = a -> m (b, s)
+ LiveCoding.Coalgebra: type StateTransition (m :: Type -> Type) a b s = a -> m (b, s)
- LiveCoding.Debugger: Debugger :: (forall s. Data s => LiveProgram (StateT s m)) -> Debugger m
+ LiveCoding.Debugger: Debugger :: (forall s. Data s => LiveProgram (StateT s m)) -> Debugger (m :: Type -> Type)
- LiveCoding.Debugger: [getDebugger] :: Debugger m -> forall s. Data s => LiveProgram (StateT s m)
+ LiveCoding.Debugger: [getDebugger] :: Debugger (m :: Type -> Type) -> forall s. Data s => LiveProgram (StateT s m)
- LiveCoding.Debugger: getC :: Monad m => Cell (StateT s m) a s
+ LiveCoding.Debugger: getC :: forall (m :: Type -> Type) s a. Monad m => Cell (StateT s m) a s
- LiveCoding.Debugger: newtype Debugger m
+ LiveCoding.Debugger: newtype Debugger (m :: Type -> Type)
- LiveCoding.Debugger: putC :: Monad m => Cell (StateT s m) s ()
+ LiveCoding.Debugger: putC :: forall (m :: Type -> Type) s. Monad m => Cell (StateT s m) s ()
- LiveCoding.Debugger: withDebugger :: Monad m => LiveProgram m -> Debugger m -> LiveProgram m
+ LiveCoding.Debugger: withDebugger :: forall (m :: Type -> Type). Monad m => LiveProgram m -> Debugger m -> LiveProgram m
- LiveCoding.Debugger: withDebuggerC :: Monad m => Cell m a b -> Debugger m -> Cell m a b
+ LiveCoding.Debugger: withDebuggerC :: forall (m :: Type -> Type) a b. Monad m => Cell m a b -> Debugger m -> Cell m a b
- LiveCoding.Exceptions: (>>>=) :: (Data e1, Monad m) => Cell (ExceptT e1 m) a b -> Cell (ExceptT e2 m) (e1, a) b -> Cell (ExceptT e2 m) a b
+ LiveCoding.Exceptions: (>>>=) :: forall e1 (m :: Type -> Type) a b e2. (Data e1, Monad m) => Cell (ExceptT e1 m) a b -> Cell (ExceptT e2 m) (e1, a) b -> Cell (ExceptT e2 m) a b
- LiveCoding.Exceptions: (>>>==) :: (Data e1, Monad m) => Cell (ExceptT e1 m) a b -> Cell (ReaderT e1 (ExceptT e2 m)) a b -> Cell (ExceptT e2 m) a b
+ LiveCoding.Exceptions: (>>>==) :: forall e1 (m :: Type -> Type) a b e2. (Data e1, Monad m) => Cell (ExceptT e1 m) a b -> Cell (ReaderT e1 (ExceptT e2 m)) a b -> Cell (ExceptT e2 m) a b
- LiveCoding.Exceptions: exceptC :: Monad m => Cell (ExceptT e m) (Either e a) a
+ LiveCoding.Exceptions: exceptC :: forall (m :: Type -> Type) e a. Monad m => Cell (ExceptT e m) (Either e a) a
- LiveCoding.Exceptions: runExceptC :: (Data e, Monad m) => Cell (ExceptT e m) a b -> Cell m a (Either e b)
+ LiveCoding.Exceptions: runExceptC :: forall e (m :: Type -> Type) a b. (Data e, Monad m) => Cell (ExceptT e m) a b -> Cell m a (Either e b)
- LiveCoding.Exceptions: throwC :: Monad m => Cell (ExceptT e m) e arbitrary
+ LiveCoding.Exceptions: throwC :: forall (m :: Type -> Type) e arbitrary. Monad m => Cell (ExceptT e m) e arbitrary
- LiveCoding.Exceptions: throwIf :: Monad m => (a -> Bool) -> e -> Cell (ExceptT e m) a a
+ LiveCoding.Exceptions: throwIf :: forall (m :: Type -> Type) a e. Monad m => (a -> Bool) -> e -> Cell (ExceptT e m) a a
- LiveCoding.Exceptions: throwIf_ :: Monad m => (a -> Bool) -> Cell (ExceptT () m) a a
+ LiveCoding.Exceptions: throwIf_ :: forall (m :: Type -> Type) a. Monad m => (a -> Bool) -> Cell (ExceptT () m) a a
- LiveCoding.Exceptions: wait :: Monad m => Double -> Cell (ExceptT () m) a a
+ LiveCoding.Exceptions: wait :: forall (m :: Type -> Type) a. Monad m => Double -> Cell (ExceptT () m) a a
- LiveCoding.Exceptions.Finite: class GFinite f
+ LiveCoding.Exceptions.Finite: class GFinite (f :: Type -> Type)
- LiveCoding.Exceptions.Finite: commute :: (Finite e, Generic e, GFinite (Rep e), Monad m) => (e -> Cell m a b) -> Cell (ReaderT e m) a b
+ LiveCoding.Exceptions.Finite: commute :: forall (m :: Type -> Type) a b. (Finite e, Monad m) => (e -> Cell m a b) -> Cell (ReaderT e m) a b
- LiveCoding.Exceptions.Finite: gcommute :: (GFinite f, Monad m) => (f e -> Cell m a b) -> Cell (ReaderT (f e) m) a b
+ LiveCoding.Exceptions.Finite: gcommute :: forall (m :: Type -> Type) e a b. (GFinite f, Monad m) => (f e -> Cell m a b) -> Cell (ReaderT (f e) m) a b
- LiveCoding.External: concurrently :: (MonadIO m, Monoid eOut) => ExternalCell m eIn eOut a b -> IO (Cell m a b, ExternalLoop eIn eOut)
+ LiveCoding.External: concurrently :: forall (m :: Type -> Type) eOut eIn a b. (MonadIO m, Monoid eOut) => ExternalCell m eIn eOut a b -> IO (Cell m a b, ExternalLoop eIn eOut)
- LiveCoding.External: type CellHandle a b = MVar (Cell IO a b)
+ LiveCoding.External: type CellHandle a b = MVar Cell IO a b
- LiveCoding.External: type ExternalCell m eIn eOut a b = Cell (ReaderT eIn (WriterT eOut m)) a b
+ LiveCoding.External: type ExternalCell (m :: Type -> Type) eIn eOut a b = Cell ReaderT eIn WriterT eOut m a b
- LiveCoding.Forever: foreverC :: (Data e, Monad m) => Cell (ExceptT e m) a b -> Cell m a b
+ LiveCoding.Forever: foreverC :: forall e (m :: Type -> Type) a b. (Data e, Monad m) => Cell (ExceptT e m) a b -> Cell m a b
- LiveCoding.Forever: foreverE :: (Monad m, Data e) => e -> Cell (ReaderT e (ExceptT e m)) a b -> Cell m a b
+ LiveCoding.Forever: foreverE :: forall (m :: Type -> Type) e a b. (Monad m, Data e) => e -> Cell (ReaderT e (ExceptT e m)) a b -> Cell m a b
- LiveCoding.Forever: sinesForever :: MonadFix m => Cell m () String
+ LiveCoding.Forever: sinesForever :: forall (m :: Type -> Type). MonadFix m => Cell m () String
- LiveCoding.Forever: sinesForever' :: MonadFix m => CellExcept () String m Void
+ LiveCoding.Forever: sinesForever' :: forall (m :: Type -> Type). MonadFix m => CellExcept () String m Void
- LiveCoding.Forever: sinesWaitAndTry :: MonadFix m => CellExcept () String m ()
+ LiveCoding.Forever: sinesWaitAndTry :: forall (m :: Type -> Type). MonadFix m => CellExcept () String m ()
- LiveCoding.GHCi: launchAndSave :: Launchable m => LiveProgram m -> IO ()
+ LiveCoding.GHCi: launchAndSave :: forall (m :: Type -> Type). Launchable m => LiveProgram m -> IO ()
- LiveCoding.GHCi: possiblyLaunchedProgram :: Launchable m => Proxy m -> IO (Either SomeException (LaunchedProgram m))
+ LiveCoding.GHCi: possiblyLaunchedProgram :: forall (m :: Type -> Type). Launchable m => Proxy m -> IO (Either SomeException (LaunchedProgram m))
- LiveCoding.GHCi: proxyFromLiveProgram :: LiveProgram m -> Proxy m
+ LiveCoding.GHCi: proxyFromLiveProgram :: forall (m :: Type -> Type). LiveProgram m -> Proxy m
- LiveCoding.GHCi: save :: Launchable m => LaunchedProgram m -> IO ()
+ LiveCoding.GHCi: save :: forall (m :: Type -> Type). Launchable m => LaunchedProgram m -> IO ()
- LiveCoding.GHCi: stopStored :: Launchable m => Proxy m -> IO ()
+ LiveCoding.GHCi: stopStored :: forall (m :: Type -> Type). Launchable m => Proxy m -> IO ()
- LiveCoding.GHCi: sync :: Launchable m => LiveProgram m -> IO ()
+ LiveCoding.GHCi: sync :: forall (m :: Type -> Type). Launchable m => LiveProgram m -> IO ()
- LiveCoding.Handle: Handle :: m h -> (h -> m ()) -> Handle m h
+ LiveCoding.Handle: Handle :: m h -> (h -> m ()) -> Handle (m :: Type -> Type) h
- LiveCoding.Handle: ParametrisedHandle :: (p -> m h) -> (p -> p -> h -> m h) -> (p -> h -> m ()) -> ParametrisedHandle p m h
+ LiveCoding.Handle: ParametrisedHandle :: (p -> m h) -> (p -> p -> h -> m h) -> (p -> h -> m ()) -> ParametrisedHandle p (m :: Type -> Type) h
- LiveCoding.Handle: [changeParametrised] :: ParametrisedHandle p m h -> p -> p -> h -> m h
+ LiveCoding.Handle: [changeParametrised] :: ParametrisedHandle p (m :: Type -> Type) h -> p -> p -> h -> m h
- LiveCoding.Handle: [createParametrised] :: ParametrisedHandle p m h -> p -> m h
+ LiveCoding.Handle: [createParametrised] :: ParametrisedHandle p (m :: Type -> Type) h -> p -> m h
- LiveCoding.Handle: [create] :: Handle m h -> m h
+ LiveCoding.Handle: [create] :: Handle (m :: Type -> Type) h -> m h
- LiveCoding.Handle: [destroyParametrised] :: ParametrisedHandle p m h -> p -> h -> m ()
+ LiveCoding.Handle: [destroyParametrised] :: ParametrisedHandle p (m :: Type -> Type) h -> p -> h -> m ()
- LiveCoding.Handle: [destroy] :: Handle m h -> h -> m ()
+ LiveCoding.Handle: [destroy] :: Handle (m :: Type -> Type) h -> h -> m ()
- LiveCoding.Handle: combineHandles :: Applicative m => Handle m h1 -> Handle m h2 -> Handle m (h1, h2)
+ LiveCoding.Handle: combineHandles :: forall (m :: Type -> Type) h1 h2. Applicative m => Handle m h1 -> Handle m h2 -> Handle m (h1, h2)
- LiveCoding.Handle: combineParametrisedHandles :: Applicative m => ParametrisedHandle p1 m h1 -> ParametrisedHandle p2 m h2 -> ParametrisedHandle (p1, p2) m (h1, h2)
+ LiveCoding.Handle: combineParametrisedHandles :: forall (m :: Type -> Type) p1 h1 p2 h2. Applicative m => ParametrisedHandle p1 m h1 -> ParametrisedHandle p2 m h2 -> ParametrisedHandle (p1, p2) m (h1, h2)
- LiveCoding.Handle: data Handle m h
+ LiveCoding.Handle: data Handle (m :: Type -> Type) h
- LiveCoding.Handle: data ParametrisedHandle p m h
+ LiveCoding.Handle: data ParametrisedHandle p (m :: Type -> Type) h
- LiveCoding.Handle: handling :: (Typeable h, Monad m) => Handle m h -> Cell (HandlingStateT m) arbitrary h
+ LiveCoding.Handle: handling :: forall h (m :: Type -> Type) arbitrary. (Typeable h, Monad m) => Handle m h -> Cell (HandlingStateT m) arbitrary h
- LiveCoding.Handle: handlingParametrised :: (Typeable h, Typeable p, Monad m, Eq p) => ParametrisedHandle p m h -> Cell (HandlingStateT m) p h
+ LiveCoding.Handle: handlingParametrised :: forall h p (m :: Type -> Type). (Typeable h, Typeable p, Monad m, Eq p) => ParametrisedHandle p m h -> Cell (HandlingStateT m) p h
- LiveCoding.Handle: toParametrised :: Monad m => Handle m h -> ParametrisedHandle () m h
+ LiveCoding.Handle: toParametrised :: forall (m :: Type -> Type) h. Monad m => Handle m h -> ParametrisedHandle () m h
- LiveCoding.HandlingState: Destructor :: Bool -> m () -> Destructor m
+ LiveCoding.HandlingState: Destructor :: Bool -> m () -> Destructor (m :: Type -> Type)
- LiveCoding.HandlingState: HandlingState :: Key -> Destructors m -> HandlingState m
+ LiveCoding.HandlingState: HandlingState :: Key -> Destructors m -> HandlingState (m :: Type -> Type)
- LiveCoding.HandlingState: [action] :: Destructor m -> m ()
+ LiveCoding.HandlingState: [action] :: Destructor (m :: Type -> Type) -> m ()
- LiveCoding.HandlingState: [destructors] :: HandlingState m -> Destructors m
+ LiveCoding.HandlingState: [destructors] :: HandlingState (m :: Type -> Type) -> Destructors m
- LiveCoding.HandlingState: [isRegistered] :: Destructor m -> Bool
+ LiveCoding.HandlingState: [isRegistered] :: Destructor (m :: Type -> Type) -> Bool
- LiveCoding.HandlingState: [nHandles] :: HandlingState m -> Key
+ LiveCoding.HandlingState: [nHandles] :: HandlingState (m :: Type -> Type) -> Key
- LiveCoding.HandlingState: data Destructor m
+ LiveCoding.HandlingState: data Destructor (m :: Type -> Type)
- LiveCoding.HandlingState: data HandlingState m
+ LiveCoding.HandlingState: data HandlingState (m :: Type -> Type)
- LiveCoding.HandlingState: destroyUnregistered :: Monad m => HandlingStateT m ()
+ LiveCoding.HandlingState: destroyUnregistered :: forall (m :: Type -> Type). Monad m => HandlingStateT m ()
- LiveCoding.HandlingState: garbageCollected :: Monad m => HandlingStateT m a -> HandlingStateT m a
+ LiveCoding.HandlingState: garbageCollected :: forall (m :: Type -> Type) a. Monad m => HandlingStateT m a -> HandlingStateT m a
- LiveCoding.HandlingState: initHandlingState :: HandlingState m
+ LiveCoding.HandlingState: initHandlingState :: forall (m :: Type -> Type). HandlingState m
- LiveCoding.HandlingState: runHandlingState :: (Monad m, Typeable m) => LiveProgram (HandlingStateT m) -> LiveProgram m
+ LiveCoding.HandlingState: runHandlingState :: forall (m :: Type -> Type). (Monad m, Typeable m) => LiveProgram (HandlingStateT m) -> LiveProgram m
- LiveCoding.HandlingState: runHandlingStateC :: forall m a b. (Monad m, Typeable m) => Cell (HandlingStateT m) a b -> Cell m a b
+ LiveCoding.HandlingState: runHandlingStateC :: forall (m :: Type -> Type) a b. (Monad m, Typeable m) => Cell (HandlingStateT m) a b -> Cell m a b
- LiveCoding.HandlingState: type Destructors m = IntMap (Destructor m)
+ LiveCoding.HandlingState: type Destructors (m :: Type -> Type) = IntMap Destructor m
- LiveCoding.HandlingState: type HandlingStateT m = StateT (HandlingState m) m
+ LiveCoding.HandlingState: type HandlingStateT (m :: Type -> Type) = StateT HandlingState m m
- LiveCoding.HandlingState: unregisterAll :: Monad m => HandlingStateT m ()
+ LiveCoding.HandlingState: unregisterAll :: forall (m :: Type -> Type). Monad m => HandlingStateT m ()
- LiveCoding.LiveProgram: LiveProgram :: s -> (s -> m s) -> LiveProgram m
+ LiveCoding.LiveProgram: LiveProgram :: s -> (s -> m s) -> LiveProgram (m :: Type -> Type)
- LiveCoding.LiveProgram: [liveState] :: LiveProgram m -> s
+ LiveCoding.LiveProgram: [liveState] :: LiveProgram (m :: Type -> Type) -> s
- LiveCoding.LiveProgram: [liveStep] :: LiveProgram m -> s -> m s
+ LiveCoding.LiveProgram: [liveStep] :: LiveProgram (m :: Type -> Type) -> s -> m s
- LiveCoding.LiveProgram: data LiveProgram m
+ LiveCoding.LiveProgram: data LiveProgram (m :: Type -> Type)
- LiveCoding.LiveProgram: hoistLiveProgram :: (forall a. m1 a -> m2 a) -> LiveProgram m1 -> LiveProgram m2
+ LiveCoding.LiveProgram: hoistLiveProgram :: (forall a. () => m1 a -> m2 a) -> LiveProgram m1 -> LiveProgram m2
- LiveCoding.LiveProgram.Except: LiveProgramExcept :: CellExcept () () m e -> LiveProgramExcept m e
+ LiveCoding.LiveProgram.Except: LiveProgramExcept :: CellExcept () () m e -> LiveProgramExcept (m :: Type -> Type) e
- LiveCoding.LiveProgram.Except: [unLiveProgramExcept] :: LiveProgramExcept m e -> CellExcept () () m e
+ LiveCoding.LiveProgram.Except: [unLiveProgramExcept] :: LiveProgramExcept (m :: Type -> Type) e -> CellExcept () () m e
- LiveCoding.LiveProgram.Except: foreverCLiveProgram :: (Data e, Monad m) => LiveProgramExcept m e -> LiveProgram m
+ LiveCoding.LiveProgram.Except: foreverCLiveProgram :: forall e (m :: Type -> Type). (Data e, Monad m) => LiveProgramExcept m e -> LiveProgram m
- LiveCoding.LiveProgram.Except: foreverELiveProgram :: (Data e, Monad m) => e -> LiveProgramExcept (ReaderT e m) e -> LiveProgram m
+ LiveCoding.LiveProgram.Except: foreverELiveProgram :: forall e (m :: Type -> Type). (Data e, Monad m) => e -> LiveProgramExcept (ReaderT e m) e -> LiveProgram m
- LiveCoding.LiveProgram.Except: newtype LiveProgramExcept m e
+ LiveCoding.LiveProgram.Except: newtype LiveProgramExcept (m :: Type -> Type) e
- LiveCoding.LiveProgram.Except: runLiveProgramExcept :: Monad m => LiveProgramExcept m e -> LiveProgram (ExceptT e m)
+ LiveCoding.LiveProgram.Except: runLiveProgramExcept :: forall (m :: Type -> Type) e. Monad m => LiveProgramExcept m e -> LiveProgram (ExceptT e m)
- LiveCoding.LiveProgram.Except: safe :: Monad m => LiveProgram m -> LiveProgramExcept m Void
+ LiveCoding.LiveProgram.Except: safe :: forall (m :: Type -> Type). Monad m => LiveProgram m -> LiveProgramExcept m Void
- LiveCoding.LiveProgram.Except: safely :: Monad m => LiveProgramExcept m Void -> LiveProgram m
+ LiveCoding.LiveProgram.Except: safely :: forall (m :: Type -> Type). Monad m => LiveProgramExcept m Void -> LiveProgram m
- LiveCoding.LiveProgram.Except: try :: (Data e, Finite e, Functor m) => LiveProgram (ExceptT e m) -> LiveProgramExcept m e
+ LiveCoding.LiveProgram.Except: try :: forall e (m :: Type -> Type). (Data e, Finite e, Functor m) => LiveProgram (ExceptT e m) -> LiveProgramExcept m e
- LiveCoding.LiveProgram.HotCodeSwap: hotCodeSwap :: LiveProgram m -> LiveProgram m -> LiveProgram m
+ LiveCoding.LiveProgram.HotCodeSwap: hotCodeSwap :: forall (m :: Type -> Type). LiveProgram m -> LiveProgram m -> LiveProgram m
- LiveCoding.LiveProgram.Monad.Trans: runStateL :: (Data stateT, Monad m) => LiveProgram (StateT stateT m) -> stateT -> LiveProgram m
+ LiveCoding.LiveProgram.Monad.Trans: runStateL :: forall stateT (m :: Type -> Type). (Data stateT, Monad m) => LiveProgram (StateT stateT m) -> stateT -> LiveProgram m
- LiveCoding.Migrate: GR :: GenericR m -> GenericR' m
+ LiveCoding.Migrate: GR :: GenericR m -> GenericR' (m :: Type -> Type)
- LiveCoding.Migrate: [unGR] :: GenericR' m -> GenericR m
+ LiveCoding.Migrate: [unGR] :: GenericR' (m :: Type -> Type) -> GenericR m
- LiveCoding.Migrate: newtype GenericR' m
+ LiveCoding.Migrate: newtype GenericR' (m :: Type -> Type)
- LiveCoding.Migrate.NoMigration: changes :: (Typeable a, Eq a, Monad m) => Cell m a (Maybe a)
+ LiveCoding.Migrate.NoMigration: changes :: forall a (m :: Type -> Type). (Typeable a, Eq a, Monad m) => Cell m a (Maybe a)
- LiveCoding.Migrate.NoMigration: delay :: (Monad m, Typeable a) => a -> Cell m a a
+ LiveCoding.Migrate.NoMigration: delay :: forall (m :: Type -> Type) a. (Monad m, Typeable a) => a -> Cell m a a
- LiveCoding.RuntimeIO.Launch: LaunchedProgram :: MVar (LiveProgram IO) -> ThreadId -> LaunchedProgram (m :: * -> *)
+ LiveCoding.RuntimeIO.Launch: LaunchedProgram :: MVar (LiveProgram IO) -> ThreadId -> LaunchedProgram (m :: Type -> Type)
- LiveCoding.RuntimeIO.Launch: [programVar] :: LaunchedProgram (m :: * -> *) -> MVar (LiveProgram IO)
+ LiveCoding.RuntimeIO.Launch: [programVar] :: LaunchedProgram (m :: Type -> Type) -> MVar (LiveProgram IO)
- LiveCoding.RuntimeIO.Launch: [threadId] :: LaunchedProgram (m :: * -> *) -> ThreadId
+ LiveCoding.RuntimeIO.Launch: [threadId] :: LaunchedProgram (m :: Type -> Type) -> ThreadId
- LiveCoding.RuntimeIO.Launch: class (Monad m) => Launchable m
+ LiveCoding.RuntimeIO.Launch: class Monad m => Launchable (m :: Type -> Type)
- LiveCoding.RuntimeIO.Launch: data LaunchedProgram (m :: * -> *)
+ LiveCoding.RuntimeIO.Launch: data LaunchedProgram (m :: Type -> Type)
- LiveCoding.RuntimeIO.Launch: launch :: Launchable m => LiveProgram m -> IO (LaunchedProgram m)
+ LiveCoding.RuntimeIO.Launch: launch :: forall (m :: Type -> Type). Launchable m => LiveProgram m -> IO (LaunchedProgram m)
- LiveCoding.RuntimeIO.Launch: launchWithDebugger :: (Monad m, Launchable m) => LiveProgram m -> Debugger m -> IO (LaunchedProgram m)
+ LiveCoding.RuntimeIO.Launch: launchWithDebugger :: forall (m :: Type -> Type). (Monad m, Launchable m) => LiveProgram m -> Debugger m -> IO (LaunchedProgram m)
- LiveCoding.RuntimeIO.Launch: liveMain :: Launchable m => LiveProgram m -> IO ()
+ LiveCoding.RuntimeIO.Launch: liveMain :: forall (m :: Type -> Type). Launchable m => LiveProgram m -> IO ()
- LiveCoding.RuntimeIO.Launch: stepLaunchedProgram :: (Monad m, Launchable m) => LaunchedProgram m -> IO ()
+ LiveCoding.RuntimeIO.Launch: stepLaunchedProgram :: forall (m :: Type -> Type). (Monad m, Launchable m) => LaunchedProgram m -> IO ()
- LiveCoding.RuntimeIO.Launch: stop :: Launchable m => LaunchedProgram m -> IO ()
+ LiveCoding.RuntimeIO.Launch: stop :: forall (m :: Type -> Type). Launchable m => LaunchedProgram m -> IO ()
- LiveCoding.RuntimeIO.Launch: update :: Launchable m => LaunchedProgram m -> LiveProgram m -> IO ()
+ LiveCoding.RuntimeIO.Launch: update :: forall (m :: Type -> Type). Launchable m => LaunchedProgram m -> LiveProgram m -> IO ()
Files
- CHANGELOG.md +4/−0
- essence-of-live-coding.cabal +27/−28
- src/LiveCoding/Cell/NonBlocking.hs +4/−4
- src/LiveCoding/Migrate.lhs +3/−1
- test/Cell.hs +4/−3
- test/Cell/Util.hs +14/−12
- test/Handle.hs +8/−4
- test/Handle/LiveProgram.hs +3/−1
- test/Main.hs +10/−5
- test/Migrate.hs +12/−6
- test/Util/LiveProgramMigration.hs +3/−2
CHANGELOG.md view
@@ -1,5 +1,9 @@ # Revision history for essence-of-live-coding +## 0.2.9++* Support GHC 9.12+ ## 0.2.8 * Support GHC 9.10
essence-of-live-coding.cabal view
@@ -1,5 +1,6 @@+cabal-version: 2.2 name: essence-of-live-coding-version: 0.2.8+version: 0.2.9 synopsis: General purpose live coding framework description: essence-of-live-coding is a general purpose and type safe live coding framework.@@ -13,7 +14,7 @@ and allows to develop live programs from reusable, modular components. There are also useful utilities for debugging and quickchecking. -license: BSD3+license: BSD-3-Clause license-file: LICENSE author: Manuel Bärenz maintainer: programming@manuelbaerenz.de@@ -21,16 +22,16 @@ category: FRP, Live coding build-type: Simple extra-source-files: CHANGELOG.md-cabal-version: >=1.10 tested-with:- GHC == 8.8.4- GHC == 8.10.7- GHC == 9.0.2- GHC == 9.2.8- GHC == 9.4.8- GHC == 9.6.5- GHC == 9.8.2- GHC == 9.10.1+ GHC == 8.8+ GHC == 8.10+ GHC == 9.0+ GHC == 9.2+ GHC == 9.4+ GHC == 9.6+ GHC == 9.8+ GHC == 9.10+ GHC == 9.12 source-repository head type: git@@ -39,10 +40,19 @@ source-repository this type: git location: https://github.com/turion/essence-of-live-coding.git- tag: v0.2.8+ tag: v0.2.9 +common opts+ build-depends:+ base >= 4.13 && < 4.22+ , transformers >= 0.5+ , containers >= 0.6+ , syb >= 0.7+ , vector-sized >= 1.2+ , selective >= 0.4 library+ import: opts exposed-modules: LiveCoding , LiveCoding.Bind@@ -91,21 +101,16 @@ other-extensions: DeriveDataTypeable build-depends:- base >= 4.13 && < 4.21- , transformers >= 0.5- , containers >= 0.6- , syb >= 0.7- , vector-sized >= 1.2- , foreign-store >= 0.2+ foreign-store >= 0.2 , time >= 1.9 , mmorph >= 1.1 , profunctors >= 5.2- , selective >= 0.4 hs-source-dirs: src default-language: Haskell2010 default-extensions: StrictData test-suite test+ import: opts type: exitcode-stdio-1.0 main-is: Main.hs other-modules:@@ -127,26 +132,20 @@ , Util.LiveProgramMigration hs-source-dirs: test build-depends:- base >= 4.13 && < 4.21- , syb >= 0.7- , transformers >= 0.5- , containers >= 0.6+ essence-of-live-coding , mtl >= 2.2- , essence-of-live-coding , test-framework >= 0.8 , test-framework-quickcheck2 >= 0.3 , QuickCheck >= 2.12- , selective >= 0.4 , test-framework-hunit >= 0.3 , HUnit >= 1.3- , vector-sized >= 1.2 default-language: Haskell2010 executable TestExceptions main-is: TestExceptions.hs hs-source-dirs: app build-depends:- base >= 4.13 && < 4.21+ base >= 4.13 && < 4.22 , essence-of-live-coding , transformers >= 0.5 default-language: Haskell2010@@ -155,7 +154,7 @@ main-is: TestNonBlocking.hs hs-source-dirs: app build-depends:- base >= 4.13 && < 4.21+ base >= 4.13 && < 4.22 , transformers >= 0.5 , essence-of-live-coding default-language: Haskell2010
src/LiveCoding/Cell/NonBlocking.hs view
@@ -54,10 +54,10 @@ noThreadRunning <- if abort then -- Abort the current computation if it is still running- do- maybeThreadId <- tryTakeMVar threadVar- mapM_ killThread maybeThreadId- return True+ do+ maybeThreadId <- tryTakeMVar threadVar+ mapM_ killThread maybeThreadId+ return True else -- No computation currently running isEmptyMVar threadVar when noThreadRunning $ do
src/LiveCoding/Migrate.lhs view
@@ -18,7 +18,7 @@ import Control.Monad.Trans.State -- syb-import Data.Generics.Aliases+import Data.Generics.Aliases (GenericT, GenericR, GenericT' (..)) import Data.Generics.Twins -- essence-of-live-coding@@ -133,6 +133,8 @@ getChildrenSetters :: Data a => Migration -> a -> [GenericT'] getChildrenSetters specific = gmapQ $ \child -> GT $ flip (runSafeMigration $ treeMigration specific) child +-- This exists in https://hackage-content.haskell.org/package/syb-0.7.3/docs/Data-Generics-Aliases.html#t:GenericR-39-+-- starting at version 0.7.3, migrate eventually newtype GenericR' m = GR { unGR :: GenericR m } getChildrenMaybe :: Data a => a -> [GenericR' Maybe]
test/Cell.hs view
@@ -33,9 +33,10 @@ [ testProperty "steps produces outputs" $ \(inputs :: [Int]) -> inputs === fst (runIdentity $ steps (id :: Cell Identity Int Int) inputs) , testProperty "sumC works as expected" $- forAll (vector 100) $ \(inputs :: [Int]) ->- sum (init inputs)- === last (fst (runIdentity $ steps (sumC :: Cell Identity Int Int) inputs))+ forAll (vector 100) $+ \(inputs :: [Int]) ->+ sum (init inputs)+ === last (fst (runIdentity $ steps (sumC :: Cell Identity Int Int) inputs)) , Cell.Util.test , Cell.Util.Traversable.testTraverse' , Cell.Monad.Trans.test
test/Cell/Util.hs view
@@ -116,7 +116,8 @@ -- Make sure each message arrived exactly once, in order return $ counterexample labelString $- catMaybes inputs === catMaybes outputs+ catMaybes inputs+ === catMaybes outputs .||. bufferNotEmpty , testProperty "delay a >>> changes >>> hold a = delay a" $ \(inputs :: [Int]) (startValue :: Int) ->@@ -173,17 +174,18 @@ , output2 = [4, 10, 10, 10] :: [Int] } , testProperty "resampleListPar works as expected" $- forAll (vector 100) $ \(inputs :: [(Int, Int)]) ->- let- inputs' = fmap pairToList inputs- pairToList :: (a, a) -> [a]- pairToList (x, y) = [x, y]- in- CellSimulation- { cell = resampleListPar (sumC :: Cell Identity Int Int)- , input = inputs'- , output = fmap sum . transpose <$> [[0 :: Int, 0]] : tail (inits (init inputs'))- }+ forAll (vector 100) $+ \(inputs :: [(Int, Int)]) ->+ let+ inputs' = fmap pairToList inputs+ pairToList :: (a, a) -> [a]+ pairToList (x, y) = [x, y]+ in+ CellSimulation+ { cell = resampleListPar (sumC :: Cell Identity Int Int)+ , input = inputs'+ , output = fmap sum . transpose <$> [[0 :: Int, 0]] : tail (inits (init inputs'))+ } , testProperty "resampleListPar grow" CellSimulation
test/Handle.hs view
@@ -70,7 +70,8 @@ cellWithActionParametrized action = flip runStateC 0 $ runHandlingStateC $- handlingParametrised testParametrisedHandle >>> arrM (<$ lift action)+ handlingParametrised testParametrisedHandle+ >>> arrM (<$ lift action) throwAfter2Steps :: (Monad m) => Cell (ExceptT () m) a Int throwAfter2Steps = arr (const 1) >>> sumC >>> throwIf_ (> 1)@@ -92,7 +93,8 @@ cellWithActionTypelevel action = flip runStateC 0 $ runHandlingStateC $- handling testTypelevelHandle >>> arrM (<$ lift action)+ handling testTypelevelHandle+ >>> arrM (<$ lift action) test = testGroup@@ -122,7 +124,8 @@ CellMigrationSimulation { cell1 = flip runStateC 22 $- constM (modify (+ 1)) >>> runHandlingStateC (handling testHandle)+ constM (modify (+ 1))+ >>> runHandlingStateC (handling testHandle) , cell2 = cellWithAction $ return () , input1 = replicate 3 () , input2 = replicate 3 ()@@ -152,7 +155,8 @@ , cell2 = flip runStateC 0 $ runHandlingStateC $- handling testUnitHandle >>> arr (const "")+ handling testUnitHandle+ >>> arr (const "") , input1 = replicate 3 () , input2 = replicate 3 () , output1 = ("Handle #0",) <$> replicate 3 0
test/Handle/LiveProgram.hs view
@@ -45,7 +45,9 @@ { liveProgram1 = runHandlingState $ liveCell $- handling testHandle >>> arrM (lift . tell . return) >>> constM inspectHandlingState+ handling testHandle+ >>> arrM (lift . tell . return)+ >>> constM inspectHandlingState , liveProgram2 = runHandlingState mempty , input1 = replicate 3 () , input2 = replicate 3 ()
test/Main.hs view
@@ -48,9 +48,11 @@ , testGroup "Product types" [ testProperty "Adds default field" $- Foo1.foo' === migrate Foo1.foo Foo2.foo+ Foo1.foo'+ === migrate Foo1.foo Foo2.foo , testProperty "Keeps only sensible field" $- Foo2.foo' === migrate Foo2.foo Foo1.foo+ Foo2.foo'+ === migrate Foo2.foo Foo1.foo ] , testGroup "Records"@@ -58,7 +60,8 @@ \barA barB barC barC2 barD -> Foo2.Bar {barC = barC2, ..} === migrate Foo2.Bar {barC = barC2, ..} Foo1.Bar {..} , testProperty "Migrates nested records" $- Foo2.baz' === migrate Foo2.baz Foo1.baz+ Foo2.baz'+ === migrate Foo2.baz Foo1.baz ] , testGroup "Constructors"@@ -69,12 +72,14 @@ , testProperty "Finds correct constructor if type doesn't change" $ \(x :: Int) -> migrate Nothing (Just x) === Just x , testProperty "Does not migrate for different types" $- migrate Foo1.same Foo2.similar === Foo1.same+ migrate Foo1.same Foo2.similar+ === Foo1.same ] , testGroup "User migration" [ testProperty "Can add migration from Int to Integer" $- Foo2.frob' === migrateWith (userMigration intToInteger) Foo2.frob Foo1.frob+ Foo2.frob'+ === migrateWith (userMigration intToInteger) Foo2.frob Foo1.frob ] , testGroup "Newtypes"
test/Migrate.hs view
@@ -40,20 +40,26 @@ [ testGroup "castMigration" [ testProperty "Migrates for same data type" $- runSafeMigration castMigration Foo1.same Foo1.same == Foo1.same+ runSafeMigration castMigration Foo1.same Foo1.same+ == Foo1.same , testProperty "Does not migrate for different data types" $- runSafeMigration castMigration Foo1.same Foo2.same == Foo1.same+ runSafeMigration castMigration Foo1.same Foo2.same+ == Foo1.same , testProperty "Migrates for same builtin type" $- runSafeMigration castMigration (23 :: Int) (42 :: Int) == 42+ runSafeMigration castMigration (23 :: Int) (42 :: Int)+ == 42 , testProperty "Does not migrate for different builtin types" $- runSafeMigration castMigration (23 :: Int) (42 :: Integer) == 23+ runSafeMigration castMigration (23 :: Int) (42 :: Integer)+ == 23 ] , testGroup "sameConstructorMigration" [ testProperty "Migrates when constructor names and arity match" $- runSafeMigration (sameConstructorMigration castMigration) Foo1.same Foo2.same == Foo1.same'+ runSafeMigration (sameConstructorMigration castMigration) Foo1.same Foo2.same+ == Foo1.same' , testProperty "Migrates for same data type" $- runSafeMigration (sameConstructorMigration castMigration) Foo1.same Foo1.same' == Foo1.same'+ runSafeMigration (sameConstructorMigration castMigration) Foo1.same Foo1.same'+ == Foo1.same' ] ] , Migrate.NoMigration.test
test/Util/LiveProgramMigration.hs view
@@ -7,12 +7,13 @@ import Control.Monad.Trans.RWS.Strict (RWS, runRWS) -- QuickCheck-import Test.QuickCheck -- essence-of-live-coding import LiveCoding+import Test.QuickCheck -data LiveProgramMigration a b = forall s.+data LiveProgramMigration a b+ = forall s. LiveProgramMigration { liveProgram1 :: LiveProgram (RWS a b s) , liveProgram2 :: LiveProgram (RWS a b s)