module Csound.Typed.Opcode.TableControl (
ftfree, ftgen, ftgentmp, getftargs, sndload,
ftaudio, ftload, ftloadk, ftprint, ftsamplebank, ftsave, ftsavek, ftset, ftslice, ftslicei, ptablew, tablecopy, tablefilter, tablefilteri, tablegpw, tableicopy, tableigpw, tableimix, tablemix, tablera, tablew, tablewa, tablewkt, tabmorph, tabmorpha, tabmorphak, tabmorphi, tabplay, tabrec) where
import Control.Monad.Trans.Class
import Control.Monad
import Csound.Dynamic
import Csound.Typed
ftfree :: Tab -> D -> SE ()
ftfree :: Tab -> D -> SE ()
ftfree Tab
b1 D
b2 =
Dep () -> SE ()
forall a. Dep a -> SE a
SE (Dep () -> SE ()) -> Dep () -> SE ()
forall a b. (a -> b) -> a -> b
$ DepT GE (Dep ()) -> Dep ()
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (DepT GE (Dep ()) -> Dep ()) -> DepT GE (Dep ()) -> Dep ()
forall a b. (a -> b) -> a -> b
$ E -> E -> Dep ()
forall {m :: * -> *}. Monad m => E -> E -> DepT m ()
f (E -> E -> Dep ()) -> DepT GE E -> DepT GE (E -> Dep ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Tab -> GE E) -> Tab -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tab -> GE E
unTab) Tab
b1 DepT GE (E -> Dep ()) -> DepT GE E -> DepT GE (Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b2
where
f :: E -> E -> DepT m ()
f E
a1 E
a2 = Name -> Spec1 -> [E] -> DepT m ()
forall (m :: * -> *). Monad m => Name -> Spec1 -> [E] -> DepT m ()
opcsDep_ Name
"ftfree" [(Rate
Xr,[Rate
Ir,Rate
Ir])] [E
a1,E
a2]
ftgen :: Tab -> D -> D -> D -> D -> SE D
ftgen :: Tab -> D -> D -> D -> D -> SE D
ftgen Tab
b1 D
b2 D
b3 D
b4 D
b5 =
(E -> D) -> SE E -> SE D
forall a b. (a -> b) -> SE a -> SE b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap ( GE E -> D
D (GE E -> D) -> (E -> GE E) -> E -> D
forall b c a. (b -> c) -> (a -> b) -> a -> c
. E -> GE E
forall a. a -> GE a
forall (m :: * -> *) a. Monad m => a -> m a
return) (SE E -> SE D) -> SE E -> SE D
forall a b. (a -> b) -> a -> b
$ DepT GE E -> SE E
forall a. Dep a -> SE a
SE (DepT GE E -> SE E) -> DepT GE E -> SE E
forall a b. (a -> b) -> a -> b
$ DepT GE (DepT GE E) -> DepT GE E
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (DepT GE (DepT GE E) -> DepT GE E)
-> DepT GE (DepT GE E) -> DepT GE E
forall a b. (a -> b) -> a -> b
$ E -> E -> E -> E -> E -> DepT GE E
forall {m :: * -> *}. Monad m => E -> E -> E -> E -> E -> DepT m E
f (E -> E -> E -> E -> E -> DepT GE E)
-> DepT GE E -> DepT GE (E -> E -> E -> E -> DepT GE E)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Tab -> GE E) -> Tab -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tab -> GE E
unTab) Tab
b1 DepT GE (E -> E -> E -> E -> DepT GE E)
-> DepT GE E -> DepT GE (E -> E -> E -> DepT GE E)
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b2 DepT GE (E -> E -> E -> DepT GE E)
-> DepT GE E -> DepT GE (E -> E -> DepT GE E)
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b3 DepT GE (E -> E -> DepT GE E)
-> DepT GE E -> DepT GE (E -> DepT GE E)
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b4 DepT GE (E -> DepT GE E) -> DepT GE E -> DepT GE (DepT GE E)
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b5
where
f :: E -> E -> E -> E -> E -> DepT m E
f E
a1 E
a2 E
a3 E
a4 E
a5 = Name -> Spec1 -> [E] -> DepT m E
forall (m :: * -> *). Monad m => Name -> Spec1 -> [E] -> DepT m E
opcsDep Name
"ftgen" [(Rate
Ir,(Rate -> [Rate]
forall a. a -> [a]
repeat Rate
Ir)),(Rate
Ir,[Rate
Ir,Rate
Ir,Rate
Ir,Rate
Ir,Rate
Ir])] [E
a1,E
a2,E
a3,E
a4,E
a5]
ftgentmp :: D -> D -> D -> D -> D -> [D] -> SE Tab
ftgentmp :: D -> D -> D -> D -> D -> [D] -> SE Tab
ftgentmp D
b1 D
b2 D
b3 D
b4 D
b5 [D]
b6 =
(E -> Tab) -> SE E -> SE Tab
forall a b. (a -> b) -> SE a -> SE b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap ( GE E -> Tab
Tab (GE E -> Tab) -> (E -> GE E) -> E -> Tab
forall b c a. (b -> c) -> (a -> b) -> a -> c
. E -> GE E
forall a. a -> GE a
forall (m :: * -> *) a. Monad m => a -> m a
return) (SE E -> SE Tab) -> SE E -> SE Tab
forall a b. (a -> b) -> a -> b
$ DepT GE E -> SE E
forall a. Dep a -> SE a
SE (DepT GE E -> SE E) -> DepT GE E -> SE E
forall a b. (a -> b) -> a -> b
$ DepT GE (DepT GE E) -> DepT GE E
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (DepT GE (DepT GE E) -> DepT GE E)
-> DepT GE (DepT GE E) -> DepT GE E
forall a b. (a -> b) -> a -> b
$ E -> E -> E -> E -> E -> [E] -> DepT GE E
forall {m :: * -> *}.
Monad m =>
E -> E -> E -> E -> E -> [E] -> DepT m E
f (E -> E -> E -> E -> E -> [E] -> DepT GE E)
-> DepT GE E -> DepT GE (E -> E -> E -> E -> [E] -> DepT GE E)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b1 DepT GE (E -> E -> E -> E -> [E] -> DepT GE E)
-> DepT GE E -> DepT GE (E -> E -> E -> [E] -> DepT GE E)
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b2 DepT GE (E -> E -> E -> [E] -> DepT GE E)
-> DepT GE E -> DepT GE (E -> E -> [E] -> DepT GE E)
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b3 DepT GE (E -> E -> [E] -> DepT GE E)
-> DepT GE E -> DepT GE (E -> [E] -> DepT GE E)
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b4 DepT GE (E -> [E] -> DepT GE E)
-> DepT GE E -> DepT GE ([E] -> DepT GE E)
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b5 DepT GE ([E] -> DepT GE E) -> DepT GE [E] -> DepT GE (DepT GE E)
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (D -> DepT GE E) -> [D] -> DepT GE [E]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> [a] -> m [b]
mapM (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) [D]
b6
where
f :: E -> E -> E -> E -> E -> [E] -> DepT m E
f E
a1 E
a2 E
a3 E
a4 E
a5 [E]
a6 = Name -> Spec1 -> [E] -> DepT m E
forall (m :: * -> *). Monad m => Name -> Spec1 -> [E] -> DepT m E
opcsDep Name
"ftgentmp" [(Rate
Ir,(Rate -> [Rate]
forall a. a -> [a]
repeat Rate
Ir))] ([E
a1,E
a2,E
a3,E
a4,E
a5] [E] -> [E] -> [E]
forall a. [a] -> [a] -> [a]
++ [E]
a6)
getftargs :: D -> Sig -> Str
getftargs :: D -> Sig -> Str
getftargs D
b1 Sig
b2 =
GE E -> Str
Str (GE E -> Str) -> GE E -> Str
forall a b. (a -> b) -> a -> b
$ E -> E -> E
f (E -> E -> E) -> GE E -> GE (E -> E)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> D -> GE E
unD D
b1 GE (E -> E) -> GE E -> GE E
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Sig -> GE E
unSig Sig
b2
where
f :: E -> E -> E
f E
a1 E
a2 = Name -> Spec1 -> [E] -> E
opcs Name
"getftargs" [(Rate
Sr,[Rate
Ir,Rate
Kr])] [E
a1,E
a2]
sndload :: Str -> SE ()
sndload :: Str -> SE ()
sndload Str
b1 =
Dep () -> SE ()
forall a. Dep a -> SE a
SE (Dep () -> SE ()) -> Dep () -> SE ()
forall a b. (a -> b) -> a -> b
$ DepT GE (Dep ()) -> Dep ()
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (DepT GE (Dep ()) -> Dep ()) -> DepT GE (Dep ()) -> Dep ()
forall a b. (a -> b) -> a -> b
$ E -> Dep ()
forall {m :: * -> *}. Monad m => E -> DepT m ()
f (E -> Dep ()) -> DepT GE E -> DepT GE (Dep ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Str -> GE E) -> Str -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Str -> GE E
unStr) Str
b1
where
f :: E -> DepT m ()
f E
a1 = Name -> Spec1 -> [E] -> DepT m ()
forall (m :: * -> *). Monad m => Name -> Spec1 -> [E] -> DepT m ()
opcsDep_ Name
"sndload" [(Rate
Xr,[Rate
Sr,Rate
Ir,Rate
Ir,Rate
Ir,Rate
Ir,Rate
Ir,Rate
Ir,Rate
Ir,Rate
Ir,Rate
Ir])] [E
a1]
ftaudio :: Tab -> Str -> D -> Sig
ftaudio :: Tab -> Str -> D -> Sig
ftaudio Tab
b1 Str
b2 D
b3 =
GE E -> Sig
Sig (GE E -> Sig) -> GE E -> Sig
forall a b. (a -> b) -> a -> b
$ E -> E -> E -> E
f (E -> E -> E -> E) -> GE E -> GE (E -> E -> E)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Tab -> GE E
unTab Tab
b1 GE (E -> E -> E) -> GE E -> GE (E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Str -> GE E
unStr Str
b2 GE (E -> E) -> GE E -> GE E
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> D -> GE E
unD D
b3
where
f :: E -> E -> E -> E
f E
a1 E
a2 E
a3 = Name -> Spec1 -> [E] -> E
opcs Name
"ftaudio" [(Rate
Ir,[Rate
Ir,Rate
Sr,Rate
Ir,Rate
Ir,Rate
Ir]),(Rate
Kr,[Rate
Kr,Rate
Kr,Rate
Sr,Rate
Kr,Rate
Ir,Rate
Kr,Rate
Kr])] [E
a1,E
a2,E
a3]
ftload :: Str -> D -> Tab -> SE ()
ftload :: Str -> D -> Tab -> SE ()
ftload Str
b1 D
b2 Tab
b3 =
Dep () -> SE ()
forall a. Dep a -> SE a
SE (Dep () -> SE ()) -> Dep () -> SE ()
forall a b. (a -> b) -> a -> b
$ DepT GE (Dep ()) -> Dep ()
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (DepT GE (Dep ()) -> Dep ()) -> DepT GE (Dep ()) -> Dep ()
forall a b. (a -> b) -> a -> b
$ E -> E -> E -> Dep ()
forall {m :: * -> *}. Monad m => E -> E -> E -> DepT m ()
f (E -> E -> E -> Dep ()) -> DepT GE E -> DepT GE (E -> E -> Dep ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Str -> GE E) -> Str -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Str -> GE E
unStr) Str
b1 DepT GE (E -> E -> Dep ()) -> DepT GE E -> DepT GE (E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b2 DepT GE (E -> Dep ()) -> DepT GE E -> DepT GE (Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Tab -> GE E) -> Tab -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tab -> GE E
unTab) Tab
b3
where
f :: E -> E -> E -> DepT m ()
f E
a1 E
a2 E
a3 = Name -> Spec1 -> [E] -> DepT m ()
forall (m :: * -> *). Monad m => Name -> Spec1 -> [E] -> DepT m ()
opcsDep_ Name
"ftload" [(Rate
Xr,[Rate
Sr] [Rate] -> [Rate] -> [Rate]
forall a. [a] -> [a] -> [a]
++ (Rate -> [Rate]
forall a. a -> [a]
repeat Rate
Ir))] [E
a1,E
a2,E
a3]
ftloadk :: Str -> Sig -> D -> Tab -> SE ()
ftloadk :: Str -> Sig -> D -> Tab -> SE ()
ftloadk Str
b1 Sig
b2 D
b3 Tab
b4 =
Dep () -> SE ()
forall a. Dep a -> SE a
SE (Dep () -> SE ()) -> Dep () -> SE ()
forall a b. (a -> b) -> a -> b
$ DepT GE (Dep ()) -> Dep ()
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (DepT GE (Dep ()) -> Dep ()) -> DepT GE (Dep ()) -> Dep ()
forall a b. (a -> b) -> a -> b
$ E -> E -> E -> E -> Dep ()
forall {m :: * -> *}. Monad m => E -> E -> E -> E -> DepT m ()
f (E -> E -> E -> E -> Dep ())
-> DepT GE E -> DepT GE (E -> E -> E -> Dep ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Str -> GE E) -> Str -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Str -> GE E
unStr) Str
b1 DepT GE (E -> E -> E -> Dep ())
-> DepT GE E -> DepT GE (E -> E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b2 DepT GE (E -> E -> Dep ()) -> DepT GE E -> DepT GE (E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b3 DepT GE (E -> Dep ()) -> DepT GE E -> DepT GE (Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Tab -> GE E) -> Tab -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tab -> GE E
unTab) Tab
b4
where
f :: E -> E -> E -> E -> DepT m ()
f E
a1 E
a2 E
a3 E
a4 = Name -> Spec1 -> [E] -> DepT m ()
forall (m :: * -> *). Monad m => Name -> Spec1 -> [E] -> DepT m ()
opcsDep_ Name
"ftloadk" [(Rate
Xr,[Rate
Sr,Rate
Kr] [Rate] -> [Rate] -> [Rate]
forall a. [a] -> [a] -> [a]
++ (Rate -> [Rate]
forall a. a -> [a]
repeat Rate
Ir))] [E
a1,E
a2,E
a3,E
a4]
ftprint :: Tab -> SE ()
ftprint :: Tab -> SE ()
ftprint Tab
b1 =
Dep () -> SE ()
forall a. Dep a -> SE a
SE (Dep () -> SE ()) -> Dep () -> SE ()
forall a b. (a -> b) -> a -> b
$ DepT GE (Dep ()) -> Dep ()
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (DepT GE (Dep ()) -> Dep ()) -> DepT GE (Dep ()) -> Dep ()
forall a b. (a -> b) -> a -> b
$ E -> Dep ()
forall {m :: * -> *}. Monad m => E -> DepT m ()
f (E -> Dep ()) -> DepT GE E -> DepT GE (Dep ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Tab -> GE E) -> Tab -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tab -> GE E
unTab) Tab
b1
where
f :: E -> DepT m ()
f E
a1 = Name -> Spec1 -> [E] -> DepT m ()
forall (m :: * -> *). Monad m => Name -> Spec1 -> [E] -> DepT m ()
opcsDep_ Name
"ftprint" [(Rate
Xr,[Rate
Ir,Rate
Kr,Rate
Kr,Rate
Kr,Rate
Kr,Rate
Ir])] [E
a1]
ftsamplebank :: Str -> D -> D -> D -> D -> Sig
ftsamplebank :: Str -> D -> D -> D -> D -> Sig
ftsamplebank Str
b1 D
b2 D
b3 D
b4 D
b5 =
GE E -> Sig
Sig (GE E -> Sig) -> GE E -> Sig
forall a b. (a -> b) -> a -> b
$ E -> E -> E -> E -> E -> E
f (E -> E -> E -> E -> E -> E) -> GE E -> GE (E -> E -> E -> E -> E)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Str -> GE E
unStr Str
b1 GE (E -> E -> E -> E -> E) -> GE E -> GE (E -> E -> E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> D -> GE E
unD D
b2 GE (E -> E -> E -> E) -> GE E -> GE (E -> E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> D -> GE E
unD D
b3 GE (E -> E -> E) -> GE E -> GE (E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> D -> GE E
unD D
b4 GE (E -> E) -> GE E -> GE E
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> D -> GE E
unD D
b5
where
f :: E -> E -> E -> E -> E -> E
f E
a1 E
a2 E
a3 E
a4 E
a5 = Name -> Spec1 -> [E] -> E
opcs Name
"ftsamplebank" [(Rate
Ir,[Rate
Sr,Rate
Ir,Rate
Ir,Rate
Ir,Rate
Ir]),(Rate
Kr,[Rate
Sr,Rate
Kr,Rate
Kr,Rate
Kr,Rate
Kr,Rate
Kr])] [E
a1
,E
a2
,E
a3
,E
a4
,E
a5]
ftsave :: Str -> D -> Tab -> SE ()
ftsave :: Str -> D -> Tab -> SE ()
ftsave Str
b1 D
b2 Tab
b3 =
Dep () -> SE ()
forall a. Dep a -> SE a
SE (Dep () -> SE ()) -> Dep () -> SE ()
forall a b. (a -> b) -> a -> b
$ DepT GE (Dep ()) -> Dep ()
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (DepT GE (Dep ()) -> Dep ()) -> DepT GE (Dep ()) -> Dep ()
forall a b. (a -> b) -> a -> b
$ E -> E -> E -> Dep ()
forall {m :: * -> *}. Monad m => E -> E -> E -> DepT m ()
f (E -> E -> E -> Dep ()) -> DepT GE E -> DepT GE (E -> E -> Dep ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Str -> GE E) -> Str -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Str -> GE E
unStr) Str
b1 DepT GE (E -> E -> Dep ()) -> DepT GE E -> DepT GE (E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b2 DepT GE (E -> Dep ()) -> DepT GE E -> DepT GE (Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Tab -> GE E) -> Tab -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tab -> GE E
unTab) Tab
b3
where
f :: E -> E -> E -> DepT m ()
f E
a1 E
a2 E
a3 = Name -> Spec1 -> [E] -> DepT m ()
forall (m :: * -> *). Monad m => Name -> Spec1 -> [E] -> DepT m ()
opcsDep_ Name
"ftsave" [(Rate
Xr,[Rate
Sr] [Rate] -> [Rate] -> [Rate]
forall a. [a] -> [a] -> [a]
++ (Rate -> [Rate]
forall a. a -> [a]
repeat Rate
Ir))] [E
a1,E
a2,E
a3]
ftsavek :: Str -> Sig -> D -> Tab -> SE ()
ftsavek :: Str -> Sig -> D -> Tab -> SE ()
ftsavek Str
b1 Sig
b2 D
b3 Tab
b4 =
Dep () -> SE ()
forall a. Dep a -> SE a
SE (Dep () -> SE ()) -> Dep () -> SE ()
forall a b. (a -> b) -> a -> b
$ DepT GE (Dep ()) -> Dep ()
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (DepT GE (Dep ()) -> Dep ()) -> DepT GE (Dep ()) -> Dep ()
forall a b. (a -> b) -> a -> b
$ E -> E -> E -> E -> Dep ()
forall {m :: * -> *}. Monad m => E -> E -> E -> E -> DepT m ()
f (E -> E -> E -> E -> Dep ())
-> DepT GE E -> DepT GE (E -> E -> E -> Dep ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Str -> GE E) -> Str -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Str -> GE E
unStr) Str
b1 DepT GE (E -> E -> E -> Dep ())
-> DepT GE E -> DepT GE (E -> E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b2 DepT GE (E -> E -> Dep ()) -> DepT GE E -> DepT GE (E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b3 DepT GE (E -> Dep ()) -> DepT GE E -> DepT GE (Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Tab -> GE E) -> Tab -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tab -> GE E
unTab) Tab
b4
where
f :: E -> E -> E -> E -> DepT m ()
f E
a1 E
a2 E
a3 E
a4 = Name -> Spec1 -> [E] -> DepT m ()
forall (m :: * -> *). Monad m => Name -> Spec1 -> [E] -> DepT m ()
opcsDep_ Name
"ftsavek" [(Rate
Xr,[Rate
Sr,Rate
Kr] [Rate] -> [Rate] -> [Rate]
forall a. [a] -> [a] -> [a]
++ (Rate -> [Rate]
forall a. a -> [a]
repeat Rate
Ir))] [E
a1,E
a2,E
a3,E
a4]
ftset :: Sig -> Sig -> SE ()
ftset :: Sig -> Sig -> SE ()
ftset Sig
b1 Sig
b2 =
Dep () -> SE ()
forall a. Dep a -> SE a
SE (Dep () -> SE ()) -> Dep () -> SE ()
forall a b. (a -> b) -> a -> b
$ DepT GE (Dep ()) -> Dep ()
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (DepT GE (Dep ()) -> Dep ()) -> DepT GE (Dep ()) -> Dep ()
forall a b. (a -> b) -> a -> b
$ E -> E -> Dep ()
forall {m :: * -> *}. Monad m => E -> E -> DepT m ()
f (E -> E -> Dep ()) -> DepT GE E -> DepT GE (E -> Dep ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b1 DepT GE (E -> Dep ()) -> DepT GE E -> DepT GE (Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b2
where
f :: E -> E -> DepT m ()
f E
a1 E
a2 = Name -> Spec1 -> [E] -> DepT m ()
forall (m :: * -> *). Monad m => Name -> Spec1 -> [E] -> DepT m ()
opcsDep_ Name
"ftset" [(Rate
Xr,[Rate
Kr,Rate
Kr,Rate
Kr,Rate
Kr,Rate
Kr])] [E
a1,E
a2]
ftslice :: Tab -> Tab -> SE ()
ftslice :: Tab -> Tab -> SE ()
ftslice Tab
b1 Tab
b2 =
Dep () -> SE ()
forall a. Dep a -> SE a
SE (Dep () -> SE ()) -> Dep () -> SE ()
forall a b. (a -> b) -> a -> b
$ DepT GE (Dep ()) -> Dep ()
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (DepT GE (Dep ()) -> Dep ()) -> DepT GE (Dep ()) -> Dep ()
forall a b. (a -> b) -> a -> b
$ E -> E -> Dep ()
forall {m :: * -> *}. Monad m => E -> E -> DepT m ()
f (E -> E -> Dep ()) -> DepT GE E -> DepT GE (E -> Dep ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Tab -> GE E) -> Tab -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tab -> GE E
unTab) Tab
b1 DepT GE (E -> Dep ()) -> DepT GE E -> DepT GE (Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Tab -> GE E) -> Tab -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tab -> GE E
unTab) Tab
b2
where
f :: E -> E -> DepT m ()
f E
a1 E
a2 = Name -> Spec1 -> [E] -> DepT m ()
forall (m :: * -> *). Monad m => Name -> Spec1 -> [E] -> DepT m ()
opcsDep_ Name
"ftslice" [(Rate
Xr,[Rate
Ir,Rate
Ir,Rate
Kr,Rate
Kr,Rate
Kr])] [E
a1,E
a2]
ftslicei :: Tab -> Tab -> SE ()
ftslicei :: Tab -> Tab -> SE ()
ftslicei Tab
b1 Tab
b2 =
Dep () -> SE ()
forall a. Dep a -> SE a
SE (Dep () -> SE ()) -> Dep () -> SE ()
forall a b. (a -> b) -> a -> b
$ DepT GE (Dep ()) -> Dep ()
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (DepT GE (Dep ()) -> Dep ()) -> DepT GE (Dep ()) -> Dep ()
forall a b. (a -> b) -> a -> b
$ E -> E -> Dep ()
forall {m :: * -> *}. Monad m => E -> E -> DepT m ()
f (E -> E -> Dep ()) -> DepT GE E -> DepT GE (E -> Dep ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Tab -> GE E) -> Tab -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tab -> GE E
unTab) Tab
b1 DepT GE (E -> Dep ()) -> DepT GE E -> DepT GE (Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Tab -> GE E) -> Tab -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tab -> GE E
unTab) Tab
b2
where
f :: E -> E -> DepT m ()
f E
a1 E
a2 = Name -> Spec1 -> [E] -> DepT m ()
forall (m :: * -> *). Monad m => Name -> Spec1 -> [E] -> DepT m ()
opcsDep_ Name
"ftslicei" [(Rate
Xr,[Rate
Ir,Rate
Ir,Rate
Ir,Rate
Ir,Rate
Ir])] [E
a1,E
a2]
ptablew :: Sig -> Sig -> Tab -> SE ()
ptablew :: Sig -> Sig -> Tab -> SE ()
ptablew Sig
b1 Sig
b2 Tab
b3 =
Dep () -> SE ()
forall a. Dep a -> SE a
SE (Dep () -> SE ()) -> Dep () -> SE ()
forall a b. (a -> b) -> a -> b
$ DepT GE (Dep ()) -> Dep ()
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (DepT GE (Dep ()) -> Dep ()) -> DepT GE (Dep ()) -> Dep ()
forall a b. (a -> b) -> a -> b
$ E -> E -> E -> Dep ()
forall {m :: * -> *}. Monad m => E -> E -> E -> DepT m ()
f (E -> E -> E -> Dep ()) -> DepT GE E -> DepT GE (E -> E -> Dep ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b1 DepT GE (E -> E -> Dep ()) -> DepT GE E -> DepT GE (E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b2 DepT GE (E -> Dep ()) -> DepT GE E -> DepT GE (Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Tab -> GE E) -> Tab -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tab -> GE E
unTab) Tab
b3
where
f :: E -> E -> E -> DepT m ()
f E
a1 E
a2 E
a3 = Name -> Spec1 -> [E] -> DepT m ()
forall (m :: * -> *). Monad m => Name -> Spec1 -> [E] -> DepT m ()
opcsDep_ Name
"ptablew" [(Rate
Xr,[Rate
Ar,Rate
Ar,Rate
Ir,Rate
Ir,Rate
Ir,Rate
Ir])] [E
a1,E
a2,E
a3]
tablecopy :: Sig -> Sig -> SE ()
tablecopy :: Sig -> Sig -> SE ()
tablecopy Sig
b1 Sig
b2 =
Dep () -> SE ()
forall a. Dep a -> SE a
SE (Dep () -> SE ()) -> Dep () -> SE ()
forall a b. (a -> b) -> a -> b
$ DepT GE (Dep ()) -> Dep ()
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (DepT GE (Dep ()) -> Dep ()) -> DepT GE (Dep ()) -> Dep ()
forall a b. (a -> b) -> a -> b
$ E -> E -> Dep ()
forall {m :: * -> *}. Monad m => E -> E -> DepT m ()
f (E -> E -> Dep ()) -> DepT GE E -> DepT GE (E -> Dep ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b1 DepT GE (E -> Dep ()) -> DepT GE E -> DepT GE (Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b2
where
f :: E -> E -> DepT m ()
f E
a1 E
a2 = Name -> Spec1 -> [E] -> DepT m ()
forall (m :: * -> *). Monad m => Name -> Spec1 -> [E] -> DepT m ()
opcsDep_ Name
"tablecopy" [(Rate
Xr,[Rate
Kr,Rate
Kr])] [E
a1,E
a2]
tablefilter :: Sig -> Sig -> Sig -> Sig -> Sig
tablefilter :: Sig -> Sig -> Sig -> Sig -> Sig
tablefilter Sig
b1 Sig
b2 Sig
b3 Sig
b4 =
GE E -> Sig
Sig (GE E -> Sig) -> GE E -> Sig
forall a b. (a -> b) -> a -> b
$ E -> E -> E -> E -> E
f (E -> E -> E -> E -> E) -> GE E -> GE (E -> E -> E -> E)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Sig -> GE E
unSig Sig
b1 GE (E -> E -> E -> E) -> GE E -> GE (E -> E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Sig -> GE E
unSig Sig
b2 GE (E -> E -> E) -> GE E -> GE (E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Sig -> GE E
unSig Sig
b3 GE (E -> E) -> GE E -> GE E
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Sig -> GE E
unSig Sig
b4
where
f :: E -> E -> E -> E -> E
f E
a1 E
a2 E
a3 E
a4 = Name -> Spec1 -> [E] -> E
opcs Name
"tablefilter" [(Rate
Kr,[Rate
Kr,Rate
Kr,Rate
Kr,Rate
Kr])] [E
a1,E
a2,E
a3,E
a4]
tablefilteri :: D -> D -> D -> D -> D
tablefilteri :: D -> D -> D -> D -> D
tablefilteri D
b1 D
b2 D
b3 D
b4 =
GE E -> D
D (GE E -> D) -> GE E -> D
forall a b. (a -> b) -> a -> b
$ E -> E -> E -> E -> E
f (E -> E -> E -> E -> E) -> GE E -> GE (E -> E -> E -> E)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> D -> GE E
unD D
b1 GE (E -> E -> E -> E) -> GE E -> GE (E -> E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> D -> GE E
unD D
b2 GE (E -> E -> E) -> GE E -> GE (E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> D -> GE E
unD D
b3 GE (E -> E) -> GE E -> GE E
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> D -> GE E
unD D
b4
where
f :: E -> E -> E -> E -> E
f E
a1 E
a2 E
a3 E
a4 = Name -> Spec1 -> [E] -> E
opcs Name
"tablefilteri" [(Rate
Ir,[Rate
Ir,Rate
Ir,Rate
Ir,Rate
Ir])] [E
a1,E
a2,E
a3,E
a4]
tablegpw :: Tab -> SE ()
tablegpw :: Tab -> SE ()
tablegpw Tab
b1 =
Dep () -> SE ()
forall a. Dep a -> SE a
SE (Dep () -> SE ()) -> Dep () -> SE ()
forall a b. (a -> b) -> a -> b
$ DepT GE (Dep ()) -> Dep ()
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (DepT GE (Dep ()) -> Dep ()) -> DepT GE (Dep ()) -> Dep ()
forall a b. (a -> b) -> a -> b
$ E -> Dep ()
forall {m :: * -> *}. Monad m => E -> DepT m ()
f (E -> Dep ()) -> DepT GE E -> DepT GE (Dep ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Tab -> GE E) -> Tab -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tab -> GE E
unTab) Tab
b1
where
f :: E -> DepT m ()
f E
a1 = Name -> Spec1 -> [E] -> DepT m ()
forall (m :: * -> *). Monad m => Name -> Spec1 -> [E] -> DepT m ()
opcsDep_ Name
"tablegpw" [(Rate
Xr,[Rate
Kr])] [E
a1]
tableicopy :: D -> D -> SE ()
tableicopy :: D -> D -> SE ()
tableicopy D
b1 D
b2 =
Dep () -> SE ()
forall a. Dep a -> SE a
SE (Dep () -> SE ()) -> Dep () -> SE ()
forall a b. (a -> b) -> a -> b
$ DepT GE (Dep ()) -> Dep ()
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (DepT GE (Dep ()) -> Dep ()) -> DepT GE (Dep ()) -> Dep ()
forall a b. (a -> b) -> a -> b
$ E -> E -> Dep ()
forall {m :: * -> *}. Monad m => E -> E -> DepT m ()
f (E -> E -> Dep ()) -> DepT GE E -> DepT GE (E -> Dep ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b1 DepT GE (E -> Dep ()) -> DepT GE E -> DepT GE (Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b2
where
f :: E -> E -> DepT m ()
f E
a1 E
a2 = Name -> Spec1 -> [E] -> DepT m ()
forall (m :: * -> *). Monad m => Name -> Spec1 -> [E] -> DepT m ()
opcsDep_ Name
"tableicopy" [(Rate
Xr,[Rate
Ir,Rate
Ir])] [E
a1,E
a2]
tableigpw :: Tab -> SE ()
tableigpw :: Tab -> SE ()
tableigpw Tab
b1 =
Dep () -> SE ()
forall a. Dep a -> SE a
SE (Dep () -> SE ()) -> Dep () -> SE ()
forall a b. (a -> b) -> a -> b
$ DepT GE (Dep ()) -> Dep ()
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (DepT GE (Dep ()) -> Dep ()) -> DepT GE (Dep ()) -> Dep ()
forall a b. (a -> b) -> a -> b
$ E -> Dep ()
forall {m :: * -> *}. Monad m => E -> DepT m ()
f (E -> Dep ()) -> DepT GE E -> DepT GE (Dep ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Tab -> GE E) -> Tab -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tab -> GE E
unTab) Tab
b1
where
f :: E -> DepT m ()
f E
a1 = Name -> Spec1 -> [E] -> DepT m ()
forall (m :: * -> *). Monad m => Name -> Spec1 -> [E] -> DepT m ()
opcsDep_ Name
"tableigpw" [(Rate
Xr,[Rate
Ir])] [E
a1]
tableimix :: D -> D -> D -> D -> D -> D -> D -> D -> D -> SE ()
tableimix :: D -> D -> D -> D -> D -> D -> D -> D -> D -> SE ()
tableimix D
b1 D
b2 D
b3 D
b4 D
b5 D
b6 D
b7 D
b8 D
b9 =
Dep () -> SE ()
forall a. Dep a -> SE a
SE (Dep () -> SE ()) -> Dep () -> SE ()
forall a b. (a -> b) -> a -> b
$ DepT GE (Dep ()) -> Dep ()
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (DepT GE (Dep ()) -> Dep ()) -> DepT GE (Dep ()) -> Dep ()
forall a b. (a -> b) -> a -> b
$ E -> E -> E -> E -> E -> E -> E -> E -> E -> Dep ()
forall {m :: * -> *}.
Monad m =>
E -> E -> E -> E -> E -> E -> E -> E -> E -> DepT m ()
f (E -> E -> E -> E -> E -> E -> E -> E -> E -> Dep ())
-> DepT GE E
-> DepT GE (E -> E -> E -> E -> E -> E -> E -> E -> Dep ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b1 DepT GE (E -> E -> E -> E -> E -> E -> E -> E -> Dep ())
-> DepT GE E -> DepT GE (E -> E -> E -> E -> E -> E -> E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b2 DepT GE (E -> E -> E -> E -> E -> E -> E -> Dep ())
-> DepT GE E -> DepT GE (E -> E -> E -> E -> E -> E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b3 DepT GE (E -> E -> E -> E -> E -> E -> Dep ())
-> DepT GE E -> DepT GE (E -> E -> E -> E -> E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b4 DepT GE (E -> E -> E -> E -> E -> Dep ())
-> DepT GE E -> DepT GE (E -> E -> E -> E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b5 DepT GE (E -> E -> E -> E -> Dep ())
-> DepT GE E -> DepT GE (E -> E -> E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b6 DepT GE (E -> E -> E -> Dep ())
-> DepT GE E -> DepT GE (E -> E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b7 DepT GE (E -> E -> Dep ()) -> DepT GE E -> DepT GE (E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b8 DepT GE (E -> Dep ()) -> DepT GE E -> DepT GE (Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (D -> GE E) -> D -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. D -> GE E
unD) D
b9
where
f :: E -> E -> E -> E -> E -> E -> E -> E -> E -> DepT m ()
f E
a1 E
a2 E
a3 E
a4 E
a5 E
a6 E
a7 E
a8 E
a9 = Name -> Spec1 -> [E] -> DepT m ()
forall (m :: * -> *). Monad m => Name -> Spec1 -> [E] -> DepT m ()
opcsDep_ Name
"tableimix" [(Rate
Xr,[Rate
Ir,Rate
Ir,Rate
Ir,Rate
Ir,Rate
Ir,Rate
Ir,Rate
Ir,Rate
Ir,Rate
Ir])] [E
a1
,E
a2
,E
a3
,E
a4
,E
a5
,E
a6
,E
a7
,E
a8
,E
a9]
tablemix :: Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> SE ()
tablemix :: Sig
-> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> Sig -> SE ()
tablemix Sig
b1 Sig
b2 Sig
b3 Sig
b4 Sig
b5 Sig
b6 Sig
b7 Sig
b8 Sig
b9 =
Dep () -> SE ()
forall a. Dep a -> SE a
SE (Dep () -> SE ()) -> Dep () -> SE ()
forall a b. (a -> b) -> a -> b
$ DepT GE (Dep ()) -> Dep ()
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (DepT GE (Dep ()) -> Dep ()) -> DepT GE (Dep ()) -> Dep ()
forall a b. (a -> b) -> a -> b
$ E -> E -> E -> E -> E -> E -> E -> E -> E -> Dep ()
forall {m :: * -> *}.
Monad m =>
E -> E -> E -> E -> E -> E -> E -> E -> E -> DepT m ()
f (E -> E -> E -> E -> E -> E -> E -> E -> E -> Dep ())
-> DepT GE E
-> DepT GE (E -> E -> E -> E -> E -> E -> E -> E -> Dep ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b1 DepT GE (E -> E -> E -> E -> E -> E -> E -> E -> Dep ())
-> DepT GE E -> DepT GE (E -> E -> E -> E -> E -> E -> E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b2 DepT GE (E -> E -> E -> E -> E -> E -> E -> Dep ())
-> DepT GE E -> DepT GE (E -> E -> E -> E -> E -> E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b3 DepT GE (E -> E -> E -> E -> E -> E -> Dep ())
-> DepT GE E -> DepT GE (E -> E -> E -> E -> E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b4 DepT GE (E -> E -> E -> E -> E -> Dep ())
-> DepT GE E -> DepT GE (E -> E -> E -> E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b5 DepT GE (E -> E -> E -> E -> Dep ())
-> DepT GE E -> DepT GE (E -> E -> E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b6 DepT GE (E -> E -> E -> Dep ())
-> DepT GE E -> DepT GE (E -> E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b7 DepT GE (E -> E -> Dep ()) -> DepT GE E -> DepT GE (E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b8 DepT GE (E -> Dep ()) -> DepT GE E -> DepT GE (Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b9
where
f :: E -> E -> E -> E -> E -> E -> E -> E -> E -> DepT m ()
f E
a1 E
a2 E
a3 E
a4 E
a5 E
a6 E
a7 E
a8 E
a9 = Name -> Spec1 -> [E] -> DepT m ()
forall (m :: * -> *). Monad m => Name -> Spec1 -> [E] -> DepT m ()
opcsDep_ Name
"tablemix" [(Rate
Xr,[Rate
Kr,Rate
Kr,Rate
Kr,Rate
Kr,Rate
Kr,Rate
Kr,Rate
Kr,Rate
Kr,Rate
Kr])] [E
a1
,E
a2
,E
a3
,E
a4
,E
a5
,E
a6
,E
a7
,E
a8
,E
a9]
tablera :: Tab -> Sig -> Sig -> Sig
tablera :: Tab -> Sig -> Sig -> Sig
tablera Tab
b1 Sig
b2 Sig
b3 =
GE E -> Sig
Sig (GE E -> Sig) -> GE E -> Sig
forall a b. (a -> b) -> a -> b
$ E -> E -> E -> E
f (E -> E -> E -> E) -> GE E -> GE (E -> E -> E)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Tab -> GE E
unTab Tab
b1 GE (E -> E -> E) -> GE E -> GE (E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Sig -> GE E
unSig Sig
b2 GE (E -> E) -> GE E -> GE E
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Sig -> GE E
unSig Sig
b3
where
f :: E -> E -> E -> E
f E
a1 E
a2 E
a3 = Name -> Spec1 -> [E] -> E
opcs Name
"tablera" [(Rate
Ar,[Rate
Kr,Rate
Kr,Rate
Kr])] [E
a1,E
a2,E
a3]
tablew :: Sig -> Sig -> Tab -> SE ()
tablew :: Sig -> Sig -> Tab -> SE ()
tablew Sig
b1 Sig
b2 Tab
b3 =
Dep () -> SE ()
forall a. Dep a -> SE a
SE (Dep () -> SE ()) -> Dep () -> SE ()
forall a b. (a -> b) -> a -> b
$ DepT GE (Dep ()) -> Dep ()
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (DepT GE (Dep ()) -> Dep ()) -> DepT GE (Dep ()) -> Dep ()
forall a b. (a -> b) -> a -> b
$ E -> E -> E -> Dep ()
forall {m :: * -> *}. Monad m => E -> E -> E -> DepT m ()
f (E -> E -> E -> Dep ()) -> DepT GE E -> DepT GE (E -> E -> Dep ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b1 DepT GE (E -> E -> Dep ()) -> DepT GE E -> DepT GE (E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b2 DepT GE (E -> Dep ()) -> DepT GE E -> DepT GE (Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Tab -> GE E) -> Tab -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tab -> GE E
unTab) Tab
b3
where
f :: E -> E -> E -> DepT m ()
f E
a1 E
a2 E
a3 = Name -> Spec1 -> [E] -> DepT m ()
forall (m :: * -> *). Monad m => Name -> Spec1 -> [E] -> DepT m ()
opcsDep_ Name
"tablew" [(Rate
Xr,[Rate
Ar,Rate
Ar,Rate
Ir,Rate
Ir,Rate
Ir,Rate
Ir])] [E
a1,E
a2,E
a3]
tablewa :: Tab -> Sig -> Sig -> Sig
tablewa :: Tab -> Sig -> Sig -> Sig
tablewa Tab
b1 Sig
b2 Sig
b3 =
GE E -> Sig
Sig (GE E -> Sig) -> GE E -> Sig
forall a b. (a -> b) -> a -> b
$ E -> E -> E -> E
f (E -> E -> E -> E) -> GE E -> GE (E -> E -> E)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Tab -> GE E
unTab Tab
b1 GE (E -> E -> E) -> GE E -> GE (E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Sig -> GE E
unSig Sig
b2 GE (E -> E) -> GE E -> GE E
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Sig -> GE E
unSig Sig
b3
where
f :: E -> E -> E -> E
f E
a1 E
a2 E
a3 = Name -> Spec1 -> [E] -> E
opcs Name
"tablewa" [(Rate
Kr,[Rate
Kr,Rate
Ar,Rate
Kr])] [E
a1,E
a2,E
a3]
tablewkt :: Sig -> Sig -> Tab -> SE ()
tablewkt :: Sig -> Sig -> Tab -> SE ()
tablewkt Sig
b1 Sig
b2 Tab
b3 =
Dep () -> SE ()
forall a. Dep a -> SE a
SE (Dep () -> SE ()) -> Dep () -> SE ()
forall a b. (a -> b) -> a -> b
$ DepT GE (Dep ()) -> Dep ()
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (DepT GE (Dep ()) -> Dep ()) -> DepT GE (Dep ()) -> Dep ()
forall a b. (a -> b) -> a -> b
$ E -> E -> E -> Dep ()
forall {m :: * -> *}. Monad m => E -> E -> E -> DepT m ()
f (E -> E -> E -> Dep ()) -> DepT GE E -> DepT GE (E -> E -> Dep ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b1 DepT GE (E -> E -> Dep ()) -> DepT GE E -> DepT GE (E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b2 DepT GE (E -> Dep ()) -> DepT GE E -> DepT GE (Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Tab -> GE E) -> Tab -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tab -> GE E
unTab) Tab
b3
where
f :: E -> E -> E -> DepT m ()
f E
a1 E
a2 E
a3 = Name -> Spec1 -> [E] -> DepT m ()
forall (m :: * -> *). Monad m => Name -> Spec1 -> [E] -> DepT m ()
opcsDep_ Name
"tablewkt" [(Rate
Xr,[Rate
Ar,Rate
Ar,Rate
Kr,Rate
Ir,Rate
Ir,Rate
Ir])] [E
a1,E
a2,E
a3]
tabmorph :: Sig -> Sig -> Sig -> Sig -> Tab -> Tab -> Sig
tabmorph :: Sig -> Sig -> Sig -> Sig -> Tab -> Tab -> Sig
tabmorph Sig
b1 Sig
b2 Sig
b3 Sig
b4 Tab
b5 Tab
b6 =
GE E -> Sig
Sig (GE E -> Sig) -> GE E -> Sig
forall a b. (a -> b) -> a -> b
$ E -> E -> E -> E -> E -> E -> E
f (E -> E -> E -> E -> E -> E -> E)
-> GE E -> GE (E -> E -> E -> E -> E -> E)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Sig -> GE E
unSig Sig
b1 GE (E -> E -> E -> E -> E -> E)
-> GE E -> GE (E -> E -> E -> E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Sig -> GE E
unSig Sig
b2 GE (E -> E -> E -> E -> E) -> GE E -> GE (E -> E -> E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Sig -> GE E
unSig Sig
b3 GE (E -> E -> E -> E) -> GE E -> GE (E -> E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Sig -> GE E
unSig Sig
b4 GE (E -> E -> E) -> GE E -> GE (E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Tab -> GE E
unTab Tab
b5 GE (E -> E) -> GE E -> GE E
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Tab -> GE E
unTab Tab
b6
where
f :: E -> E -> E -> E -> E -> E -> E
f E
a1 E
a2 E
a3 E
a4 E
a5 E
a6 = Name -> Spec1 -> [E] -> E
opcs Name
"tabmorph" [(Rate
Kr,[Rate
Kr,Rate
Kr,Rate
Kr,Rate
Kr] [Rate] -> [Rate] -> [Rate]
forall a. [a] -> [a] -> [a]
++ (Rate -> [Rate]
forall a. a -> [a]
repeat Rate
Ir))] [E
a1,E
a2,E
a3,E
a4,E
a5,E
a6]
tabmorpha :: Sig -> Sig -> Sig -> Sig -> Tab -> Tab -> Sig
tabmorpha :: Sig -> Sig -> Sig -> Sig -> Tab -> Tab -> Sig
tabmorpha Sig
b1 Sig
b2 Sig
b3 Sig
b4 Tab
b5 Tab
b6 =
GE E -> Sig
Sig (GE E -> Sig) -> GE E -> Sig
forall a b. (a -> b) -> a -> b
$ E -> E -> E -> E -> E -> E -> E
f (E -> E -> E -> E -> E -> E -> E)
-> GE E -> GE (E -> E -> E -> E -> E -> E)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Sig -> GE E
unSig Sig
b1 GE (E -> E -> E -> E -> E -> E)
-> GE E -> GE (E -> E -> E -> E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Sig -> GE E
unSig Sig
b2 GE (E -> E -> E -> E -> E) -> GE E -> GE (E -> E -> E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Sig -> GE E
unSig Sig
b3 GE (E -> E -> E -> E) -> GE E -> GE (E -> E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Sig -> GE E
unSig Sig
b4 GE (E -> E -> E) -> GE E -> GE (E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Tab -> GE E
unTab Tab
b5 GE (E -> E) -> GE E -> GE E
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Tab -> GE E
unTab Tab
b6
where
f :: E -> E -> E -> E -> E -> E -> E
f E
a1 E
a2 E
a3 E
a4 E
a5 E
a6 = Name -> Spec1 -> [E] -> E
opcs Name
"tabmorpha" [(Rate
Ar,[Rate
Ar,Rate
Ar,Rate
Ar,Rate
Ar] [Rate] -> [Rate] -> [Rate]
forall a. [a] -> [a] -> [a]
++ (Rate -> [Rate]
forall a. a -> [a]
repeat Rate
Ir))] [E
a1,E
a2,E
a3,E
a4,E
a5,E
a6]
tabmorphak :: Sig -> Sig -> Sig -> Sig -> Tab -> Tab -> Sig
tabmorphak :: Sig -> Sig -> Sig -> Sig -> Tab -> Tab -> Sig
tabmorphak Sig
b1 Sig
b2 Sig
b3 Sig
b4 Tab
b5 Tab
b6 =
GE E -> Sig
Sig (GE E -> Sig) -> GE E -> Sig
forall a b. (a -> b) -> a -> b
$ E -> E -> E -> E -> E -> E -> E
f (E -> E -> E -> E -> E -> E -> E)
-> GE E -> GE (E -> E -> E -> E -> E -> E)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Sig -> GE E
unSig Sig
b1 GE (E -> E -> E -> E -> E -> E)
-> GE E -> GE (E -> E -> E -> E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Sig -> GE E
unSig Sig
b2 GE (E -> E -> E -> E -> E) -> GE E -> GE (E -> E -> E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Sig -> GE E
unSig Sig
b3 GE (E -> E -> E -> E) -> GE E -> GE (E -> E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Sig -> GE E
unSig Sig
b4 GE (E -> E -> E) -> GE E -> GE (E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Tab -> GE E
unTab Tab
b5 GE (E -> E) -> GE E -> GE E
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Tab -> GE E
unTab Tab
b6
where
f :: E -> E -> E -> E -> E -> E -> E
f E
a1 E
a2 E
a3 E
a4 E
a5 E
a6 = Name -> Spec1 -> [E] -> E
opcs Name
"tabmorphak" [(Rate
Ar,[Rate
Ar,Rate
Kr,Rate
Kr,Rate
Kr] [Rate] -> [Rate] -> [Rate]
forall a. [a] -> [a] -> [a]
++ (Rate -> [Rate]
forall a. a -> [a]
repeat Rate
Ir))] [E
a1,E
a2,E
a3,E
a4,E
a5,E
a6]
tabmorphi :: Sig -> Sig -> Sig -> Sig -> Tab -> Tab -> Sig
tabmorphi :: Sig -> Sig -> Sig -> Sig -> Tab -> Tab -> Sig
tabmorphi Sig
b1 Sig
b2 Sig
b3 Sig
b4 Tab
b5 Tab
b6 =
GE E -> Sig
Sig (GE E -> Sig) -> GE E -> Sig
forall a b. (a -> b) -> a -> b
$ E -> E -> E -> E -> E -> E -> E
f (E -> E -> E -> E -> E -> E -> E)
-> GE E -> GE (E -> E -> E -> E -> E -> E)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Sig -> GE E
unSig Sig
b1 GE (E -> E -> E -> E -> E -> E)
-> GE E -> GE (E -> E -> E -> E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Sig -> GE E
unSig Sig
b2 GE (E -> E -> E -> E -> E) -> GE E -> GE (E -> E -> E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Sig -> GE E
unSig Sig
b3 GE (E -> E -> E -> E) -> GE E -> GE (E -> E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Sig -> GE E
unSig Sig
b4 GE (E -> E -> E) -> GE E -> GE (E -> E)
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Tab -> GE E
unTab Tab
b5 GE (E -> E) -> GE E -> GE E
forall a b. GE (a -> b) -> GE a -> GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Tab -> GE E
unTab Tab
b6
where
f :: E -> E -> E -> E -> E -> E -> E
f E
a1 E
a2 E
a3 E
a4 E
a5 E
a6 = Name -> Spec1 -> [E] -> E
opcs Name
"tabmorphi" [(Rate
Kr,[Rate
Kr,Rate
Kr,Rate
Kr,Rate
Kr] [Rate] -> [Rate] -> [Rate]
forall a. [a] -> [a] -> [a]
++ (Rate -> [Rate]
forall a. a -> [a]
repeat Rate
Ir))] [E
a1,E
a2,E
a3,E
a4,E
a5,E
a6]
tabplay :: Sig -> Sig -> Tab -> Sig -> SE ()
tabplay :: Sig -> Sig -> Tab -> Sig -> SE ()
tabplay Sig
b1 Sig
b2 Tab
b3 Sig
b4 =
Dep () -> SE ()
forall a. Dep a -> SE a
SE (Dep () -> SE ()) -> Dep () -> SE ()
forall a b. (a -> b) -> a -> b
$ DepT GE (Dep ()) -> Dep ()
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (DepT GE (Dep ()) -> Dep ()) -> DepT GE (Dep ()) -> Dep ()
forall a b. (a -> b) -> a -> b
$ E -> E -> E -> E -> Dep ()
forall {m :: * -> *}. Monad m => E -> E -> E -> E -> DepT m ()
f (E -> E -> E -> E -> Dep ())
-> DepT GE E -> DepT GE (E -> E -> E -> Dep ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b1 DepT GE (E -> E -> E -> Dep ())
-> DepT GE E -> DepT GE (E -> E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b2 DepT GE (E -> E -> Dep ()) -> DepT GE E -> DepT GE (E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Tab -> GE E) -> Tab -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tab -> GE E
unTab) Tab
b3 DepT GE (E -> Dep ()) -> DepT GE E -> DepT GE (Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b4
where
f :: E -> E -> E -> E -> DepT m ()
f E
a1 E
a2 E
a3 E
a4 = Name -> Spec1 -> [E] -> DepT m ()
forall (m :: * -> *). Monad m => Name -> Spec1 -> [E] -> DepT m ()
opcsDep_ Name
"tabplay" [(Rate
Xr,(Rate -> [Rate]
forall a. a -> [a]
repeat Rate
Kr))] [E
a1,E
a2,E
a3,E
a4]
tabrec :: Sig -> Sig -> Sig -> Tab -> Sig -> SE ()
tabrec :: Sig -> Sig -> Sig -> Tab -> Sig -> SE ()
tabrec Sig
b1 Sig
b2 Sig
b3 Tab
b4 Sig
b5 =
Dep () -> SE ()
forall a. Dep a -> SE a
SE (Dep () -> SE ()) -> Dep () -> SE ()
forall a b. (a -> b) -> a -> b
$ DepT GE (Dep ()) -> Dep ()
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (DepT GE (Dep ()) -> Dep ()) -> DepT GE (Dep ()) -> Dep ()
forall a b. (a -> b) -> a -> b
$ E -> E -> E -> E -> E -> Dep ()
forall {m :: * -> *}. Monad m => E -> E -> E -> E -> E -> DepT m ()
f (E -> E -> E -> E -> E -> Dep ())
-> DepT GE E -> DepT GE (E -> E -> E -> E -> Dep ())
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b1 DepT GE (E -> E -> E -> E -> Dep ())
-> DepT GE E -> DepT GE (E -> E -> E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b2 DepT GE (E -> E -> E -> Dep ())
-> DepT GE E -> DepT GE (E -> E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b3 DepT GE (E -> E -> Dep ()) -> DepT GE E -> DepT GE (E -> Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Tab -> GE E) -> Tab -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tab -> GE E
unTab) Tab
b4 DepT GE (E -> Dep ()) -> DepT GE E -> DepT GE (Dep ())
forall a b. DepT GE (a -> b) -> DepT GE a -> DepT GE b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (GE E -> DepT GE E
forall (m :: * -> *) a. Monad m => m a -> DepT m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (GE E -> DepT GE E) -> (Sig -> GE E) -> Sig -> DepT GE E
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sig -> GE E
unSig) Sig
b5
where
f :: E -> E -> E -> E -> E -> DepT m ()
f E
a1 E
a2 E
a3 E
a4 E
a5 = Name -> Spec1 -> [E] -> DepT m ()
forall (m :: * -> *). Monad m => Name -> Spec1 -> [E] -> DepT m ()
opcsDep_ Name
"tabrec" [(Rate
Xr,(Rate -> [Rate]
forall a. a -> [a]
repeat Rate
Kr))] [E
a1,E
a2,E
a3,E
a4,E
a5]