packages feed

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)))