synthesizer-core-0.3: src/Synthesizer/Causal/Cut.hs
{-# LANGUAGE NoImplicitPrelude #-}
module Synthesizer.Causal.Cut where
import qualified Synthesizer.Causal.Process as Causal
import Data.Maybe.HT (toMaybe, )
import Control.Monad.Trans.State (StateT(StateT), )
-- import qualified Prelude as P
import PreludeBase
import NumericPrelude
{-# INLINE take #-}
take :: Int -> Causal.T a a
take =
Causal.fromStateMaybe (\x ->
StateT (\i -> toMaybe (i>0) (x, pred i)))