packages feed

csound-expression 0.2.0 → 0.3.0

raw patch · 17 files changed

+367/−2713 lines, 17 filesdep ~mtldep ~temporal-mediaPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: mtl, temporal-media

API changes (from Hackage documentation)

- CsoundExpr.Base.Imperative: instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7, Assign a8) => Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8)
- CsoundExpr.Base.Imperative: instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7, Assign a8, Assign a9) => Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)
- CsoundExpr.Base.Imperative: instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10) => Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
- CsoundExpr.Base.Imperative: instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10, Assign a11) => Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)
- CsoundExpr.Base.Imperative: instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10, Assign a11, Assign a12) => Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)
- CsoundExpr.Base.Imperative: instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10, Assign a11, Assign a12, Assign a13) => Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)
- CsoundExpr.Base.Imperative: instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10, Assign a11, Assign a12, Assign a13, Assign a14) => Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)
- CsoundExpr.Base.Imperative: instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10, Assign a11, Assign a12, Assign a13, Assign a14, Assign a15) => Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)
- CsoundExpr.Base.Imperative: instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10, Assign a11, Assign a12, Assign a13, Assign a14, Assign a15, Assign a16) => Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16)
- CsoundExpr.Base.Imperative: instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10, Assign a11, Assign a12, Assign a13, Assign a14, Assign a15, Assign a16, Assign a17) => Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)
- CsoundExpr.Base.Imperative: instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10, Assign a11, Assign a12, Assign a13, Assign a14, Assign a15, Assign a16, Assign a17, Assign a18) => Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18)
- CsoundExpr.Base.Imperative: instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10, Assign a11, Assign a12, Assign a13, Assign a14, Assign a15, Assign a16, Assign a17, Assign a18, Assign a19) => Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)
- CsoundExpr.Base.Imperative: instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10, Assign a11, Assign a12, Assign a13, Assign a14, Assign a15, Assign a16, Assign a17, Assign a18, Assign a19, Assign a20) => Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
- CsoundExpr.Base.Imperative: instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10, Assign a11, Assign a12, Assign a13, Assign a14, Assign a15, Assign a16, Assign a17, Assign a18, Assign a19, Assign a20, Assign a21) => Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21)
- CsoundExpr.Base.Imperative: instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10, Assign a11, Assign a12, Assign a13, Assign a14, Assign a15, Assign a16, Assign a17, Assign a18, Assign a19, Assign a20, Assign a21, Assign a22) => Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22)
- CsoundExpr.Base.Imperative: instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10, Assign a11, Assign a12, Assign a13, Assign a14, Assign a15, Assign a16, Assign a17, Assign a18, Assign a19, Assign a20, Assign a21, Assign a22, Assign a23) => Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23)
- CsoundExpr.Base.Imperative: instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10, Assign a11, Assign a12, Assign a13, Assign a14, Assign a15, Assign a16, Assign a17, Assign a18, Assign a19, Assign a20, Assign a21, Assign a22, Assign a23, Assign a24) => Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24)
- CsoundExpr.Base.Imperative: instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10, Assign a11, Assign a12, Assign a13, Assign a14, Assign a15, Assign a16, Assign a17, Assign a18, Assign a19, Assign a20, Assign a21, Assign a22, Assign a23, Assign a24, Assign a25) => Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25)
- CsoundExpr.Base.Imperative: instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10, Assign a11, Assign a12, Assign a13, Assign a14, Assign a15, Assign a16, Assign a17, Assign a18, Assign a19, Assign a20, Assign a21, Assign a22, Assign a23, Assign a24, Assign a25, Assign a26) => Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26)
- CsoundExpr.Base.Imperative: instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10, Assign a11, Assign a12, Assign a13, Assign a14, Assign a15, Assign a16, Assign a17, Assign a18, Assign a19, Assign a20, Assign a21, Assign a22, Assign a23, Assign a24, Assign a25, Assign a26, Assign a27) => Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27)
- CsoundExpr.Base.Imperative: instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10, Assign a11, Assign a12, Assign a13, Assign a14, Assign a15, Assign a16, Assign a17, Assign a18, Assign a19, Assign a20, Assign a21, Assign a22, Assign a23, Assign a24, Assign a25, Assign a26, Assign a27, Assign a28) => Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28)
- CsoundExpr.Base.Imperative: instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10, Assign a11, Assign a12, Assign a13, Assign a14, Assign a15, Assign a16, Assign a17, Assign a18, Assign a19, Assign a20, Assign a21, Assign a22, Assign a23, Assign a24, Assign a25, Assign a26, Assign a27, Assign a28, Assign a29) => Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29)
- CsoundExpr.Base.Imperative: instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10, Assign a11, Assign a12, Assign a13, Assign a14, Assign a15, Assign a16, Assign a17, Assign a18, Assign a19, Assign a20, Assign a21, Assign a22, Assign a23, Assign a24, Assign a25, Assign a26, Assign a27, Assign a28, Assign a29, Assign a30) => Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30)
- CsoundExpr.Base.Imperative: instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4, Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10, Assign a11, Assign a12, Assign a13, Assign a14, Assign a15, Assign a16, Assign a17, Assign a18, Assign a19, Assign a20, Assign a21, Assign a22, Assign a23, Assign a24, Assign a25, Assign a26, Assign a27, Assign a28, Assign a29, Assign a30, Assign a31) => Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31)
- CsoundExpr.Base.MultiOut: mo10 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)
- CsoundExpr.Base.MultiOut: mo11 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
- CsoundExpr.Base.MultiOut: mo12 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10, X a11) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)
- CsoundExpr.Base.MultiOut: mo13 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10, X a11, X a12) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)
- CsoundExpr.Base.MultiOut: mo14 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10, X a11, X a12, X a13) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)
- CsoundExpr.Base.MultiOut: mo15 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10, X a11, X a12, X a13, X a14) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)
- CsoundExpr.Base.MultiOut: mo16 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10, X a11, X a12, X a13, X a14, X a15) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15)
- CsoundExpr.Base.MultiOut: mo17 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10, X a11, X a12, X a13, X a14, X a15, X a16) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16)
- CsoundExpr.Base.MultiOut: mo18 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10, X a11, X a12, X a13, X a14, X a15, X a16, X a17) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17)
- CsoundExpr.Base.MultiOut: mo19 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10, X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18)
- CsoundExpr.Base.MultiOut: mo20 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10, X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19)
- CsoundExpr.Base.MultiOut: mo21 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10, X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19, X a20) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
- CsoundExpr.Base.MultiOut: mo22 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10, X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19, X a20, X a21) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21)
- CsoundExpr.Base.MultiOut: mo23 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10, X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19, X a20, X a21, X a22) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22)
- CsoundExpr.Base.MultiOut: mo24 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10, X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19, X a20, X a21, X a22, X a23) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23)
- CsoundExpr.Base.MultiOut: mo25 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10, X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19, X a20, X a21, X a22, X a23, X a24) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24)
- CsoundExpr.Base.MultiOut: mo26 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10, X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19, X a20, X a21, X a22, X a23, X a24, X a25) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25)
- CsoundExpr.Base.MultiOut: mo27 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10, X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19, X a20, X a21, X a22, X a23, X a24, X a25, X a26) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26)
- CsoundExpr.Base.MultiOut: mo28 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10, X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19, X a20, X a21, X a22, X a23, X a24, X a25, X a26, X a27) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27)
- CsoundExpr.Base.MultiOut: mo29 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10, X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19, X a20, X a21, X a22, X a23, X a24, X a25, X a26, X a27, X a28) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28)
- CsoundExpr.Base.MultiOut: mo30 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10, X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19, X a20, X a21, X a22, X a23, X a24, X a25, X a26, X a27, X a28, X a29) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29)
- CsoundExpr.Base.MultiOut: mo31 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10, X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19, X a20, X a21, X a22, X a23, X a24, X a25, X a26, X a27, X a28, X a29, X a30) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30)
- CsoundExpr.Base.MultiOut: mo32 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10, X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19, X a20, X a21, X a22, X a23, X a24, X a25, X a26, X a27, X a28, X a29, X a30, X a31) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31)
- CsoundExpr.Base.MultiOut: mo9 :: (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8) => MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8)
- CsoundExpr.Base.MultiOut: moA16 :: MultiOut -> (Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate)
- CsoundExpr.Base.MultiOut: moA24 :: MultiOut -> (Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate)
- CsoundExpr.Base.MultiOut: moA32 :: MultiOut -> (Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate)
- CsoundExpr.Base.MultiOut: moI16 :: MultiOut -> (Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate)
- CsoundExpr.Base.MultiOut: moI24 :: MultiOut -> (Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate)
- CsoundExpr.Base.MultiOut: moI32 :: MultiOut -> (Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate)
- CsoundExpr.Base.MultiOut: moK16 :: MultiOut -> (Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate)
- CsoundExpr.Base.MultiOut: moK24 :: MultiOut -> (Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate)
- CsoundExpr.Base.MultiOut: moK32 :: MultiOut -> (Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate)
- CsoundExpr.Base.Pitch: abb :: Oct -> Pch
- CsoundExpr.Base.Pitch: ass :: Oct -> Pch
- CsoundExpr.Base.Pitch: bbb :: Oct -> Pch
- CsoundExpr.Base.Pitch: bss :: Oct -> Pch
- CsoundExpr.Base.Pitch: cbb :: Oct -> Pch
- CsoundExpr.Base.Pitch: css :: Oct -> Pch
- CsoundExpr.Base.Pitch: dbb :: Oct -> Pch
- CsoundExpr.Base.Pitch: dss :: Oct -> Pch
- CsoundExpr.Base.Pitch: ebb :: Oct -> Pch
- CsoundExpr.Base.Pitch: ess :: Oct -> Pch
- CsoundExpr.Base.Pitch: fbb :: Oct -> Pch
- CsoundExpr.Base.Pitch: fss :: Oct -> Pch
- CsoundExpr.Base.Pitch: gbb :: Oct -> Pch
- CsoundExpr.Base.Pitch: gss :: Oct -> Pch
- CsoundExpr.Base.Pitch: type Oct = Int
- CsoundExpr.Base.Pitch: type Pch = Irate
- CsoundExpr.Base.Score: (+:+) :: Arrangeable a => a -> a -> a
- CsoundExpr.Base.Score: (=:=) :: Arrangeable a => a -> a -> a
- CsoundExpr.Base.Score: chord :: Arrangeable a => [a] -> a
- CsoundExpr.Base.Score: class Arrangeable a
- CsoundExpr.Base.Score: cut :: Dur -> Dur -> Score a -> Score a
- CsoundExpr.Base.Score: delay :: (Temporal Dur a, Arrangeable a) => Dur -> a -> a
- CsoundExpr.Base.Score: dmap :: (Dur -> a -> b) -> Score a -> Score b
- CsoundExpr.Base.Score: dmapRel :: (Dur -> a -> b) -> Score a -> Score b
- CsoundExpr.Base.Score: dropS :: Dur -> Score a -> Score a
- CsoundExpr.Base.Score: dur :: Temporal Dur a => a -> Dur
- CsoundExpr.Base.Score: line :: Arrangeable a => [a] -> a
- CsoundExpr.Base.Score: linseg :: (Num t, Ord t, Fractional t) => [t] -> t -> t
- CsoundExpr.Base.Score: loop :: Arrangeable a => Int -> a -> a
- CsoundExpr.Base.Score: note :: Dur -> a -> Score a
- CsoundExpr.Base.Score: pedal :: Dur -> Score a -> Score a
- CsoundExpr.Base.Score: pedalBy :: (Time -> Dur -> a -> (b, Dur)) -> Score a -> Score b
- CsoundExpr.Base.Score: reprise :: Arrangeable a => a -> a -> a -> a
- CsoundExpr.Base.Score: rest :: Temporal Dur a => Dur -> a
- CsoundExpr.Base.Score: reverseS :: Score a -> Score a
- CsoundExpr.Base.Score: rondo :: Arrangeable a => a -> a -> a -> a
- CsoundExpr.Base.Score: stretch :: Stretchable Dur a => Dur -> a -> a
- CsoundExpr.Base.Score: sustain :: Dur -> Score a -> Score a
- CsoundExpr.Base.Score: sustainBy :: (Time -> Dur -> a -> (b, Dur)) -> Score a -> Score b
- CsoundExpr.Base.Score: takeS :: Dur -> Score a -> Score a
- CsoundExpr.Base.Score: tdmap :: (Time -> Dur -> a -> b) -> Score a -> Score b
- CsoundExpr.Base.Score: tdmapRel :: (Time -> Dur -> a -> b) -> Score a -> Score b
- CsoundExpr.Base.Score: tmap :: (Time -> a -> b) -> Score a -> Score b
- CsoundExpr.Base.Score: tmapRel :: (Time -> a -> b) -> Score a -> Score b
- CsoundExpr.Base.Score: toList :: Score a -> EventList Dur a
- CsoundExpr.Base.Score: trill :: Arrangeable a => Int -> a -> a -> a
- CsoundExpr.Base.Score: tstretch :: TemporalStretchable Dur a => (Time -> Dur) -> a -> a
- CsoundExpr.Base.Score: tstretchRel :: TemporalStretchable Dur a => (Time -> Dur) -> a -> a
- CsoundExpr.Base.Score: type Dur = Time
- CsoundExpr.Base.Score: type Score a = MediaUnit Dur () a
- CsoundExpr.Base.Score: type Time = Double
- CsoundExpr.Tutorial.Composition: exmpEventList :: EventList Double Irate
- CsoundExpr.Tutorial.Composition: exmpScoArrangeable :: Score String
- CsoundExpr.Tutorial.Composition: exmpScoFunctor :: MediaUnit Dur () SignalOut
- CsoundExpr.Tutorial.Composition: exmpScoMonad :: MediaUnit Dur () Irate
- CsoundExpr.Tutorial.Composition: exmpScoStretchable :: MediaUnit Dur () Irate
- CsoundExpr.Tutorial.Composition: exmpScoTemporal :: Dur
- CsoundExpr.Tutorial.Composition: exmpScoTemporalFunctor :: Score SignalOut
- CsoundExpr.Tutorial.Composition: exmpScore :: Score String
- CsoundExpr.Tutorial.Composition: main :: IO ()
- CsoundExpr.Tutorial.Intro: dmCode :: CsoundFile
- CsoundExpr.Tutorial.Orchestra: exmpArith :: K k0 => k0 -> SignalOut
- CsoundExpr.Tutorial.Orchestra: exmpImper :: Irate -> SignalOut
- CsoundExpr.Tutorial.Orchestra: exmpInstr :: Irate -> SignalOut
- CsoundExpr.Tutorial.Orchestra: exmpMidi :: IO ()
- CsoundExpr.Tutorial.Orchestra: exmpPreview :: IO ()
- CsoundExpr.Tutorial.Orchestra: main :: IO ()
+ CsoundExpr.Base.Pitch: high :: Pitch -> Pitch
+ CsoundExpr.Base.Pitch: higher :: Octave -> Pitch -> Pitch
+ CsoundExpr.Base.Pitch: low :: Pitch -> Pitch
+ CsoundExpr.Base.Pitch: lower :: Octave -> Pitch -> Pitch
+ CsoundExpr.Base.Pitch: type Octave = Int
+ CsoundExpr.Base.Pitch: type Pitch = Irate
+ CsoundExpr.Base.Pretty: playDac :: FilePath -> FileName -> CsoundFile -> IO ExitCode
- CsoundExpr.Base.Pitch: a :: Oct -> Pch
+ CsoundExpr.Base.Pitch: a :: Pitch
- CsoundExpr.Base.Pitch: ab :: Oct -> Pch
+ CsoundExpr.Base.Pitch: ab :: Pitch
- CsoundExpr.Base.Pitch: as :: Oct -> Pch
+ CsoundExpr.Base.Pitch: as :: Pitch
- CsoundExpr.Base.Pitch: b :: Oct -> Pch
+ CsoundExpr.Base.Pitch: b :: Pitch
- CsoundExpr.Base.Pitch: bb :: Oct -> Pch
+ CsoundExpr.Base.Pitch: bb :: Pitch
- CsoundExpr.Base.Pitch: bs :: Oct -> Pch
+ CsoundExpr.Base.Pitch: bs :: Pitch
- CsoundExpr.Base.Pitch: c :: Oct -> Pch
+ CsoundExpr.Base.Pitch: c :: Pitch
- CsoundExpr.Base.Pitch: cb :: Oct -> Pch
+ CsoundExpr.Base.Pitch: cb :: Pitch
- CsoundExpr.Base.Pitch: cs :: Oct -> Pch
+ CsoundExpr.Base.Pitch: cs :: Pitch
- CsoundExpr.Base.Pitch: d :: Oct -> Pch
+ CsoundExpr.Base.Pitch: d :: Pitch
- CsoundExpr.Base.Pitch: db :: Oct -> Pch
+ CsoundExpr.Base.Pitch: db :: Pitch
- CsoundExpr.Base.Pitch: ds :: Oct -> Pch
+ CsoundExpr.Base.Pitch: ds :: Pitch
- CsoundExpr.Base.Pitch: e :: Oct -> Pch
+ CsoundExpr.Base.Pitch: e :: Pitch
- CsoundExpr.Base.Pitch: eb :: Oct -> Pch
+ CsoundExpr.Base.Pitch: eb :: Pitch
- CsoundExpr.Base.Pitch: es :: Oct -> Pch
+ CsoundExpr.Base.Pitch: es :: Pitch
- CsoundExpr.Base.Pitch: f :: Oct -> Pch
+ CsoundExpr.Base.Pitch: f :: Pitch
- CsoundExpr.Base.Pitch: fb :: Oct -> Pch
+ CsoundExpr.Base.Pitch: fb :: Pitch
- CsoundExpr.Base.Pitch: fs :: Oct -> Pch
+ CsoundExpr.Base.Pitch: fs :: Pitch
- CsoundExpr.Base.Pitch: g :: Oct -> Pch
+ CsoundExpr.Base.Pitch: g :: Pitch
- CsoundExpr.Base.Pitch: gb :: Oct -> Pch
+ CsoundExpr.Base.Pitch: gb :: Pitch
- CsoundExpr.Base.Pitch: gs :: Oct -> Pch
+ CsoundExpr.Base.Pitch: gs :: Pitch

Files

Changelog view
@@ -1,5 +1,15 @@--> 0.2.0    fixes few docs bugs,+-- 0.3.0    update for Score api. Now there is no Score api by default.+			Consider using 'temporal-media'[1] or 'temporal-music-notation'[2]+			packages for csound score events composition. +			'temporal-media' is general package for functional construction +			of list of events with fixed start time and duration, like+			csound notes.  +			[1] http://hackage.haskell.org/package/temporal-media+			[2] http://hackage.haskell.org/package/temporal-music-notation++-> 0.2.0    fixes docs bugs,+ 			new functions in CsoundExpr.Base.Score :  			extends TemporalFunctor with new methods@@ -12,7 +22,7 @@ 			new class Sustainable, adds ability for legato and pedal (sustain, 			sustainBy functions) -			new class TemporalStretch, adds ability to stretch score depndent+			new class TemporalStretch, adds ability to stretch score dependent 			on note's start time (ritardando or accelerando)  			adds list-like operations on Scores : reverseS, takeS, dropS
LICENSE view
@@ -1,4 +1,4 @@-Copyright Anton Kholomiov 2010+Copyright Anton Kholomiov 2011  All rights reserved. 
csound-expression.cabal view
@@ -1,17 +1,20 @@ Name:          csound-expression-Version:       0.2.0+Version:       0.3.0 Cabal-Version: >= 1.2 License:       BSD3 License-File:  LICENSE Author:	       Anton Kholomiov Maintainer:    <anton.kholomiov@gmail.com> Synopsis:      Csound combinator library-Description:   Csound code generator. See "CsoundExpr.Tutorial" for guides and examples. +Description:   Csound code generator. See root module "CsoundExpr" +               for introduction guides. Score module is no longer +               availible inside 'csound-expression' package, consider +               using 'temporal-media' or 'temporal-music-notation'+               packages. -               WARNING : API changes (see TemporalFunctor method tmap, and ./Changelog) Category:      Sound, Music Stability:     Experimental-Tested-With:   GHC==6.12.1+Tested-With:   GHC==6.12.3 Build-Type:    Simple  Extra-Source-Files : @@ -19,8 +22,8 @@  Library   Build-Depends:-        base >= 4, base < 5, containers, mtl == 2.0.1.0, pretty, -        filepath, directory, haskell98, Boolean, temporal-media == 0.1.0+        base >= 4, base < 5, containers, mtl >= 2.0, pretty, +        filepath, directory, haskell98, Boolean, temporal-media >= 0.2   Hs-Source-Dirs:      src/   Exposed-Modules:         CsoundExpr@@ -33,17 +36,16 @@         CsoundExpr.Base.SideEffect         CsoundExpr.Base.Arithmetic         CsoundExpr.Base.Header-        CsoundExpr.Base.Score         CsoundExpr.Base.Gens         CsoundExpr.Base.Pitch         CsoundExpr.Base.UserDefined         CsoundExpr.Base.Pretty -- Tutorial-        CsoundExpr.Tutorial-        CsoundExpr.Tutorial.Intro-        CsoundExpr.Tutorial.Composition-        CsoundExpr.Tutorial.Orchestra-        CsoundExpr.Tutorial.Limits+--        CsoundExpr.Tutorial+--        CsoundExpr.Tutorial.Intro+--        CsoundExpr.Tutorial.Composition+--        CsoundExpr.Tutorial.Orchestra+--        CsoundExpr.Tutorial.Limits  -- Opcodes         CsoundExpr.Opcodes
src/CsoundExpr.hs view
@@ -1,4 +1,270 @@+{-|+    Library csound-expression allows csound code construction +    in functional way.++    It has two parts "CsoundExpr.Base" and "CsoundExpr.Opcodes".+    First part "Csound.Base" contains essential functionality of the package. +    Second part "Csound.Opcodes" contains opcode definitions.++    This module provides overview of the library.+    For examples see sources, folder 'examples'+-} module CsoundExpr (+    -- * Introduction+    {-|+        Csound-expression is csound code generator. Program +        produces value of 'CsoundFile' type. +    'CsoundFile' is 'Show'. So that is the way to get csound code. +    Function 'csd' can be invoked to make value of 'CsoundFile' type.         ++    >csd :: Flags -> Header -> EventList Dur SignalOut -> CsoundFile++    * 'Flags' is 'String'. It's pasted in place of csounds flags. ++    * 'Header' is csound header declaration. +        See module "CsoundExpr.Base.Header" for more details.++    * 'EventList' represents csound orchestra and score sections. This+        type comes from external library 'temporal-media' [1]. +        'EventList' contains values with time marks. +        Value begins at some time and lasts for some time.+        Very much like csound notes, but there is one difference+        no need for p-field parameters, translator derives them from +        note structure encoded in values of type 'SignalOut'.+        'EventList' can be constructed directly with functions of +        'temporal-media' library, but better way is to use some+        front-end. Package 'temporal-music-notation' [2]+        provides higher level musical functionality for 'EventList' +        construction. In this library you can find some examples +        illustrating how to compose intruments and score.                ++    \[1\] <http://hackage.haskell.org/package/temporal-media>++    \[2\] <http://hackage.haskell.org/package/temporal-music-notation>+    +    -}++    -- * Instruments+    {-|+    Instruments are functions from some signal representation to signal. +    'Score' (from 'temporal-music-notation' library) or +    'EventList' (from 'temporal-media' library) is a 'Functor', +    so to play on instrument means to apply instrument. +    to container of its notes. Instrument can be made with opcodes.+    Translator derives p-fields from instrument structure. There are only+    two explicit p-fields 'itime' and 'idur' (@p2@ and @p3@ in csound).+    -}+++    -- * Signals / Types++    {-|+    Signals are represented with trees. Tree contains information about how +    signal was build. +    +    There are five types for signals ("CsoundExpr.Base.Types").++    'Arate' is audio rate signal++    'Krate' is control rate signal++    'Irate' is init value+   +    'SignalOut' is no output at all (it's produced by opcodes +        like out, outs, xtratim) ++    'BoolRate' is comparision of two control or init rate signals+    ("CsoundExpr.Base.Boolean")++    +    There are two classes to allow csound's polymorphism : 'X' and 'K'++    'X' = 'Arate' | 'Krate' | 'Irate'++    'K' = 'Krate' | 'Irate'+++    Csound's S - signal is represented with 'String'.+    Ftable is represented with 'Irate'. If you want to get 'Krate' ftable+    you can construct it with function 'ifB'.+    +    There are two special types 'MultiOut' +    (for opcodes that may produce several outputs, +        see "CsoundExpr.Base.MultiOut")+    and 'SideEffect' +    (for opcodes that rely on number of appearances in csound code, +     like @unirand@, see "CsoundExpr.Base.SideEffect")    +    -}++    -- * Opcodes ++    {-|+        Naming conventions : Opcodes are named after csound's +        counterparts usually. Some opcodes in csound can produce +        signals of different rates by request (oscil, linseg).+        Those opcodes are labelled with suffix. Suffix defines +        output rate of signal (oscilA, oscilK). Some opcodes +        in csound have unfixed number of inputs due to setup +        parameters, almost all of them. Those opcodes have +        first argument that is list of setup parameters.++        example++        >oscilA :: (X a, X b) => [Irate] -> a -> b -> Irate -> Arate+        >oscilK :: (K a, K b) => [Irate] -> a -> b -> Irate -> Krate        +    -}++    -- * Imperative style csound code+    +    {-|+        Most of csound opcodes can be used in functional way. +        You can plug them in one another, and make expressions, +        but some of them behave like procedures and rely on order +        of execution in instrument. Module "CsoundExpr.Base.Imperative" +        provides functions to write imperative csound code. ++        'outList' - to sequence procedures++        '(/<=/>)' - Assignment++        'ar', 'kr', 'ir', 'gar', 'gkr', 'gir' - named values, +        to produce signal with specified name and rate.+        +        Functional style :++        >exmpInstr :: Irate -> SignalOut+        >exmpInstr pch = out $ oscilA [] (num 1000) (cpspch pch) $ +        >       gen10 4096 [1]+++        Imperative style :++        >exmpImper :: Irate -> SignalOut +        >exmpImper pch = outList [        +        >        ir "amp" <=> num 1000,+        >        ir "cps" <=> cpspch pch,+        >        ir "ft"  <=> gen10 4096 [1],+        >        ar "sig" <=> oscilA [] (ir "amp") (ir "cps") (ir "ft"),+        >        out (ar "sig")]++    -}+    +    -- * Arithmetic+    {-|+        You can use polymorphic operations to do some arihmetic +        on signals from "CsoundExpr.Base.Arithmetic". And Signal +        is 'Num'. 'Eq' is undefined though.                    +    -}++    -- * Preview++    {-|+        To see what will come out of an expression you can +        print it. 'Arate', 'Krate' and 'Irate' are 'Show'.+    -}++    -- * User Defined opcodes++    {-|+        You can add your own opcodes to library, +        see "CsoundExpr.Base.UserDefined"+    -}++    -- * MIDI +    +    {-|+        There are two ways to tell 'csd' to include instrument +        in csound file. Instrument can be a part of 'Score' or +        it can be midi instrument, then it should be mentioned +        in 'massign' or 'pgmassign' function. If you want to +        play midi-instr for some time @t@, you can tell it +        to 'csd' function by invoking 'csd' with @'none' t@+        ('temporal-media') or @(toList $ 'rest' t)@ ('temporal-music-notation')+        in place of 'EventList' value.+        +        >flags = "-odac -iadc  -+rtmidi=virtual -M0"+        >+        >header = [massign [] 1 instrMidi]+        >+        >instrMidi :: SignalOut+        >instrMidi = out $ oscilA [] (num 1000) cpsmidi $ gen10 4096 [1]+        >+        >-- play instrMidi for 2 minutes+        >exmpMidi = print $ csd flags header (none 120)+    -}++    -- * Limits+    -- ** What can not be expressed +        +    -- *** ids+    {-| +        The major benefit and major problem of csound-expression is +        abscense of ids for p-fields, ftables, notes and instruments.+        +    +        no ids for ... means ... no ++        p-fields/notes - opcodes that rely on p-fields or invoke instruments++        ftables - k-rate ftables++        instruments - convenient way to specify order of instruments+    -}++    -- *** imperative program flow control+    +        -- |  There is no program flow control opcodes (like if, then, goto).+        -- But you can use functional if/then from module +        -- "CsoundExpr.Base.Boolean"++    -- *** Srate++        -- | I've decided to represent csound's S-rate with 'String'.+        -- Signal is represented with tree and it means i can't include+        -- opcodes that produce Srate++    -- ** Hack-way around (what somehow can be expressed)++    -- *** instrument order+    {-|+        Orchestra section is generated from 'EventList'. Different instruments+        have different tree structure and one instrument's tree can't be +        transformed into another one by replacing leaf-values only. ++        You can point to instrument by its structure. There is opcode in +        "CsoundExpr.Base.Header" that specifies order of instruments by+        list of notes. 'instrOrder' takes in list of notes, if instrument's+        tree is equivalent to note it is placed in relation to list of notes.++        There are ways to make mistake. Sometimes it's unpredictable. +        +        +        In example below ++        @q1 =/= q2@++        @sco@ contains two instruments (one with @x@, and another +                one with @cpspch x@)++        >+        >osc x = oscilA [] (num 1000) x $ gen10 4096 [1]+        >env   = lineK 1 idur 0+        >+        >q1 x = osc x <*> env+        >q2 x = env   <*> osc x+        >+        >sco1 = note 1 440+        >sco2 = note 1 $ cpspch 8.00+        >+        >sco = fmap q1 $ sco1 +:+ sco2++        I think maybe it's worthwhile to introduce some way of instrument id+        assignment.+    -}++++ 	module CsoundExpr.Base ) where
src/CsoundExpr/Base.hs view
@@ -11,7 +11,7 @@ 	module CsoundExpr.Base.Arithmetic, 	module CsoundExpr.Base.SideEffect, 	module CsoundExpr.Base.Header,-	module CsoundExpr.Base.Score,+--	module CsoundExpr.Base.Score, 	module CsoundExpr.Base.Gens,      module CsoundExpr.Base.Pretty  )@@ -24,7 +24,7 @@ import CsoundExpr.Base.Arithmetic import CsoundExpr.Base.SideEffect import CsoundExpr.Base.Header-import CsoundExpr.Base.Score+-- import CsoundExpr.Base.Score import CsoundExpr.Base.Gens  import CsoundExpr.Base.Pretty  
src/CsoundExpr/Base/Imperative.hs view
@@ -144,586 +144,4 @@               [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,                sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,                sig7 <=> exprs7] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         - -instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4,-          Assign a5, Assign a6, Assign a7, Assign a8) =>-         Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8) where-        (sig0, sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8) <=>-          (exprs0, exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7,-           exprs8)-          = outList-              [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,-               sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,-               sig7 <=> exprs7, sig8 <=> exprs8] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  - -instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4,-          Assign a5, Assign a6, Assign a7, Assign a8, Assign a9) =>-         Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) where-        (sig0, sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8, sig9) <=>-          (exprs0, exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7,-           exprs8, exprs9)-          = outList-              [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,-               sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,-               sig7 <=> exprs7, sig8 <=> exprs8, sig9 <=> exprs9] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                - -instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4,-          Assign a5, Assign a6, Assign a7, Assign a8, Assign a9,-          Assign a10) =>-         Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) where-        (sig0, sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8, sig9, sig10)-          <=>-          (exprs0, exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7,-           exprs8, exprs9, exprs10)-          = outList-              [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,-               sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,-               sig7 <=> exprs7, sig8 <=> exprs8, sig9 <=> exprs9,-               sig10 <=> exprs10] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       - -instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4,-          Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10,-          Assign a11) =>-         Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11) where-        (sig0, sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8, sig9, sig10,-         sig11)-          <=>-          (exprs0, exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7,-           exprs8, exprs9, exprs10, exprs11)-          = outList-              [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,-               sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,-               sig7 <=> exprs7, sig8 <=> exprs8, sig9 <=> exprs9,-               sig10 <=> exprs10, sig11 <=> exprs11] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    - -instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4,-          Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10,-          Assign a11, Assign a12) =>-         Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)-         where-        (sig0, sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8, sig9, sig10,-         sig11, sig12)-          <=>-          (exprs0, exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7,-           exprs8, exprs9, exprs10, exprs11, exprs12)-          = outList-              [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,-               sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,-               sig7 <=> exprs7, sig8 <=> exprs8, sig9 <=> exprs9,-               sig10 <=> exprs10, sig11 <=> exprs11, sig12 <=> exprs12] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 - -instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4,-          Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10,-          Assign a11, Assign a12, Assign a13) =>-         Assign (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)-         where-        (sig0, sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8, sig9, sig10,-         sig11, sig12, sig13)-          <=>-          (exprs0, exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7,-           exprs8, exprs9, exprs10, exprs11, exprs12, exprs13)-          = outList-              [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,-               sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,-               sig7 <=> exprs7, sig8 <=> exprs8, sig9 <=> exprs9,-               sig10 <=> exprs10, sig11 <=> exprs11, sig12 <=> exprs12,-               sig13 <=> exprs13] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    - -instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4,-          Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10,-          Assign a11, Assign a12, Assign a13, Assign a14) =>-         Assign-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)-         where-        (sig0, sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8, sig9, sig10,-         sig11, sig12, sig13, sig14)-          <=>-          (exprs0, exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7,-           exprs8, exprs9, exprs10, exprs11, exprs12, exprs13, exprs14)-          = outList-              [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,-               sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,-               sig7 <=> exprs7, sig8 <=> exprs8, sig9 <=> exprs9,-               sig10 <=> exprs10, sig11 <=> exprs11, sig12 <=> exprs12,-               sig13 <=> exprs13, sig14 <=> exprs14] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 - -instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4,-          Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10,-          Assign a11, Assign a12, Assign a13, Assign a14, Assign a15) =>-         Assign-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15)-         where-        (sig0, sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8, sig9, sig10,-         sig11, sig12, sig13, sig14, sig15)-          <=>-          (exprs0, exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7,-           exprs8, exprs9, exprs10, exprs11, exprs12, exprs13, exprs14,-           exprs15)-          = outList-              [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,-               sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,-               sig7 <=> exprs7, sig8 <=> exprs8, sig9 <=> exprs9,-               sig10 <=> exprs10, sig11 <=> exprs11, sig12 <=> exprs12,-               sig13 <=> exprs13, sig14 <=> exprs14, sig15 <=> exprs15] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          - -instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4,-          Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10,-          Assign a11, Assign a12, Assign a13, Assign a14, Assign a15,-          Assign a16) =>-         Assign-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16)-         where-        (sig0, sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8, sig9, sig10,-         sig11, sig12, sig13, sig14, sig15, sig16)-          <=>-          (exprs0, exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7,-           exprs8, exprs9, exprs10, exprs11, exprs12, exprs13, exprs14,-           exprs15, exprs16)-          = outList-              [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,-               sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,-               sig7 <=> exprs7, sig8 <=> exprs8, sig9 <=> exprs9,-               sig10 <=> exprs10, sig11 <=> exprs11, sig12 <=> exprs12,-               sig13 <=> exprs13, sig14 <=> exprs14, sig15 <=> exprs15,-               sig16 <=> exprs16] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       - -instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4,-          Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10,-          Assign a11, Assign a12, Assign a13, Assign a14, Assign a15,-          Assign a16, Assign a17) =>-         Assign-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17)-         where-        (sig0, sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8, sig9, sig10,-         sig11, sig12, sig13, sig14, sig15, sig16, sig17)-          <=>-          (exprs0, exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7,-           exprs8, exprs9, exprs10, exprs11, exprs12, exprs13, exprs14,-           exprs15, exprs16, exprs17)-          = outList-              [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,-               sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,-               sig7 <=> exprs7, sig8 <=> exprs8, sig9 <=> exprs9,-               sig10 <=> exprs10, sig11 <=> exprs11, sig12 <=> exprs12,-               sig13 <=> exprs13, sig14 <=> exprs14, sig15 <=> exprs15,-               sig16 <=> exprs16, sig17 <=> exprs17] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           - -instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4,-          Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10,-          Assign a11, Assign a12, Assign a13, Assign a14, Assign a15,-          Assign a16, Assign a17, Assign a18) =>-         Assign-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18)-         where-        (sig0, sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8, sig9, sig10,-         sig11, sig12, sig13, sig14, sig15, sig16, sig17, sig18)-          <=>-          (exprs0, exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7,-           exprs8, exprs9, exprs10, exprs11, exprs12, exprs13, exprs14,-           exprs15, exprs16, exprs17, exprs18)-          = outList-              [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,-               sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,-               sig7 <=> exprs7, sig8 <=> exprs8, sig9 <=> exprs9,-               sig10 <=> exprs10, sig11 <=> exprs11, sig12 <=> exprs12,-               sig13 <=> exprs13, sig14 <=> exprs14, sig15 <=> exprs15,-               sig16 <=> exprs16, sig17 <=> exprs17, sig18 <=> exprs18] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               - -instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4,-          Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10,-          Assign a11, Assign a12, Assign a13, Assign a14, Assign a15,-          Assign a16, Assign a17, Assign a18, Assign a19) =>-         Assign-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19)-         where-        (sig0, sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8, sig9, sig10,-         sig11, sig12, sig13, sig14, sig15, sig16, sig17, sig18, sig19)-          <=>-          (exprs0, exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7,-           exprs8, exprs9, exprs10, exprs11, exprs12, exprs13, exprs14,-           exprs15, exprs16, exprs17, exprs18, exprs19)-          = outList-              [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,-               sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,-               sig7 <=> exprs7, sig8 <=> exprs8, sig9 <=> exprs9,-               sig10 <=> exprs10, sig11 <=> exprs11, sig12 <=> exprs12,-               sig13 <=> exprs13, sig14 <=> exprs14, sig15 <=> exprs15,-               sig16 <=> exprs16, sig17 <=> exprs17, sig18 <=> exprs18,-               sig19 <=> exprs19] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  - -instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4,-          Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10,-          Assign a11, Assign a12, Assign a13, Assign a14, Assign a15,-          Assign a16, Assign a17, Assign a18, Assign a19, Assign a20) =>-         Assign-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19, a20)-         where-        (sig0, sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8, sig9, sig10,-         sig11, sig12, sig13, sig14, sig15, sig16, sig17, sig18, sig19,-         sig20)-          <=>-          (exprs0, exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7,-           exprs8, exprs9, exprs10, exprs11, exprs12, exprs13, exprs14,-           exprs15, exprs16, exprs17, exprs18, exprs19, exprs20)-          = outList-              [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,-               sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,-               sig7 <=> exprs7, sig8 <=> exprs8, sig9 <=> exprs9,-               sig10 <=> exprs10, sig11 <=> exprs11, sig12 <=> exprs12,-               sig13 <=> exprs13, sig14 <=> exprs14, sig15 <=> exprs15,-               sig16 <=> exprs16, sig17 <=> exprs17, sig18 <=> exprs18,-               sig19 <=> exprs19, sig20 <=> exprs20] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               - -instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4,-          Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10,-          Assign a11, Assign a12, Assign a13, Assign a14, Assign a15,-          Assign a16, Assign a17, Assign a18, Assign a19, Assign a20,-          Assign a21) =>-         Assign-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19, a20, a21)-         where-        (sig0, sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8, sig9, sig10,-         sig11, sig12, sig13, sig14, sig15, sig16, sig17, sig18, sig19,-         sig20, sig21)-          <=>-          (exprs0, exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7,-           exprs8, exprs9, exprs10, exprs11, exprs12, exprs13, exprs14,-           exprs15, exprs16, exprs17, exprs18, exprs19, exprs20, exprs21)-          = outList-              [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,-               sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,-               sig7 <=> exprs7, sig8 <=> exprs8, sig9 <=> exprs9,-               sig10 <=> exprs10, sig11 <=> exprs11, sig12 <=> exprs12,-               sig13 <=> exprs13, sig14 <=> exprs14, sig15 <=> exprs15,-               sig16 <=> exprs16, sig17 <=> exprs17, sig18 <=> exprs18,-               sig19 <=> exprs19, sig20 <=> exprs20, sig21 <=> exprs21] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             - -instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4,-          Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10,-          Assign a11, Assign a12, Assign a13, Assign a14, Assign a15,-          Assign a16, Assign a17, Assign a18, Assign a19, Assign a20,-          Assign a21, Assign a22) =>-         Assign-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19, a20, a21, a22)-         where-        (sig0, sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8, sig9, sig10,-         sig11, sig12, sig13, sig14, sig15, sig16, sig17, sig18, sig19,-         sig20, sig21, sig22)-          <=>-          (exprs0, exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7,-           exprs8, exprs9, exprs10, exprs11, exprs12, exprs13, exprs14,-           exprs15, exprs16, exprs17, exprs18, exprs19, exprs20, exprs21,-           exprs22)-          = outList-              [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,-               sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,-               sig7 <=> exprs7, sig8 <=> exprs8, sig9 <=> exprs9,-               sig10 <=> exprs10, sig11 <=> exprs11, sig12 <=> exprs12,-               sig13 <=> exprs13, sig14 <=> exprs14, sig15 <=> exprs15,-               sig16 <=> exprs16, sig17 <=> exprs17, sig18 <=> exprs18,-               sig19 <=> exprs19, sig20 <=> exprs20, sig21 <=> exprs21,-               sig22 <=> exprs22] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           - -instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4,-          Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10,-          Assign a11, Assign a12, Assign a13, Assign a14, Assign a15,-          Assign a16, Assign a17, Assign a18, Assign a19, Assign a20,-          Assign a21, Assign a22, Assign a23) =>-         Assign-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19, a20, a21, a22, a23)-         where-        (sig0, sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8, sig9, sig10,-         sig11, sig12, sig13, sig14, sig15, sig16, sig17, sig18, sig19,-         sig20, sig21, sig22, sig23)-          <=>-          (exprs0, exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7,-           exprs8, exprs9, exprs10, exprs11, exprs12, exprs13, exprs14,-           exprs15, exprs16, exprs17, exprs18, exprs19, exprs20, exprs21,-           exprs22, exprs23)-          = outList-              [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,-               sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,-               sig7 <=> exprs7, sig8 <=> exprs8, sig9 <=> exprs9,-               sig10 <=> exprs10, sig11 <=> exprs11, sig12 <=> exprs12,-               sig13 <=> exprs13, sig14 <=> exprs14, sig15 <=> exprs15,-               sig16 <=> exprs16, sig17 <=> exprs17, sig18 <=> exprs18,-               sig19 <=> exprs19, sig20 <=> exprs20, sig21 <=> exprs21,-               sig22 <=> exprs22, sig23 <=> exprs23] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               - -instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4,-          Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10,-          Assign a11, Assign a12, Assign a13, Assign a14, Assign a15,-          Assign a16, Assign a17, Assign a18, Assign a19, Assign a20,-          Assign a21, Assign a22, Assign a23, Assign a24) =>-         Assign-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19, a20, a21, a22, a23, a24)-         where-        (sig0, sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8, sig9, sig10,-         sig11, sig12, sig13, sig14, sig15, sig16, sig17, sig18, sig19,-         sig20, sig21, sig22, sig23, sig24)-          <=>-          (exprs0, exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7,-           exprs8, exprs9, exprs10, exprs11, exprs12, exprs13, exprs14,-           exprs15, exprs16, exprs17, exprs18, exprs19, exprs20, exprs21,-           exprs22, exprs23, exprs24)-          = outList-              [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,-               sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,-               sig7 <=> exprs7, sig8 <=> exprs8, sig9 <=> exprs9,-               sig10 <=> exprs10, sig11 <=> exprs11, sig12 <=> exprs12,-               sig13 <=> exprs13, sig14 <=> exprs14, sig15 <=> exprs15,-               sig16 <=> exprs16, sig17 <=> exprs17, sig18 <=> exprs18,-               sig19 <=> exprs19, sig20 <=> exprs20, sig21 <=> exprs21,-               sig22 <=> exprs22, sig23 <=> exprs23, sig24 <=> exprs24] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   - -instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4,-          Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10,-          Assign a11, Assign a12, Assign a13, Assign a14, Assign a15,-          Assign a16, Assign a17, Assign a18, Assign a19, Assign a20,-          Assign a21, Assign a22, Assign a23, Assign a24, Assign a25) =>-         Assign-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25)-         where-        (sig0, sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8, sig9, sig10,-         sig11, sig12, sig13, sig14, sig15, sig16, sig17, sig18, sig19,-         sig20, sig21, sig22, sig23, sig24, sig25)-          <=>-          (exprs0, exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7,-           exprs8, exprs9, exprs10, exprs11, exprs12, exprs13, exprs14,-           exprs15, exprs16, exprs17, exprs18, exprs19, exprs20, exprs21,-           exprs22, exprs23, exprs24, exprs25)-          = outList-              [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,-               sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,-               sig7 <=> exprs7, sig8 <=> exprs8, sig9 <=> exprs9,-               sig10 <=> exprs10, sig11 <=> exprs11, sig12 <=> exprs12,-               sig13 <=> exprs13, sig14 <=> exprs14, sig15 <=> exprs15,-               sig16 <=> exprs16, sig17 <=> exprs17, sig18 <=> exprs18,-               sig19 <=> exprs19, sig20 <=> exprs20, sig21 <=> exprs21,-               sig22 <=> exprs22, sig23 <=> exprs23, sig24 <=> exprs24,-               sig25 <=> exprs25] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      - -instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4,-          Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10,-          Assign a11, Assign a12, Assign a13, Assign a14, Assign a15,-          Assign a16, Assign a17, Assign a18, Assign a19, Assign a20,-          Assign a21, Assign a22, Assign a23, Assign a24, Assign a25,-          Assign a26) =>-         Assign-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26)-         where-        (sig0, sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8, sig9, sig10,-         sig11, sig12, sig13, sig14, sig15, sig16, sig17, sig18, sig19,-         sig20, sig21, sig22, sig23, sig24, sig25, sig26)-          <=>-          (exprs0, exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7,-           exprs8, exprs9, exprs10, exprs11, exprs12, exprs13, exprs14,-           exprs15, exprs16, exprs17, exprs18, exprs19, exprs20, exprs21,-           exprs22, exprs23, exprs24, exprs25, exprs26)-          = outList-              [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,-               sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,-               sig7 <=> exprs7, sig8 <=> exprs8, sig9 <=> exprs9,-               sig10 <=> exprs10, sig11 <=> exprs11, sig12 <=> exprs12,-               sig13 <=> exprs13, sig14 <=> exprs14, sig15 <=> exprs15,-               sig16 <=> exprs16, sig17 <=> exprs17, sig18 <=> exprs18,-               sig19 <=> exprs19, sig20 <=> exprs20, sig21 <=> exprs21,-               sig22 <=> exprs22, sig23 <=> exprs23, sig24 <=> exprs24,-               sig25 <=> exprs25, sig26 <=> exprs26] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    - -instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4,-          Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10,-          Assign a11, Assign a12, Assign a13, Assign a14, Assign a15,-          Assign a16, Assign a17, Assign a18, Assign a19, Assign a20,-          Assign a21, Assign a22, Assign a23, Assign a24, Assign a25,-          Assign a26, Assign a27) =>-         Assign-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27)-         where-        (sig0, sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8, sig9, sig10,-         sig11, sig12, sig13, sig14, sig15, sig16, sig17, sig18, sig19,-         sig20, sig21, sig22, sig23, sig24, sig25, sig26, sig27)-          <=>-          (exprs0, exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7,-           exprs8, exprs9, exprs10, exprs11, exprs12, exprs13, exprs14,-           exprs15, exprs16, exprs17, exprs18, exprs19, exprs20, exprs21,-           exprs22, exprs23, exprs24, exprs25, exprs26, exprs27)-          = outList-              [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,-               sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,-               sig7 <=> exprs7, sig8 <=> exprs8, sig9 <=> exprs9,-               sig10 <=> exprs10, sig11 <=> exprs11, sig12 <=> exprs12,-               sig13 <=> exprs13, sig14 <=> exprs14, sig15 <=> exprs15,-               sig16 <=> exprs16, sig17 <=> exprs17, sig18 <=> exprs18,-               sig19 <=> exprs19, sig20 <=> exprs20, sig21 <=> exprs21,-               sig22 <=> exprs22, sig23 <=> exprs23, sig24 <=> exprs24,-               sig25 <=> exprs25, sig26 <=> exprs26, sig27 <=> exprs27] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        - -instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4,-          Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10,-          Assign a11, Assign a12, Assign a13, Assign a14, Assign a15,-          Assign a16, Assign a17, Assign a18, Assign a19, Assign a20,-          Assign a21, Assign a22, Assign a23, Assign a24, Assign a25,-          Assign a26, Assign a27, Assign a28) =>-         Assign-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27,-          a28)-         where-        (sig0, sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8, sig9, sig10,-         sig11, sig12, sig13, sig14, sig15, sig16, sig17, sig18, sig19,-         sig20, sig21, sig22, sig23, sig24, sig25, sig26, sig27, sig28)-          <=>-          (exprs0, exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7,-           exprs8, exprs9, exprs10, exprs11, exprs12, exprs13, exprs14,-           exprs15, exprs16, exprs17, exprs18, exprs19, exprs20, exprs21,-           exprs22, exprs23, exprs24, exprs25, exprs26, exprs27, exprs28)-          = outList-              [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,-               sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,-               sig7 <=> exprs7, sig8 <=> exprs8, sig9 <=> exprs9,-               sig10 <=> exprs10, sig11 <=> exprs11, sig12 <=> exprs12,-               sig13 <=> exprs13, sig14 <=> exprs14, sig15 <=> exprs15,-               sig16 <=> exprs16, sig17 <=> exprs17, sig18 <=> exprs18,-               sig19 <=> exprs19, sig20 <=> exprs20, sig21 <=> exprs21,-               sig22 <=> exprs22, sig23 <=> exprs23, sig24 <=> exprs24,-               sig25 <=> exprs25, sig26 <=> exprs26, sig27 <=> exprs27,-               sig28 <=> exprs28] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     - -instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4,-          Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10,-          Assign a11, Assign a12, Assign a13, Assign a14, Assign a15,-          Assign a16, Assign a17, Assign a18, Assign a19, Assign a20,-          Assign a21, Assign a22, Assign a23, Assign a24, Assign a25,-          Assign a26, Assign a27, Assign a28, Assign a29) =>-         Assign-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27,-          a28, a29)-         where-        (sig0, sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8, sig9, sig10,-         sig11, sig12, sig13, sig14, sig15, sig16, sig17, sig18, sig19,-         sig20, sig21, sig22, sig23, sig24, sig25, sig26, sig27, sig28,-         sig29)-          <=>-          (exprs0, exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7,-           exprs8, exprs9, exprs10, exprs11, exprs12, exprs13, exprs14,-           exprs15, exprs16, exprs17, exprs18, exprs19, exprs20, exprs21,-           exprs22, exprs23, exprs24, exprs25, exprs26, exprs27, exprs28,-           exprs29)-          = outList-              [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,-               sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,-               sig7 <=> exprs7, sig8 <=> exprs8, sig9 <=> exprs9,-               sig10 <=> exprs10, sig11 <=> exprs11, sig12 <=> exprs12,-               sig13 <=> exprs13, sig14 <=> exprs14, sig15 <=> exprs15,-               sig16 <=> exprs16, sig17 <=> exprs17, sig18 <=> exprs18,-               sig19 <=> exprs19, sig20 <=> exprs20, sig21 <=> exprs21,-               sig22 <=> exprs22, sig23 <=> exprs23, sig24 <=> exprs24,-               sig25 <=> exprs25, sig26 <=> exprs26, sig27 <=> exprs27,-               sig28 <=> exprs28, sig29 <=> exprs29] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             - -instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4,-          Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10,-          Assign a11, Assign a12, Assign a13, Assign a14, Assign a15,-          Assign a16, Assign a17, Assign a18, Assign a19, Assign a20,-          Assign a21, Assign a22, Assign a23, Assign a24, Assign a25,-          Assign a26, Assign a27, Assign a28, Assign a29, Assign a30) =>-         Assign-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27,-          a28, a29, a30)-         where-        (sig0, sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8, sig9, sig10,-         sig11, sig12, sig13, sig14, sig15, sig16, sig17, sig18, sig19,-         sig20, sig21, sig22, sig23, sig24, sig25, sig26, sig27, sig28,-         sig29, sig30)-          <=>-          (exprs0, exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7,-           exprs8, exprs9, exprs10, exprs11, exprs12, exprs13, exprs14,-           exprs15, exprs16, exprs17, exprs18, exprs19, exprs20, exprs21,-           exprs22, exprs23, exprs24, exprs25, exprs26, exprs27, exprs28,-           exprs29, exprs30)-          = outList-              [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,-               sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,-               sig7 <=> exprs7, sig8 <=> exprs8, sig9 <=> exprs9,-               sig10 <=> exprs10, sig11 <=> exprs11, sig12 <=> exprs12,-               sig13 <=> exprs13, sig14 <=> exprs14, sig15 <=> exprs15,-               sig16 <=> exprs16, sig17 <=> exprs17, sig18 <=> exprs18,-               sig19 <=> exprs19, sig20 <=> exprs20, sig21 <=> exprs21,-               sig22 <=> exprs22, sig23 <=> exprs23, sig24 <=> exprs24,-               sig25 <=> exprs25, sig26 <=> exprs26, sig27 <=> exprs27,-               sig28 <=> exprs28, sig29 <=> exprs29, sig30 <=> exprs30] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 - -instance (Assign a0, Assign a1, Assign a2, Assign a3, Assign a4,-          Assign a5, Assign a6, Assign a7, Assign a8, Assign a9, Assign a10,-          Assign a11, Assign a12, Assign a13, Assign a14, Assign a15,-          Assign a16, Assign a17, Assign a18, Assign a19, Assign a20,-          Assign a21, Assign a22, Assign a23, Assign a24, Assign a25,-          Assign a26, Assign a27, Assign a28, Assign a29, Assign a30,-          Assign a31) =>-         Assign-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27,-          a28, a29, a30, a31)-         where-        (sig0, sig1, sig2, sig3, sig4, sig5, sig6, sig7, sig8, sig9, sig10,-         sig11, sig12, sig13, sig14, sig15, sig16, sig17, sig18, sig19,-         sig20, sig21, sig22, sig23, sig24, sig25, sig26, sig27, sig28,-         sig29, sig30, sig31)-          <=>-          (exprs0, exprs1, exprs2, exprs3, exprs4, exprs5, exprs6, exprs7,-           exprs8, exprs9, exprs10, exprs11, exprs12, exprs13, exprs14,-           exprs15, exprs16, exprs17, exprs18, exprs19, exprs20, exprs21,-           exprs22, exprs23, exprs24, exprs25, exprs26, exprs27, exprs28,-           exprs29, exprs30, exprs31)-          = outList-              [sig0 <=> exprs0, sig1 <=> exprs1, sig2 <=> exprs2,-               sig3 <=> exprs3, sig4 <=> exprs4, sig5 <=> exprs5, sig6 <=> exprs6,-               sig7 <=> exprs7, sig8 <=> exprs8, sig9 <=> exprs9,-               sig10 <=> exprs10, sig11 <=> exprs11, sig12 <=> exprs12,-               sig13 <=> exprs13, sig14 <=> exprs14, sig15 <=> exprs15,-               sig16 <=> exprs16, sig17 <=> exprs17, sig18 <=> exprs18,-               sig19 <=> exprs19, sig20 <=> exprs20, sig21 <=> exprs21,-               sig22 <=> exprs22, sig23 <=> exprs23, sig24 <=> exprs24,-               sig25 <=> exprs25, sig26 <=> exprs26, sig27 <=> exprs27,-               sig28 <=> exprs28, sig29 <=> exprs29, sig30 <=> exprs30,-               sig31 <=> exprs31]+
src/CsoundExpr/Base/MultiOut.hs view
@@ -17,57 +17,24 @@     mo6,     mo7,     mo8,-    mo9,-    mo10,-    mo11,-    mo12,-    mo13,-    mo14,-    mo15,-    mo16,-    mo17,-    mo18,-    mo19,-    mo20,-    mo21,-    mo22,-    mo23,-    mo24,-    mo25,-    mo26,-    mo27,-    mo28,-    mo29,-    mo30,-    mo31,-    mo32,     moA1,     moA2,     moA3,     moA4,     moA6,     moA8,-    moA16,-    moA24,-    moA32,     moK1,     moK2,     moK3,     moK4,     moK6,     moK8,-    moK16,-    moK24,-    moK32,     moI1,     moI2,     moI3,     moI4,     moI6,-    moI8,-    moI16,-    moI24,-    moI32)+    moI8) where         import CsoundExpr.Translator.Types@@ -135,32 +102,8 @@      MultiOut ->        (Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate) moA8 = mo8 -           - -moA16 ::-      MultiOut ->-        (Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate,-         Arate, Arate, Arate, Arate, Arate, Arate, Arate)-moA16 = mo16                 -moA24 ::-      MultiOut ->-        (Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate,-         Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate,-         Arate, Arate, Arate, Arate, Arate, Arate)-moA24 = mo24 -             - -moA32 ::-      MultiOut ->-        (Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate,-         Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate,-         Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate, Arate,-         Arate, Arate, Arate, Arate, Arate)-moA32 = mo32 -             -  moK1 :: MultiOut -> (Krate) moK1 = mo1             @@ -186,31 +129,8 @@        (Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate) moK8 = mo8             - -moK16 ::-      MultiOut ->-        (Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate,-         Krate, Krate, Krate, Krate, Krate, Krate, Krate)-moK16 = mo16                 -moK24 ::-      MultiOut ->-        (Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate,-         Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate,-         Krate, Krate, Krate, Krate, Krate, Krate)-moK24 = mo24 -             - -moK32 ::-      MultiOut ->-        (Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate,-         Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate,-         Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate, Krate,-         Krate, Krate, Krate, Krate, Krate)-moK32 = mo32 -             -  moI1 :: MultiOut -> (Irate) moI1 = mo1             @@ -236,31 +156,8 @@        (Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate) moI8 = mo8             - -moI16 ::-      MultiOut ->-        (Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate,-         Irate, Irate, Irate, Irate, Irate, Irate, Irate)-moI16 = mo16                 -moI24 ::-      MultiOut ->-        (Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate,-         Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate,-         Irate, Irate, Irate, Irate, Irate, Irate)-moI24 = mo24 -             - -moI32 ::-      MultiOut ->-        (Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate,-         Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate,-         Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate, Irate,-         Irate, Irate, Irate, Irate, Irate)-moI32 = mo32 -             -  mo1 :: (X a0) => MultiOut -> (a0) mo1 x = (y0)   where y0 = rateMO rs $ labelMO 0 x@@ -348,883 +245,3 @@         rs           = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,              rateOf y5, rateOf y6, rateOf y7] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                              - -mo9 ::-      (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8) =>-      MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8)-mo9 x = (y0, y1, y2, y3, y4, y5, y6, y7, y8)-  where y0 = rateMO rs $ labelMO 0 x-        y1 = rateMO rs $ labelMO 1 x-        y2 = rateMO rs $ labelMO 2 x-        y3 = rateMO rs $ labelMO 3 x-        y4 = rateMO rs $ labelMO 4 x-        y5 = rateMO rs $ labelMO 5 x-        y6 = rateMO rs $ labelMO 6 x-        y7 = rateMO rs $ labelMO 7 x-        y8 = rateMO rs $ labelMO 8 x-        rs-          = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,-             rateOf y5, rateOf y6, rateOf y7, rateOf y8] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  - -mo10 ::-       (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9) =>-       MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9)-mo10 x = (y0, y1, y2, y3, y4, y5, y6, y7, y8, y9)-  where y0 = rateMO rs $ labelMO 0 x-        y1 = rateMO rs $ labelMO 1 x-        y2 = rateMO rs $ labelMO 2 x-        y3 = rateMO rs $ labelMO 3 x-        y4 = rateMO rs $ labelMO 4 x-        y5 = rateMO rs $ labelMO 5 x-        y6 = rateMO rs $ labelMO 6 x-        y7 = rateMO rs $ labelMO 7 x-        y8 = rateMO rs $ labelMO 8 x-        y9 = rateMO rs $ labelMO 9 x-        rs-          = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,-             rateOf y5, rateOf y6, rateOf y7, rateOf y8, rateOf y9] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       - -mo11 ::-       (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9,-        X a10) =>-       MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)-mo11 x = (y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10)-  where y0 = rateMO rs $ labelMO 0 x-        y1 = rateMO rs $ labelMO 1 x-        y2 = rateMO rs $ labelMO 2 x-        y3 = rateMO rs $ labelMO 3 x-        y4 = rateMO rs $ labelMO 4 x-        y5 = rateMO rs $ labelMO 5 x-        y6 = rateMO rs $ labelMO 6 x-        y7 = rateMO rs $ labelMO 7 x-        y8 = rateMO rs $ labelMO 8 x-        y9 = rateMO rs $ labelMO 9 x-        y10 = rateMO rs $ labelMO 10 x-        rs-          = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,-             rateOf y5, rateOf y6, rateOf y7, rateOf y8, rateOf y9, rateOf y10] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               - -mo12 ::-       (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10,-        X a11) =>-       MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11)-mo12 x = (y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11)-  where y0 = rateMO rs $ labelMO 0 x-        y1 = rateMO rs $ labelMO 1 x-        y2 = rateMO rs $ labelMO 2 x-        y3 = rateMO rs $ labelMO 3 x-        y4 = rateMO rs $ labelMO 4 x-        y5 = rateMO rs $ labelMO 5 x-        y6 = rateMO rs $ labelMO 6 x-        y7 = rateMO rs $ labelMO 7 x-        y8 = rateMO rs $ labelMO 8 x-        y9 = rateMO rs $ labelMO 9 x-        y10 = rateMO rs $ labelMO 10 x-        y11 = rateMO rs $ labelMO 11 x-        rs-          = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,-             rateOf y5, rateOf y6, rateOf y7, rateOf y8, rateOf y9, rateOf y10,-             rateOf y11] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    - -mo13 ::-       (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10,-        X a11, X a12) =>-       MultiOut -> (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12)-mo13 x = (y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12)-  where y0 = rateMO rs $ labelMO 0 x-        y1 = rateMO rs $ labelMO 1 x-        y2 = rateMO rs $ labelMO 2 x-        y3 = rateMO rs $ labelMO 3 x-        y4 = rateMO rs $ labelMO 4 x-        y5 = rateMO rs $ labelMO 5 x-        y6 = rateMO rs $ labelMO 6 x-        y7 = rateMO rs $ labelMO 7 x-        y8 = rateMO rs $ labelMO 8 x-        y9 = rateMO rs $ labelMO 9 x-        y10 = rateMO rs $ labelMO 10 x-        y11 = rateMO rs $ labelMO 11 x-        y12 = rateMO rs $ labelMO 12 x-        rs-          = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,-             rateOf y5, rateOf y6, rateOf y7, rateOf y8, rateOf y9, rateOf y10,-             rateOf y11, rateOf y12] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            - -mo14 ::-       (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10,-        X a11, X a12, X a13) =>-       MultiOut ->-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13)-mo14 x-  = (y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13)-  where y0 = rateMO rs $ labelMO 0 x-        y1 = rateMO rs $ labelMO 1 x-        y2 = rateMO rs $ labelMO 2 x-        y3 = rateMO rs $ labelMO 3 x-        y4 = rateMO rs $ labelMO 4 x-        y5 = rateMO rs $ labelMO 5 x-        y6 = rateMO rs $ labelMO 6 x-        y7 = rateMO rs $ labelMO 7 x-        y8 = rateMO rs $ labelMO 8 x-        y9 = rateMO rs $ labelMO 9 x-        y10 = rateMO rs $ labelMO 10 x-        y11 = rateMO rs $ labelMO 11 x-        y12 = rateMO rs $ labelMO 12 x-        y13 = rateMO rs $ labelMO 13 x-        rs-          = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,-             rateOf y5, rateOf y6, rateOf y7, rateOf y8, rateOf y9, rateOf y10,-             rateOf y11, rateOf y12, rateOf y13] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      - -mo15 ::-       (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10,-        X a11, X a12, X a13, X a14) =>-       MultiOut ->-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14)-mo15 x-  = (y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13, y14)-  where y0 = rateMO rs $ labelMO 0 x-        y1 = rateMO rs $ labelMO 1 x-        y2 = rateMO rs $ labelMO 2 x-        y3 = rateMO rs $ labelMO 3 x-        y4 = rateMO rs $ labelMO 4 x-        y5 = rateMO rs $ labelMO 5 x-        y6 = rateMO rs $ labelMO 6 x-        y7 = rateMO rs $ labelMO 7 x-        y8 = rateMO rs $ labelMO 8 x-        y9 = rateMO rs $ labelMO 9 x-        y10 = rateMO rs $ labelMO 10 x-        y11 = rateMO rs $ labelMO 11 x-        y12 = rateMO rs $ labelMO 12 x-        y13 = rateMO rs $ labelMO 13 x-        y14 = rateMO rs $ labelMO 14 x-        rs-          = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,-             rateOf y5, rateOf y6, rateOf y7, rateOf y8, rateOf y9, rateOf y10,-             rateOf y11, rateOf y12, rateOf y13, rateOf y14] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              - -mo16 ::-       (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10,-        X a11, X a12, X a13, X a14, X a15) =>-       MultiOut ->-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15)-mo16 x-  = (y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13, y14,-     y15)-  where y0 = rateMO rs $ labelMO 0 x-        y1 = rateMO rs $ labelMO 1 x-        y2 = rateMO rs $ labelMO 2 x-        y3 = rateMO rs $ labelMO 3 x-        y4 = rateMO rs $ labelMO 4 x-        y5 = rateMO rs $ labelMO 5 x-        y6 = rateMO rs $ labelMO 6 x-        y7 = rateMO rs $ labelMO 7 x-        y8 = rateMO rs $ labelMO 8 x-        y9 = rateMO rs $ labelMO 9 x-        y10 = rateMO rs $ labelMO 10 x-        y11 = rateMO rs $ labelMO 11 x-        y12 = rateMO rs $ labelMO 12 x-        y13 = rateMO rs $ labelMO 13 x-        y14 = rateMO rs $ labelMO 14 x-        y15 = rateMO rs $ labelMO 15 x-        rs-          = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,-             rateOf y5, rateOf y6, rateOf y7, rateOf y8, rateOf y9, rateOf y10,-             rateOf y11, rateOf y12, rateOf y13, rateOf y14, rateOf y15] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           - -mo17 ::-       (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10,-        X a11, X a12, X a13, X a14, X a15, X a16) =>-       MultiOut ->-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16)-mo17 x-  = (y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13, y14,-     y15, y16)-  where y0 = rateMO rs $ labelMO 0 x-        y1 = rateMO rs $ labelMO 1 x-        y2 = rateMO rs $ labelMO 2 x-        y3 = rateMO rs $ labelMO 3 x-        y4 = rateMO rs $ labelMO 4 x-        y5 = rateMO rs $ labelMO 5 x-        y6 = rateMO rs $ labelMO 6 x-        y7 = rateMO rs $ labelMO 7 x-        y8 = rateMO rs $ labelMO 8 x-        y9 = rateMO rs $ labelMO 9 x-        y10 = rateMO rs $ labelMO 10 x-        y11 = rateMO rs $ labelMO 11 x-        y12 = rateMO rs $ labelMO 12 x-        y13 = rateMO rs $ labelMO 13 x-        y14 = rateMO rs $ labelMO 14 x-        y15 = rateMO rs $ labelMO 15 x-        y16 = rateMO rs $ labelMO 16 x-        rs-          = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,-             rateOf y5, rateOf y6, rateOf y7, rateOf y8, rateOf y9, rateOf y10,-             rateOf y11, rateOf y12, rateOf y13, rateOf y14, rateOf y15,-             rateOf y16] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                - -mo18 ::-       (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10,-        X a11, X a12, X a13, X a14, X a15, X a16, X a17) =>-       MultiOut ->-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17)-mo18 x-  = (y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13, y14,-     y15, y16, y17)-  where y0 = rateMO rs $ labelMO 0 x-        y1 = rateMO rs $ labelMO 1 x-        y2 = rateMO rs $ labelMO 2 x-        y3 = rateMO rs $ labelMO 3 x-        y4 = rateMO rs $ labelMO 4 x-        y5 = rateMO rs $ labelMO 5 x-        y6 = rateMO rs $ labelMO 6 x-        y7 = rateMO rs $ labelMO 7 x-        y8 = rateMO rs $ labelMO 8 x-        y9 = rateMO rs $ labelMO 9 x-        y10 = rateMO rs $ labelMO 10 x-        y11 = rateMO rs $ labelMO 11 x-        y12 = rateMO rs $ labelMO 12 x-        y13 = rateMO rs $ labelMO 13 x-        y14 = rateMO rs $ labelMO 14 x-        y15 = rateMO rs $ labelMO 15 x-        y16 = rateMO rs $ labelMO 16 x-        y17 = rateMO rs $ labelMO 17 x-        rs-          = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,-             rateOf y5, rateOf y6, rateOf y7, rateOf y8, rateOf y9, rateOf y10,-             rateOf y11, rateOf y12, rateOf y13, rateOf y14, rateOf y15,-             rateOf y16, rateOf y17] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        - -mo19 ::-       (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10,-        X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18) =>-       MultiOut ->-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18)-mo19 x-  = (y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13, y14,-     y15, y16, y17, y18)-  where y0 = rateMO rs $ labelMO 0 x-        y1 = rateMO rs $ labelMO 1 x-        y2 = rateMO rs $ labelMO 2 x-        y3 = rateMO rs $ labelMO 3 x-        y4 = rateMO rs $ labelMO 4 x-        y5 = rateMO rs $ labelMO 5 x-        y6 = rateMO rs $ labelMO 6 x-        y7 = rateMO rs $ labelMO 7 x-        y8 = rateMO rs $ labelMO 8 x-        y9 = rateMO rs $ labelMO 9 x-        y10 = rateMO rs $ labelMO 10 x-        y11 = rateMO rs $ labelMO 11 x-        y12 = rateMO rs $ labelMO 12 x-        y13 = rateMO rs $ labelMO 13 x-        y14 = rateMO rs $ labelMO 14 x-        y15 = rateMO rs $ labelMO 15 x-        y16 = rateMO rs $ labelMO 16 x-        y17 = rateMO rs $ labelMO 17 x-        y18 = rateMO rs $ labelMO 18 x-        rs-          = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,-             rateOf y5, rateOf y6, rateOf y7, rateOf y8, rateOf y9, rateOf y10,-             rateOf y11, rateOf y12, rateOf y13, rateOf y14, rateOf y15,-             rateOf y16, rateOf y17, rateOf y18] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                - -mo20 ::-       (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10,-        X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19) =>-       MultiOut ->-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19)-mo20 x-  = (y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13, y14,-     y15, y16, y17, y18, y19)-  where y0 = rateMO rs $ labelMO 0 x-        y1 = rateMO rs $ labelMO 1 x-        y2 = rateMO rs $ labelMO 2 x-        y3 = rateMO rs $ labelMO 3 x-        y4 = rateMO rs $ labelMO 4 x-        y5 = rateMO rs $ labelMO 5 x-        y6 = rateMO rs $ labelMO 6 x-        y7 = rateMO rs $ labelMO 7 x-        y8 = rateMO rs $ labelMO 8 x-        y9 = rateMO rs $ labelMO 9 x-        y10 = rateMO rs $ labelMO 10 x-        y11 = rateMO rs $ labelMO 11 x-        y12 = rateMO rs $ labelMO 12 x-        y13 = rateMO rs $ labelMO 13 x-        y14 = rateMO rs $ labelMO 14 x-        y15 = rateMO rs $ labelMO 15 x-        y16 = rateMO rs $ labelMO 16 x-        y17 = rateMO rs $ labelMO 17 x-        y18 = rateMO rs $ labelMO 18 x-        y19 = rateMO rs $ labelMO 19 x-        rs-          = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,-             rateOf y5, rateOf y6, rateOf y7, rateOf y8, rateOf y9, rateOf y10,-             rateOf y11, rateOf y12, rateOf y13, rateOf y14, rateOf y15,-             rateOf y16, rateOf y17, rateOf y18, rateOf y19] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        - -mo21 ::-       (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10,-        X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19,-        X a20) =>-       MultiOut ->-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19, a20)-mo21 x-  = (y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13, y14,-     y15, y16, y17, y18, y19, y20)-  where y0 = rateMO rs $ labelMO 0 x-        y1 = rateMO rs $ labelMO 1 x-        y2 = rateMO rs $ labelMO 2 x-        y3 = rateMO rs $ labelMO 3 x-        y4 = rateMO rs $ labelMO 4 x-        y5 = rateMO rs $ labelMO 5 x-        y6 = rateMO rs $ labelMO 6 x-        y7 = rateMO rs $ labelMO 7 x-        y8 = rateMO rs $ labelMO 8 x-        y9 = rateMO rs $ labelMO 9 x-        y10 = rateMO rs $ labelMO 10 x-        y11 = rateMO rs $ labelMO 11 x-        y12 = rateMO rs $ labelMO 12 x-        y13 = rateMO rs $ labelMO 13 x-        y14 = rateMO rs $ labelMO 14 x-        y15 = rateMO rs $ labelMO 15 x-        y16 = rateMO rs $ labelMO 16 x-        y17 = rateMO rs $ labelMO 17 x-        y18 = rateMO rs $ labelMO 18 x-        y19 = rateMO rs $ labelMO 19 x-        y20 = rateMO rs $ labelMO 20 x-        rs-          = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,-             rateOf y5, rateOf y6, rateOf y7, rateOf y8, rateOf y9, rateOf y10,-             rateOf y11, rateOf y12, rateOf y13, rateOf y14, rateOf y15,-             rateOf y16, rateOf y17, rateOf y18, rateOf y19, rateOf y20] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                - -mo22 ::-       (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10,-        X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19,-        X a20, X a21) =>-       MultiOut ->-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19, a20, a21)-mo22 x-  = (y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13, y14,-     y15, y16, y17, y18, y19, y20, y21)-  where y0 = rateMO rs $ labelMO 0 x-        y1 = rateMO rs $ labelMO 1 x-        y2 = rateMO rs $ labelMO 2 x-        y3 = rateMO rs $ labelMO 3 x-        y4 = rateMO rs $ labelMO 4 x-        y5 = rateMO rs $ labelMO 5 x-        y6 = rateMO rs $ labelMO 6 x-        y7 = rateMO rs $ labelMO 7 x-        y8 = rateMO rs $ labelMO 8 x-        y9 = rateMO rs $ labelMO 9 x-        y10 = rateMO rs $ labelMO 10 x-        y11 = rateMO rs $ labelMO 11 x-        y12 = rateMO rs $ labelMO 12 x-        y13 = rateMO rs $ labelMO 13 x-        y14 = rateMO rs $ labelMO 14 x-        y15 = rateMO rs $ labelMO 15 x-        y16 = rateMO rs $ labelMO 16 x-        y17 = rateMO rs $ labelMO 17 x-        y18 = rateMO rs $ labelMO 18 x-        y19 = rateMO rs $ labelMO 19 x-        y20 = rateMO rs $ labelMO 20 x-        y21 = rateMO rs $ labelMO 21 x-        rs-          = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,-             rateOf y5, rateOf y6, rateOf y7, rateOf y8, rateOf y9, rateOf y10,-             rateOf y11, rateOf y12, rateOf y13, rateOf y14, rateOf y15,-             rateOf y16, rateOf y17, rateOf y18, rateOf y19, rateOf y20,-             rateOf y21] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     - -mo23 ::-       (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10,-        X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19,-        X a20, X a21, X a22) =>-       MultiOut ->-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19, a20, a21, a22)-mo23 x-  = (y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13, y14,-     y15, y16, y17, y18, y19, y20, y21, y22)-  where y0 = rateMO rs $ labelMO 0 x-        y1 = rateMO rs $ labelMO 1 x-        y2 = rateMO rs $ labelMO 2 x-        y3 = rateMO rs $ labelMO 3 x-        y4 = rateMO rs $ labelMO 4 x-        y5 = rateMO rs $ labelMO 5 x-        y6 = rateMO rs $ labelMO 6 x-        y7 = rateMO rs $ labelMO 7 x-        y8 = rateMO rs $ labelMO 8 x-        y9 = rateMO rs $ labelMO 9 x-        y10 = rateMO rs $ labelMO 10 x-        y11 = rateMO rs $ labelMO 11 x-        y12 = rateMO rs $ labelMO 12 x-        y13 = rateMO rs $ labelMO 13 x-        y14 = rateMO rs $ labelMO 14 x-        y15 = rateMO rs $ labelMO 15 x-        y16 = rateMO rs $ labelMO 16 x-        y17 = rateMO rs $ labelMO 17 x-        y18 = rateMO rs $ labelMO 18 x-        y19 = rateMO rs $ labelMO 19 x-        y20 = rateMO rs $ labelMO 20 x-        y21 = rateMO rs $ labelMO 21 x-        y22 = rateMO rs $ labelMO 22 x-        rs-          = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,-             rateOf y5, rateOf y6, rateOf y7, rateOf y8, rateOf y9, rateOf y10,-             rateOf y11, rateOf y12, rateOf y13, rateOf y14, rateOf y15,-             rateOf y16, rateOf y17, rateOf y18, rateOf y19, rateOf y20,-             rateOf y21, rateOf y22] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             - -mo24 ::-       (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10,-        X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19,-        X a20, X a21, X a22, X a23) =>-       MultiOut ->-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19, a20, a21, a22, a23)-mo24 x-  = (y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13, y14,-     y15, y16, y17, y18, y19, y20, y21, y22, y23)-  where y0 = rateMO rs $ labelMO 0 x-        y1 = rateMO rs $ labelMO 1 x-        y2 = rateMO rs $ labelMO 2 x-        y3 = rateMO rs $ labelMO 3 x-        y4 = rateMO rs $ labelMO 4 x-        y5 = rateMO rs $ labelMO 5 x-        y6 = rateMO rs $ labelMO 6 x-        y7 = rateMO rs $ labelMO 7 x-        y8 = rateMO rs $ labelMO 8 x-        y9 = rateMO rs $ labelMO 9 x-        y10 = rateMO rs $ labelMO 10 x-        y11 = rateMO rs $ labelMO 11 x-        y12 = rateMO rs $ labelMO 12 x-        y13 = rateMO rs $ labelMO 13 x-        y14 = rateMO rs $ labelMO 14 x-        y15 = rateMO rs $ labelMO 15 x-        y16 = rateMO rs $ labelMO 16 x-        y17 = rateMO rs $ labelMO 17 x-        y18 = rateMO rs $ labelMO 18 x-        y19 = rateMO rs $ labelMO 19 x-        y20 = rateMO rs $ labelMO 20 x-        y21 = rateMO rs $ labelMO 21 x-        y22 = rateMO rs $ labelMO 22 x-        y23 = rateMO rs $ labelMO 23 x-        rs-          = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,-             rateOf y5, rateOf y6, rateOf y7, rateOf y8, rateOf y9, rateOf y10,-             rateOf y11, rateOf y12, rateOf y13, rateOf y14, rateOf y15,-             rateOf y16, rateOf y17, rateOf y18, rateOf y19, rateOf y20,-             rateOf y21, rateOf y22, rateOf y23] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     - -mo25 ::-       (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10,-        X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19,-        X a20, X a21, X a22, X a23, X a24) =>-       MultiOut ->-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19, a20, a21, a22, a23, a24)-mo25 x-  = (y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13, y14,-     y15, y16, y17, y18, y19, y20, y21, y22, y23, y24)-  where y0 = rateMO rs $ labelMO 0 x-        y1 = rateMO rs $ labelMO 1 x-        y2 = rateMO rs $ labelMO 2 x-        y3 = rateMO rs $ labelMO 3 x-        y4 = rateMO rs $ labelMO 4 x-        y5 = rateMO rs $ labelMO 5 x-        y6 = rateMO rs $ labelMO 6 x-        y7 = rateMO rs $ labelMO 7 x-        y8 = rateMO rs $ labelMO 8 x-        y9 = rateMO rs $ labelMO 9 x-        y10 = rateMO rs $ labelMO 10 x-        y11 = rateMO rs $ labelMO 11 x-        y12 = rateMO rs $ labelMO 12 x-        y13 = rateMO rs $ labelMO 13 x-        y14 = rateMO rs $ labelMO 14 x-        y15 = rateMO rs $ labelMO 15 x-        y16 = rateMO rs $ labelMO 16 x-        y17 = rateMO rs $ labelMO 17 x-        y18 = rateMO rs $ labelMO 18 x-        y19 = rateMO rs $ labelMO 19 x-        y20 = rateMO rs $ labelMO 20 x-        y21 = rateMO rs $ labelMO 21 x-        y22 = rateMO rs $ labelMO 22 x-        y23 = rateMO rs $ labelMO 23 x-        y24 = rateMO rs $ labelMO 24 x-        rs-          = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,-             rateOf y5, rateOf y6, rateOf y7, rateOf y8, rateOf y9, rateOf y10,-             rateOf y11, rateOf y12, rateOf y13, rateOf y14, rateOf y15,-             rateOf y16, rateOf y17, rateOf y18, rateOf y19, rateOf y20,-             rateOf y21, rateOf y22, rateOf y23, rateOf y24] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             - -mo26 ::-       (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10,-        X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19,-        X a20, X a21, X a22, X a23, X a24, X a25) =>-       MultiOut ->-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25)-mo26 x-  = (y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13, y14,-     y15, y16, y17, y18, y19, y20, y21, y22, y23, y24, y25)-  where y0 = rateMO rs $ labelMO 0 x-        y1 = rateMO rs $ labelMO 1 x-        y2 = rateMO rs $ labelMO 2 x-        y3 = rateMO rs $ labelMO 3 x-        y4 = rateMO rs $ labelMO 4 x-        y5 = rateMO rs $ labelMO 5 x-        y6 = rateMO rs $ labelMO 6 x-        y7 = rateMO rs $ labelMO 7 x-        y8 = rateMO rs $ labelMO 8 x-        y9 = rateMO rs $ labelMO 9 x-        y10 = rateMO rs $ labelMO 10 x-        y11 = rateMO rs $ labelMO 11 x-        y12 = rateMO rs $ labelMO 12 x-        y13 = rateMO rs $ labelMO 13 x-        y14 = rateMO rs $ labelMO 14 x-        y15 = rateMO rs $ labelMO 15 x-        y16 = rateMO rs $ labelMO 16 x-        y17 = rateMO rs $ labelMO 17 x-        y18 = rateMO rs $ labelMO 18 x-        y19 = rateMO rs $ labelMO 19 x-        y20 = rateMO rs $ labelMO 20 x-        y21 = rateMO rs $ labelMO 21 x-        y22 = rateMO rs $ labelMO 22 x-        y23 = rateMO rs $ labelMO 23 x-        y24 = rateMO rs $ labelMO 24 x-        y25 = rateMO rs $ labelMO 25 x-        rs-          = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,-             rateOf y5, rateOf y6, rateOf y7, rateOf y8, rateOf y9, rateOf y10,-             rateOf y11, rateOf y12, rateOf y13, rateOf y14, rateOf y15,-             rateOf y16, rateOf y17, rateOf y18, rateOf y19, rateOf y20,-             rateOf y21, rateOf y22, rateOf y23, rateOf y24, rateOf y25] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     - -mo27 ::-       (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10,-        X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19,-        X a20, X a21, X a22, X a23, X a24, X a25, X a26) =>-       MultiOut ->-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26)-mo27 x-  = (y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13, y14,-     y15, y16, y17, y18, y19, y20, y21, y22, y23, y24, y25, y26)-  where y0 = rateMO rs $ labelMO 0 x-        y1 = rateMO rs $ labelMO 1 x-        y2 = rateMO rs $ labelMO 2 x-        y3 = rateMO rs $ labelMO 3 x-        y4 = rateMO rs $ labelMO 4 x-        y5 = rateMO rs $ labelMO 5 x-        y6 = rateMO rs $ labelMO 6 x-        y7 = rateMO rs $ labelMO 7 x-        y8 = rateMO rs $ labelMO 8 x-        y9 = rateMO rs $ labelMO 9 x-        y10 = rateMO rs $ labelMO 10 x-        y11 = rateMO rs $ labelMO 11 x-        y12 = rateMO rs $ labelMO 12 x-        y13 = rateMO rs $ labelMO 13 x-        y14 = rateMO rs $ labelMO 14 x-        y15 = rateMO rs $ labelMO 15 x-        y16 = rateMO rs $ labelMO 16 x-        y17 = rateMO rs $ labelMO 17 x-        y18 = rateMO rs $ labelMO 18 x-        y19 = rateMO rs $ labelMO 19 x-        y20 = rateMO rs $ labelMO 20 x-        y21 = rateMO rs $ labelMO 21 x-        y22 = rateMO rs $ labelMO 22 x-        y23 = rateMO rs $ labelMO 23 x-        y24 = rateMO rs $ labelMO 24 x-        y25 = rateMO rs $ labelMO 25 x-        y26 = rateMO rs $ labelMO 26 x-        rs-          = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,-             rateOf y5, rateOf y6, rateOf y7, rateOf y8, rateOf y9, rateOf y10,-             rateOf y11, rateOf y12, rateOf y13, rateOf y14, rateOf y15,-             rateOf y16, rateOf y17, rateOf y18, rateOf y19, rateOf y20,-             rateOf y21, rateOf y22, rateOf y23, rateOf y24, rateOf y25,-             rateOf y26] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          - -mo28 ::-       (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10,-        X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19,-        X a20, X a21, X a22, X a23, X a24, X a25, X a26, X a27) =>-       MultiOut ->-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27)-mo28 x-  = (y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13, y14,-     y15, y16, y17, y18, y19, y20, y21, y22, y23, y24, y25, y26, y27)-  where y0 = rateMO rs $ labelMO 0 x-        y1 = rateMO rs $ labelMO 1 x-        y2 = rateMO rs $ labelMO 2 x-        y3 = rateMO rs $ labelMO 3 x-        y4 = rateMO rs $ labelMO 4 x-        y5 = rateMO rs $ labelMO 5 x-        y6 = rateMO rs $ labelMO 6 x-        y7 = rateMO rs $ labelMO 7 x-        y8 = rateMO rs $ labelMO 8 x-        y9 = rateMO rs $ labelMO 9 x-        y10 = rateMO rs $ labelMO 10 x-        y11 = rateMO rs $ labelMO 11 x-        y12 = rateMO rs $ labelMO 12 x-        y13 = rateMO rs $ labelMO 13 x-        y14 = rateMO rs $ labelMO 14 x-        y15 = rateMO rs $ labelMO 15 x-        y16 = rateMO rs $ labelMO 16 x-        y17 = rateMO rs $ labelMO 17 x-        y18 = rateMO rs $ labelMO 18 x-        y19 = rateMO rs $ labelMO 19 x-        y20 = rateMO rs $ labelMO 20 x-        y21 = rateMO rs $ labelMO 21 x-        y22 = rateMO rs $ labelMO 22 x-        y23 = rateMO rs $ labelMO 23 x-        y24 = rateMO rs $ labelMO 24 x-        y25 = rateMO rs $ labelMO 25 x-        y26 = rateMO rs $ labelMO 26 x-        y27 = rateMO rs $ labelMO 27 x-        rs-          = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,-             rateOf y5, rateOf y6, rateOf y7, rateOf y8, rateOf y9, rateOf y10,-             rateOf y11, rateOf y12, rateOf y13, rateOf y14, rateOf y15,-             rateOf y16, rateOf y17, rateOf y18, rateOf y19, rateOf y20,-             rateOf y21, rateOf y22, rateOf y23, rateOf y24, rateOf y25,-             rateOf y26, rateOf y27] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  - -mo29 ::-       (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10,-        X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19,-        X a20, X a21, X a22, X a23, X a24, X a25, X a26, X a27, X a28) =>-       MultiOut ->-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27,-          a28)-mo29 x-  = (y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13, y14,-     y15, y16, y17, y18, y19, y20, y21, y22, y23, y24, y25, y26, y27,-     y28)-  where y0 = rateMO rs $ labelMO 0 x-        y1 = rateMO rs $ labelMO 1 x-        y2 = rateMO rs $ labelMO 2 x-        y3 = rateMO rs $ labelMO 3 x-        y4 = rateMO rs $ labelMO 4 x-        y5 = rateMO rs $ labelMO 5 x-        y6 = rateMO rs $ labelMO 6 x-        y7 = rateMO rs $ labelMO 7 x-        y8 = rateMO rs $ labelMO 8 x-        y9 = rateMO rs $ labelMO 9 x-        y10 = rateMO rs $ labelMO 10 x-        y11 = rateMO rs $ labelMO 11 x-        y12 = rateMO rs $ labelMO 12 x-        y13 = rateMO rs $ labelMO 13 x-        y14 = rateMO rs $ labelMO 14 x-        y15 = rateMO rs $ labelMO 15 x-        y16 = rateMO rs $ labelMO 16 x-        y17 = rateMO rs $ labelMO 17 x-        y18 = rateMO rs $ labelMO 18 x-        y19 = rateMO rs $ labelMO 19 x-        y20 = rateMO rs $ labelMO 20 x-        y21 = rateMO rs $ labelMO 21 x-        y22 = rateMO rs $ labelMO 22 x-        y23 = rateMO rs $ labelMO 23 x-        y24 = rateMO rs $ labelMO 24 x-        y25 = rateMO rs $ labelMO 25 x-        y26 = rateMO rs $ labelMO 26 x-        y27 = rateMO rs $ labelMO 27 x-        y28 = rateMO rs $ labelMO 28 x-        rs-          = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,-             rateOf y5, rateOf y6, rateOf y7, rateOf y8, rateOf y9, rateOf y10,-             rateOf y11, rateOf y12, rateOf y13, rateOf y14, rateOf y15,-             rateOf y16, rateOf y17, rateOf y18, rateOf y19, rateOf y20,-             rateOf y21, rateOf y22, rateOf y23, rateOf y24, rateOf y25,-             rateOf y26, rateOf y27, rateOf y28] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               - -mo30 ::-       (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10,-        X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19,-        X a20, X a21, X a22, X a23, X a24, X a25, X a26, X a27, X a28,-        X a29) =>-       MultiOut ->-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27,-          a28, a29)-mo30 x-  = (y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13, y14,-     y15, y16, y17, y18, y19, y20, y21, y22, y23, y24, y25, y26, y27,-     y28, y29)-  where y0 = rateMO rs $ labelMO 0 x-        y1 = rateMO rs $ labelMO 1 x-        y2 = rateMO rs $ labelMO 2 x-        y3 = rateMO rs $ labelMO 3 x-        y4 = rateMO rs $ labelMO 4 x-        y5 = rateMO rs $ labelMO 5 x-        y6 = rateMO rs $ labelMO 6 x-        y7 = rateMO rs $ labelMO 7 x-        y8 = rateMO rs $ labelMO 8 x-        y9 = rateMO rs $ labelMO 9 x-        y10 = rateMO rs $ labelMO 10 x-        y11 = rateMO rs $ labelMO 11 x-        y12 = rateMO rs $ labelMO 12 x-        y13 = rateMO rs $ labelMO 13 x-        y14 = rateMO rs $ labelMO 14 x-        y15 = rateMO rs $ labelMO 15 x-        y16 = rateMO rs $ labelMO 16 x-        y17 = rateMO rs $ labelMO 17 x-        y18 = rateMO rs $ labelMO 18 x-        y19 = rateMO rs $ labelMO 19 x-        y20 = rateMO rs $ labelMO 20 x-        y21 = rateMO rs $ labelMO 21 x-        y22 = rateMO rs $ labelMO 22 x-        y23 = rateMO rs $ labelMO 23 x-        y24 = rateMO rs $ labelMO 24 x-        y25 = rateMO rs $ labelMO 25 x-        y26 = rateMO rs $ labelMO 26 x-        y27 = rateMO rs $ labelMO 27 x-        y28 = rateMO rs $ labelMO 28 x-        y29 = rateMO rs $ labelMO 29 x-        rs-          = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,-             rateOf y5, rateOf y6, rateOf y7, rateOf y8, rateOf y9, rateOf y10,-             rateOf y11, rateOf y12, rateOf y13, rateOf y14, rateOf y15,-             rateOf y16, rateOf y17, rateOf y18, rateOf y19, rateOf y20,-             rateOf y21, rateOf y22, rateOf y23, rateOf y24, rateOf y25,-             rateOf y26, rateOf y27, rateOf y28, rateOf y29] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       - -mo31 ::-       (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10,-        X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19,-        X a20, X a21, X a22, X a23, X a24, X a25, X a26, X a27, X a28,-        X a29, X a30) =>-       MultiOut ->-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27,-          a28, a29, a30)-mo31 x-  = (y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13, y14,-     y15, y16, y17, y18, y19, y20, y21, y22, y23, y24, y25, y26, y27,-     y28, y29, y30)-  where y0 = rateMO rs $ labelMO 0 x-        y1 = rateMO rs $ labelMO 1 x-        y2 = rateMO rs $ labelMO 2 x-        y3 = rateMO rs $ labelMO 3 x-        y4 = rateMO rs $ labelMO 4 x-        y5 = rateMO rs $ labelMO 5 x-        y6 = rateMO rs $ labelMO 6 x-        y7 = rateMO rs $ labelMO 7 x-        y8 = rateMO rs $ labelMO 8 x-        y9 = rateMO rs $ labelMO 9 x-        y10 = rateMO rs $ labelMO 10 x-        y11 = rateMO rs $ labelMO 11 x-        y12 = rateMO rs $ labelMO 12 x-        y13 = rateMO rs $ labelMO 13 x-        y14 = rateMO rs $ labelMO 14 x-        y15 = rateMO rs $ labelMO 15 x-        y16 = rateMO rs $ labelMO 16 x-        y17 = rateMO rs $ labelMO 17 x-        y18 = rateMO rs $ labelMO 18 x-        y19 = rateMO rs $ labelMO 19 x-        y20 = rateMO rs $ labelMO 20 x-        y21 = rateMO rs $ labelMO 21 x-        y22 = rateMO rs $ labelMO 22 x-        y23 = rateMO rs $ labelMO 23 x-        y24 = rateMO rs $ labelMO 24 x-        y25 = rateMO rs $ labelMO 25 x-        y26 = rateMO rs $ labelMO 26 x-        y27 = rateMO rs $ labelMO 27 x-        y28 = rateMO rs $ labelMO 28 x-        y29 = rateMO rs $ labelMO 29 x-        y30 = rateMO rs $ labelMO 30 x-        rs-          = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,-             rateOf y5, rateOf y6, rateOf y7, rateOf y8, rateOf y9, rateOf y10,-             rateOf y11, rateOf y12, rateOf y13, rateOf y14, rateOf y15,-             rateOf y16, rateOf y17, rateOf y18, rateOf y19, rateOf y20,-             rateOf y21, rateOf y22, rateOf y23, rateOf y24, rateOf y25,-             rateOf y26, rateOf y27, rateOf y28, rateOf y29, rateOf y30] -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               - -mo32 ::-       (X a0, X a1, X a2, X a3, X a4, X a5, X a6, X a7, X a8, X a9, X a10,-        X a11, X a12, X a13, X a14, X a15, X a16, X a17, X a18, X a19,-        X a20, X a21, X a22, X a23, X a24, X a25, X a26, X a27, X a28,-        X a29, X a30, X a31) =>-       MultiOut ->-         (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14,-          a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27,-          a28, a29, a30, a31)-mo32 x-  = (y0, y1, y2, y3, y4, y5, y6, y7, y8, y9, y10, y11, y12, y13, y14,-     y15, y16, y17, y18, y19, y20, y21, y22, y23, y24, y25, y26, y27,-     y28, y29, y30, y31)-  where y0 = rateMO rs $ labelMO 0 x-        y1 = rateMO rs $ labelMO 1 x-        y2 = rateMO rs $ labelMO 2 x-        y3 = rateMO rs $ labelMO 3 x-        y4 = rateMO rs $ labelMO 4 x-        y5 = rateMO rs $ labelMO 5 x-        y6 = rateMO rs $ labelMO 6 x-        y7 = rateMO rs $ labelMO 7 x-        y8 = rateMO rs $ labelMO 8 x-        y9 = rateMO rs $ labelMO 9 x-        y10 = rateMO rs $ labelMO 10 x-        y11 = rateMO rs $ labelMO 11 x-        y12 = rateMO rs $ labelMO 12 x-        y13 = rateMO rs $ labelMO 13 x-        y14 = rateMO rs $ labelMO 14 x-        y15 = rateMO rs $ labelMO 15 x-        y16 = rateMO rs $ labelMO 16 x-        y17 = rateMO rs $ labelMO 17 x-        y18 = rateMO rs $ labelMO 18 x-        y19 = rateMO rs $ labelMO 19 x-        y20 = rateMO rs $ labelMO 20 x-        y21 = rateMO rs $ labelMO 21 x-        y22 = rateMO rs $ labelMO 22 x-        y23 = rateMO rs $ labelMO 23 x-        y24 = rateMO rs $ labelMO 24 x-        y25 = rateMO rs $ labelMO 25 x-        y26 = rateMO rs $ labelMO 26 x-        y27 = rateMO rs $ labelMO 27 x-        y28 = rateMO rs $ labelMO 28 x-        y29 = rateMO rs $ labelMO 29 x-        y30 = rateMO rs $ labelMO 30 x-        y31 = rateMO rs $ labelMO 31 x-        rs-          = [rateOf y0, rateOf y1, rateOf y2, rateOf y3, rateOf y4,-             rateOf y5, rateOf y6, rateOf y7, rateOf y8, rateOf y9, rateOf y10,-             rateOf y11, rateOf y12, rateOf y13, rateOf y14, rateOf y15,-             rateOf y16, rateOf y17, rateOf y18, rateOf y19, rateOf y20,-             rateOf y21, rateOf y22, rateOf y23, rateOf y24, rateOf y25,-             rateOf y26, rateOf y27, rateOf y28, rateOf y29, rateOf y30,-             rateOf y31]
src/CsoundExpr/Base/Pitch.hs view
@@ -2,79 +2,69 @@ -- | Csound pitch constants  module CsoundExpr.Base.Pitch -    (Pch, Oct,+    (     +     Pitch, Octave,+     low, high, lower, higher,++     -- * Pitch constants+     --+     -- | 'c' is 8.00, 'cs' is 8.01 etc.      c, cs, d, ds, e, es, f, fs, g, gs, a, as, b, bs,-     cb, db, eb, fb, gb, ab, bb, -     css, dss, ess, fss, gss, ass, bss,-     cbb, dbb, ebb, fbb, gbb, abb, bbb)+     cb, db, eb, fb, gb, ab, bb+    ) where  import CsoundExpr.Base -type Pch  = Irate-type Oct  = Int+type Pitch  = Irate+type Octave = Int --- natural, sharps+-- | 'high' shifts pitch one octave higher+high :: Pitch -> Pitch+high = higher 1 -c, cs, d, ds, e, es, f, fs, g, gs, a, as, b, bs :: Oct -> Pch+-- | 'low' shifts pitch one octave lower+low :: Pitch -> Pitch+low = lower 1 -c  = inDouble (8.00 + ) -cs = inDouble (8.01 + )-d  = inDouble (8.02 + )-ds = inDouble (8.03 + )-e  = inDouble (8.04 + )-f  = inDouble (8.05 + )-fs = inDouble (8.06 + )-g  = inDouble (8.07 + )-gs = inDouble (8.08 + )-a  = inDouble (8.09 + )-as = inDouble (8.10 + )-b  = inDouble (8.11 + )+-- | 'higher' shifts pitch by @n@ octaves higher+higher :: Octave -> Pitch -> Pitch+higher n = ( + (double $ fromIntegral n)) +-- | 'lower' shifts pitch by @n@ octaves lower+lower :: Octave -> Pitch -> Pitch+lower n = higher (-n) -inDouble :: (Double -> Double) -> Oct -> Pch-inDouble f = fromDouble . f . toDouble -    where toDouble   = fromInteger  . toInteger-          fromDouble = fromRational . toRational +-- natural, sharps +c, cs, d, ds, e, es, f, fs, g, gs, a, as, b, bs :: Pitch +c  = 8.00 +cs = 8.01+d  = 8.02+ds = 8.03+e  = 8.04+f  = 8.05+fs = 8.06+g  = 8.07+gs = 8.08+a  = 8.09+as = 8.10+b  = 8.11+ es = f-bs = c . (+1)+bs = high c  -- flats -cb, db, eb, fb, gb, ab, bb :: Oct -> Pch+cb, db, eb, fb, gb, ab, bb :: Pitch -cb = b . (\x -> x - 1)+cb = low b  db = cs eb = ds fb = e gb = fs ab = gs bb = as---- double sharps--css, dss, ess, fss, gss, ass, bss :: Oct -> Pch--css = d-dss = e-ess = fs-fss = g-gss = a-ass = b-bss = cs . (+1)---- double flats--cbb, dbb, ebb, fbb, gbb, abb, bbb :: Oct -> Pch--cbb = bb . (\x -> x - 1)-dbb = c-ebb = d-fbb = eb-gbb = f-abb = g-bbb = a 
src/CsoundExpr/Base/Pretty.hs view
@@ -1,11 +1,10 @@ module CsoundExpr.Base.Pretty(         Cs.CsoundFile, Cs.Flags,         Player, FileName,-        csd, play)+        csd, play, playDac) where  -import Temporal.Media(EventList) import qualified CsoundExpr.Translator.Cs.CsoundFile as Cs import CsoundExpr.Translator.Csd import CsoundExpr.Base.Header@@ -15,6 +14,7 @@ import System.Directory import qualified System.FilePath as FP  +import Temporal.Media(EventList)  --------------------------------------------------- ---------------------------------------------------@@ -34,6 +34,8 @@ -- -- Example (d minor) : --+-- >import Temporal.Music.Notation.Score+-- > -- >import CsoundExpr -- >import CsoundExpr.Opcodes -- >import CsoundExpr.Base.Pitch@@ -53,15 +55,13 @@ -- >instr :: Irate -> SignalOut -- >instr x = out $ oscilA [] (num 1000) (cpspch x) sinWave -- >--- >sco = fmap instr $ line $ map (note 1) [d 0, f 0, a 0, d 1]+-- >sco = fmap instr $ line $ map (note 1) [d, f, a, high d] -- >--- >main = print $ csd flags header $ toList sco-----csd :: Cs.Flags                     -- ^ flags -    -> Header                       -- ^ header section-    -> EventList Dur SignalOut      -- ^ score section-    -> Cs.CsoundFile                -- ^ csd file+-- >main = print $ csd flags header $ renderScore sco+csd :: Cs.Flags                 -- ^ flags +    -> Header                   -- ^ header section+    -> EventList Dur SignalOut  -- ^ score section+    -> Cs.CsoundFile            -- ^ csd file csd = toCsd  @@ -72,7 +72,7 @@ -- | 'play' writes 'CsoundFile' to file in temporal direcory,  -- executes csound on it, saves to .wav file, and invokes player ----- >play "totem" "~/temp" "song" $ csd flags header $ toList scores+-- >play "totem" "./temp" "song" $ csd flags header $ toList scores play :: Player -> FP.FilePath -> FileName -> Cs.CsoundFile -> IO ExitCode play playerCode tmpdir tmpfile csoundCode = do     writeFile fileCsd (show csoundCode)@@ -82,4 +82,15 @@ 	      fileWav = (tmpdir FP.</> tmpfile ++ ".wav")  	 	      csound  = (("csound -o " ++ fileWav ++ " ") ++ ) 	      player  = ((playerCode ++ " ") ++ )-	++-- | 'playDac' writes 'CsoundFile' to  in temporal direcory, +-- executes csound on it, and plays online+--+-- >playDac "./temp" "song" $ csd flags header $ toList scores+playDac :: FP.FilePath -> FileName -> Cs.CsoundFile -> IO ExitCode+playDac tmpdir tmpfile csoundCode = do+    writeFile fileCsd (show csoundCode)+    system $ csound fileCsd+	where fileCsd = (tmpdir FP.</> tmpfile ++ ".csd") +	      csound  = ("csound -odac " ++ )+
− src/CsoundExpr/Base/Score.hs
@@ -1,180 +0,0 @@-{-# LANGUAGE FlexibleContexts #-}-module CsoundExpr.Base.Score (-    -- * Types-	Time, Dur, Score, -    -- * Constructors-    rest, note, toList,-    -- * Duration querry-	dur, -    -- * Arrangers-    Arrangeable(..),-	line, chord, loop, trill, rondo, reprise, -    -- * Transformers-    -- ** In time domain-    delay, -    stretch, tstretch, -    cut, takeS, dropS, reverseS,-    pedal, pedalBy,-    sustain, sustainBy,-    -- ** Mappings-    tmap, dmap, tdmap, -    -- * Misc-    tmapRel, dmapRel, tdmapRel, tstretchRel,-    linseg-)-where--import CsoundExpr.Translator.Types(Time, Dur)-import qualified Temporal.Media as M-import Temporal.Media(Arrangeable(..), linseg)--import Control.Arrow(second)----- | representing score-type Score a = M.MediaUnit Dur () a----- | duration-dur :: M.Temporal Dur a => a -> Dur-dur = M.dur---- | pause-rest :: M.Temporal Dur a => Dur -> a-rest = M.none---- | stretch in time domain-stretch :: M.Stretchable Dur a => Dur -> a -> a-stretch = M.stretch---- | stretch in time domain depndent on note's time-tstretch :: M.TemporalStretchable Dur a => (Time -> Dur) -> a -> a-tstretch = M.tstretch---- | relative 'tstretch' ------ time normalized by durtion of value-tstretchRel :: M.TemporalStretchable Dur a => (Time -> Dur) -> a -> a-tstretchRel = M.tstretchRel---- | adds given amount of duration to all notes-sustain :: Dur -> Score a -> Score a-sustain = M.sustain---- | general sustain-sustainBy :: (Time -> Dur -> a -> (b, Dur)) -> Score a -> Score b-sustainBy = M.sustainBy---- | adds sustain, but total duration of score elements remains unchaged------ notes are sustained within total duration interval.--- adds given amount of time to all notes.-pedal :: Dur -> Score a -> Score a -pedal dt' = pedalBy (\t dt a -> (a, dt + dt'))---- | general \"pedal\"------ total duration of score element remains unchanged. notes are sustained within total duration interval-pedalBy :: (Time -> Dur -> a -> (b, Dur)) -> Score a -> Score b-pedalBy f x = M.sustainBy f' x-    where d = dur x-          f' t dt a = second (min (d - t)) $ f t dt a -                       -        ---- | constructor of score-note :: Dur -> a -> Score a-note = M.temp--delay :: (M.Temporal Dur a, Arrangeable a) => Dur -> a -> a-delay = M.delay---- | sequential composition-line :: Arrangeable a => [a] -> a-line = M.sequent---- | parallel composition-chord :: Arrangeable a => [a] -> a-chord = M.parallel--loop :: Arrangeable a => Int -> a -> a-loop = M.loop---- | loop for two groups of notes-trill :: Arrangeable a => Int -> a -> a -> a-trill n a b = loop n $ line [a, b]---- | rondo form------ >rondo a b c = line [a, b, a, c, a]-rondo :: Arrangeable a => a -> a -> a -> a-rondo a b c = line [a, b, a, c, a]---- | reprise form------ >reprise a b1 b2 = line [a, b1, a, b2]-reprise :: Arrangeable a => a -> a -> a -> a-reprise a b c = line [a, b, a, c]---- | extracting score parts in some time interval.--- it reverses output if @t1 < t0@.-cut :: Dur -> Dur -> Score a -> Score a-cut = M.cut---- | take sub-score from begining-takeS :: Dur -> Score a -> Score a-takeS = M.take---- | drop sub-score-dropS :: Dur -> Score a -> Score a-dropS = M.drop---- | reverse score-reverseS :: Score a -> Score a-reverseS = M.reverse---- | temporal functor 'tmap' method for scores------ map with time-tmap :: (Time -> a -> b) -> Score a -> Score b-tmap = M.tmap---- |  temporal functor 'dmap' method for scores------ map with duration-dmap :: (Dur -> a -> b) -> Score a -> Score b-dmap = M.dmap---- | temporal functor 'tdmap' method for scores------ map with time and duration-tdmap :: (Time -> Dur -> a -> b) -> Score a -> Score b-tdmap = M.tdmap----- | relative 'tmap' ------ map with time normalized by total duration value-tmapRel :: (Time -> a -> b) -> Score a -> Score b-tmapRel = M.tmapRel---- |  relative 'dmap' ------ map with duration normalized by total duration value-dmapRel :: (Dur -> a -> b) -> Score a -> Score b-dmapRel = M.dmapRel---- | relative 'tdmap'------ map with time and duration normalized by total duration value-tdmapRel :: (Time -> Dur -> a -> b) -> Score a -> Score b-tdmapRel = M.tdmapRel-------- | transform 'Score' to 'EventList'-toList :: Score a -> M.EventList Dur a-toList = M.fromMediaUnit (const id)-
src/CsoundExpr/Translator/Csd.hs view
@@ -3,7 +3,7 @@ where  import Text.PrettyPrint-import Temporal.Media(EventList, Temporal(..))+import Temporal.Media(EventList(..))   import qualified CsoundExpr.Translator.Cs.CsTree       as La@@ -44,6 +44,9 @@           tDur      = Cs.TotalDuration $ dur scores            scores'   = fmap fromSignalOut scores           (instr0, midi, order) = parseInits inits++dur :: EventList Dur a -> Dur+dur (EventList t xs) = t   ---------------------------------------------------------------
src/CsoundExpr/Translator/Score.hs view
@@ -6,7 +6,7 @@ import Data.Function  -import Temporal.Media(EventList(..))+import Temporal.Media(EventList(..), Event(..))  import qualified Data.Map as Map @@ -53,7 +53,7 @@ 		    (x:xs) -> let (x1, x2) = partition (pred x) xs 			      in  iterScoreList (res ++ [x : x1]) x2 	  pred = liftPredicateToList equalStructure `on` thd-	  toList (EventList _ xs) = xs+	  toList (EventList _ xs) = map (\(Event t d a) -> (t, d, a)) xs   foldVals :: [(Time, Time, [(NodeId, ValueId)])] -> ([(NodeId, PfieldId)], [Note])
− src/CsoundExpr/Tutorial.hs
@@ -1,37 +0,0 @@--{-|-    Csound-expression allows csound code construction in functional way.--    It has two parts "CsoundExpr.Base" and "CsoundExpr.Opcodes".-    "Csound.Base" contains essential functionality of the package. Csound code -    can be produced with "Csound.Base". "Csound.Opcodes" contains auxillary -    functions to build csound instruments.--    -    Tutorial contents :--    * "CsoundExpr.Tutorial.Intro"  -    --    * "CsoundExpr.Tutorial.Composition" --        score section--    * "CsoundExpr.Tutorial.Orchestra"--        orchestra section -        -    * "CsoundExpr.Tutorial.Limits"        -    -        explains hack-features, limitations--    -    Note :--    Feel free to report english-language bugs in tutorial or in docs.---}----module CsoundExpr.Tutorial where
− src/CsoundExpr/Tutorial/Composition.hs
@@ -1,318 +0,0 @@-{-|-    Module "CsoundExpr.Base.Score" provides functions to -    construct csound's score section--    * Prev : "CsoundExpr.Tutorial.Intro"--    * Next : "CsoundExpr.Tutorial.Orchestra" --}---module CsoundExpr.Tutorial.Composition (    -    -- * EventList-    {-|     -    'EventList' contains values with time marks. -    Value begins at some time and lasts for some time (see temporal-media package)-    'EventList' can be constructed from 'Score' with 'toList' function. -    -}-    exmpEventList,--    -- * Score-    -    {-|-    'Score' is tree structure that represents music. Lists contain notes and nodes-    contain information about how subtrees relate to each other in time. -    Subtrees can be sequential or parallel. 'csd' function takes in 'EventList' -    'Double' 'SignalOut'. 'Double' is type  of time-marks. 'SignalOut' represents -    instrument structure. -    -}-    exmpScore,--    -- * Score's instances-    -- | Score is a Functor, Monad, Temporal, Stretchable, Arrangeable and TemporalFunctor-    -    -- ** Functor-    -- | It makes possible to represent csound's instrument as-    -- a function from note representation to 'SignalOut'.    -    -- -    -- To play on instrument means to apply instrument to 'Score'-    -- of its notes.-    ---    -- >-- oscillator instrument-    -- >instr :: Irate -> SignalOut-    -- >instr x = out $ oscilA [] (num 1000) (cpspch x) $ gen10 4096 [1]-    -- >-    -- >exmpScoFunctor = fmap instr $ line $ map (note 1) [d 0, f 0, a 0, d 1]--    exmpScoFunctor,-    -- ** Monad       -        -    {-|-        Gives way to more structured composition.--    -        @return a@ makes note of @a@ that lasts for 1 sec.-        @ma >>= f@ is better understood by its @join@ function.--        >ma >>= f = joinScore $ fmap f ma-        >-        >joinScore :: Score (Score a) -> Score a--        @'Score' a@ is a tree. Nodes represent sequent/parallel -        composition and leaves represent value @a@ or rest that lasts -        for some time @t@. 'joinScore' takes in 'Score' that contains some more -        'Score' 's in its leaves, and builds one tree by substituting -        values of Scores by Scores. Note that while substituting it stretches -        duration of 'Score' by duration of value.  --        >type ChordType = [Irate]-        >-        >majC, minC :: ChordType-        >-        >majC = [0, 0.04, 0.07]  -- in csound 0.01 is one half-tone-        >minC = [0, 0.03, 0.07]-        >-        >arpeggi :: (Irate, ChordType) -> Score Irate-        >arpeggi baseNote chordType = line $ map return (pchs ++ pchs)-        >   where pchs = map ((+ baseNote) . (chordType !! )) [0, 1, 2, 1, 2, 1]    -        >-        >harmony = line $ map return -        >    [(e 0, minC), (a (-1), minC), (d 0, majC),    (g 0, majC),-        >     (c 0, majC), (f 0, minC),    (b (-1), majC), (e 0, minC)]-        >-        >sco = harmony >>= arpeggi-    -}--    exmpScoMonad,-    -- ** Temporal-    -    {-| There are two methods defined on 'Temporal' objects. -        -        >none :: Dur -> a  -- construct rest-        >dur  :: a -> Dur  -- ask for duration-    -}--    exmpScoTemporal,-    -- ** Stretchable-    -    {-| Stretching things in time domain with 'stretch' method.--        > stretch :: Dur -> a -> a-    -}--    exmpScoStretchable,-    -- ** Arrangeable-    ---    exmpScoArrangeable,--    -- | Constructing things in sequent '(+:+)' and parallel ways '(=:=)'-    -    -- ** TemporalFunctor-    {-|-    There is class called 'TemporalFunctor' with methods for time/duration dependent mapping.-    There are methods -    -    -    'tmap' - for time dependent mapping, -    -    'dmap' - for duration dependent mapping and--    'tdmap' - for time/duration dependent mapping. -    --    >class Dur t => TemporalFunctor f where-    >    tmap  :: (t -> a -> b)      -> f a -> f b-    >    dmap  :: (t -> a -> b)      -> f a -> f b-    >    tdmap :: (t -> t -> a -> b) -> f a -> f b--    Note in 'Score' can be thought of as an event that happens in some time @t@ -    and lasts for some time @d@. Thus note carries three parametters value @a@, start time @t@ -    and duration time @d@. 'TemporalFunctor' provides different mappings over time parameters.--    First argument of 'tmap' function means function from start time of-    note and note's value @a@ to new value @b@---    example : fadeOut--    >instr :: Irate -> SignalOut-    >instr vol = out $ oscilA [] vol (num 440) $ gen10 4096 [1]-    >-    >sco = fmap instr $ tmap (\t v -> double (5 - t) * v) $ loop 5 $ note 1 1000    --    First argument of dmap's function means function from duration -    of value @t@ and value itself @a@ to new value @b@.--    It allows to construct instruments that can rely on note duration.--    >instr :: Dur -> Irate -> SignalOut-    >instr t vol = out $ (env t <*> ) $ fst $ se1 $ unirandA vol-    >   where env t-    >           | t < 1     = lineK  1 idur 0-    >           | otherwise = exponK 1 idur 0-    >-    >v1 = 1.5 * v0-    >v0 = 5000-    >-    >sco = dmap instr $ line [note 0.5 v1, note 0.5 v0, rest 1, note 2 v1]--    Note : --    >stretch t (dmap instr sco) =/= dmap instr (stretch t sco)--    'tdmap' combines 'tmap' and 'dmap' behavior. It's first argument is a function from-    time, duration and value to value.--    There are helping functions 'tmapRel', 'dmapRel' and 'tdmapRel'. They express -    time/duration dependent mapping with normalization in time domain. All time values are notmalized by -    total duration of value.--    @sco@ of fadeOut example can be rewritten as--    >sco = fmap instr $ tmapRel (\t v -> double (1 - t) * v ) $ loop 5 $ note 1 5000 --   -}--    exmpScoTemporalFunctor,--    -- * Example--    -- | radiohead - weird fishes (intro), see src-   main--    )where--import Temporal.Media(EventList)--import CsoundExpr.Base-import CsoundExpr.Base.Pitch-import CsoundExpr.Opcodes hiding (delay)--exmpEventList :: EventList Double Irate-exmpEventList = toList $ line $ map (note 1) [c 0, d 0, e 0, f 0, g 0, a 0, b 0, c 1]---exmpScore :: Score String-exmpScore = note 1 "hello" +:+ rest 1 +:+ note 1 "world"---- oscilator instrument-instr :: Irate -> SignalOut-instr x = out $ oscilA [] (num 1000) (cpspch x) $ gen10 4096 [1]--exmpScoFunctor = fmap instr $ line $ map (note 1) [d 0, f 0, a 0, d 1]---type ChordType = [Irate]--majC, minC :: ChordType--majC = [0, 0.04, 0.07]  -- in csound 0.01 is one half-tone-minC = [0, 0.03, 0.07]--arpeggi :: Irate -> ChordType -> Score Irate-arpeggi baseNote chordType = line $ map return (pchs ++ pchs)-   where pchs = map ((+ baseNote) . (chordType !! )) [0, 1, 2, 1, 2, 1]    --harmony = line $ map return -    [(e 0, minC), (a (-1), minC), (d 0, majC),    (g 0, majC),-     (c 0, majC), (f 0, minC),    (b (-1), majC), (e 0, minC)]--exmpScoMonad = harmony >>= uncurry arpeggi--exmpScoTemporal = dur exmpScoMonad--exmpScoStretchable = stretch 2 exmpScoMonad--exmpScoArrangeable = exmpScore---instrT :: Dur -> Irate -> SignalOut-instrT t vol = out $ (env t <*> ) $ fst $ se1 $ unirandA vol-   where env t-           | t < 1     = lineK  1 idur 0-           | otherwise = exponK 1 idur 0--exmpScoTemporalFunctor = tmap instrT $ line [note 0.5 v1, note 0.5 v0, rest 1, note 2 v1]-------------------------------------------------------------- example ------ radiohead - weird fishes (intro)--mapSnd f (a, b) = (a, f b)---flags = "-d"---- volume levels--v1 = 1.3 * v0-v0 = 7000 ---- instruments--pluckInstr :: (Irate, Irate) -> SignalOut -pluckInstr (amp, pch) = outList [-	out $ env <*> wgpluck2 0.75 amp (cpspch pch) (num 0.75) (num 0.5), -	xtratim 1]-	where env = linsegrK [0, idur * 0.05, 1,  idur * 0.9, 1] 1 0  --guitar = pluckInstr . mapSnd (+ (-1))-----chords--guitarChord1, guitarChord2, guitarChord3 :: [Irate] -> Score (Irate, Irate)---- volumes 4/4-vs x = map ( * x) $ cycle [v1, v0, v0, v0]---- guitar 1-guitarChord1 = line . map return . zip (vs 1) . concat . replicate 10--ch11 = [d 1, g 0, e 0]-ch12 = map ( + 0.02) ch11-ch13 = [a 1, a 0, cs 1]-ch14 = [fs 1, b 0, g 0]--chSeq1 = line $ map return $ [ch11, ch12, ch13, ch14]---- guitar 2-guitarChord2 = line . map return . zip (vs 0.5) . concat . replicate 6 . arpeggi-	where arpeggi x = x ++ take 2 x---ch21 = [g 0, d 1, e 1]-ch22 = map (+ 0.02) ch21-ch23 = [cs 1, e 1, a 1]-ch24 = [d 1, g 1, e 1]--chSeq2 = line $ map return $ [ch21, ch22, ch23, ch24]---- guitar 3-guitarChord3 = line . map return . zip (vs 0.2) . concat . replicate 6 . arpeggi-	where arpeggi x = take 2 x ++ x--ch31 = [e 1, g 1, b 1]-ch32 = map (+ 0.02) ch31-ch33 = [fs 1, a 1, cs 2]-ch34 = [d 2, g 1, b 1]--chSeq3 = line $ map return $ [ch31, ch32, ch33, ch34]---- scores--scoG1 = fmap guitar $ chSeq1 >>= guitarChord1-scoG2 = fmap guitar $ chSeq2 >>= guitarChord2-scoG3 = fmap guitar $ chSeq3 >>= guitarChord3--scoG2intro = cut (3*30) (4*30) scoG2--intro  = chord [scoG1, scoG3, delay (3*30) scoG2intro]-chords = loop 3 $ chord [scoG1, scoG2, scoG3] --sco = stretch 0.17 $ intro +:+ chords--main = print $ csd flags headerMono $ toList sco -
− src/CsoundExpr/Tutorial/Intro.hs
@@ -1,128 +0,0 @@-{-|-    Csound-expression is csound code generator. Program produces value of 'CsoundFile' type. -    'CsoundFile' is 'Show'. So that is the way to get csound code. 'csd' function can be invoked-    to make value of 'CsoundFile' type.         --    >csd :: Flags -> Header -> EventList Dur SignalOut -> CsoundFile--    * 'Flags' is 'String'. It's pasted in place of csounds flags. --    * 'Header' is csound header declaration. -        See "CsoundExpr.Base.Header" for more details.--    * 'EventList' represents csound orchestra and score sections. -        This tutorial is all about how to construct 'EventList'.-   --    'EventList'---    'EventList' contains values with time marks. -    Value begins at some time and lasts for some time (see temporal-media package)-    'EventList' can be constructed from 'Score' with 'toList' function. --    'Score'---    'Score' is tree structure that represents music. Lists contain notes and nodes-    contain information about how subtrees relate to each other in time. -    Subtrees can be sequential or parallel. Module "CsoundExpr.Base.Score" exposes-    combinators for 'EventList' / 'Score' building.-    'csd' function takes in 'EventList' 'Double' 'SignalOut'. 'Double' is type -    of time-marks. 'SignalOut' represents instrument structure. ---    Let's make first simple csound code block. -    It plays d minor chord wih oscilator.--    >import CsoundExpr-    >import CsoundExpr.Opcodes(out, oscilA, cpspch)-    >import CsoundExpr.Base.Pitch-    > -    >flags  = "-d -o dm.wav"-    >-    >-- (<=>)  - assignment operator-    >-- instr0 - packs assignent statements in header statement-    >setup :: SignalInit-    >setup = instr0 [-    >        gSr     <=> 44100,-    >        gKr     <=> 4410,-    >        gKsmps  <=> 10,-    >        gNchnls <=> 1]-    >-    >header :: Header-    >header = [setup]-    >-    >-- gen routine (see CsoundExpr.Base.Gens)-    >sinWave :: Irate-    >sinWave = gen10 4096 [1] -    >-    >-- oscilator instrument-    >instr :: Irate -> SignalOut-    >instr x = out $ oscilA [] (num 1000) (cpspch x) sinWave-    >-    >-- line, note - Score constructors (see CsoundExpr.Base.Score)-    >-- Score is a Functor, so it's possible to use instruments as-    >--   functions on abstract note representation.-    >--   here note is represented with pitch value of type Irate -    >--   (Irate is csound's init value) -    >---    >sco = fmap instr $ line $ map (note 1) [d 0, f 0, a 0, d 1]-    >-    >-    >-- toList - converts Score to EventList (see CsoundExpr.Base.Score)-    >dmCode = csd flags header $ toList sco---    * Prev : "CsoundExpr.Tutorial"--    * Next : "CsoundExpr.Tutorial.Composition"--}--------module CsoundExpr.Tutorial.Intro (-        dmCode-        )-where----import CsoundExpr-import CsoundExpr.Opcodes-import CsoundExpr.Base.Pitch- -flags  = "-o dm.wav"---- (<=>)  - assignment operator--- instr0 - packs assignent statements in header statement-setup = instr0 [-        gSr     <=> 44100,-        gKr     <=> 4410,-        gKsmps  <=> 10,-        gNchnls <=> 1]--header = [setup]---- gen routine-sinWave = gen10 4096 [1]---- oscilator instrument-instr :: Irate -> SignalOut-instr x = out $ oscilA [] (num 1000) (cpspch x) sinWave---- line, note - Score constructors (see CsoundExpr.Base.Score)--- Score is a Functor, so it's possible to use instruments as---   functions on abstract note representation.---   here note is represented with pitch value of type Irate ---   (Irate is csound's init value) ----sco = fmap instr $ line $ map (note 1) [d 0, f 0, a 0, d 1]----- toList - converts Score to EventList-dmCode = csd flags header $ toList sco----
− src/CsoundExpr/Tutorial/Limits.hs
@@ -1,83 +0,0 @@---- | This chapter explains some limitations and hack-features of library.--------- * Prev : "CsoundExpr.Tutorial.Orchestra"------ * Next : <http://www.csounds.com/manual/html/index.html>---module CsoundExpr.Tutorial.Limits ( -    -- * What can not be expressed -    -    -    -- ** ids-    {-| -        The major benefit and major problem of csound-expression is -        abscense of ids for p-fields, ftables, notes and instruments.-        -    -        no ids for ... means ... no --        p-fields/notes - opcodes that rely on p-fields or invoke instruments--        ftables - k-rate ftables--        instruments - convenient way to specify order of instruments-    -}--    -- ** program flow control-    -        -- |  there is no program flow control opcodes (like if, then, goto)--    -- ** Srate--        -- | i've decided to represent csound's S-rate with 'String'.-        -- -        -- Signal is represented with tree and it means i can't include-        -- opcodes that produce Srate--    -- * hack-way around (what somehow can be expressed)--    -- ** instrument order-    {-|-        Orchestra section is generated from 'EventList'. Different instruments-        have different tree structure and one instrument's tree can't be -        transformed into another one by replacing leaf-values only. --        You can point to instrument by its structure. There is opcode in -        "CsoundExpr.Base.Header" that specifies order of instruments by-        list of notes. 'instrOrder' takes in list of notes, if instrument's-        tree is equivalent to note it is placed in relation to list of notes.--        There are ways to make mistake. Sometimes it's unpredictable. -        -        -        In example below --        @q1 =/= q2@--        @sco@ contains two instruments (one with @x@, and another one with @cpspch x@)--        >-        >osc x = oscilA [] (num 1000) x $ gen10 4096 [1]-        >env   = lineK 1 idur 0-        >-        >q1 x = osc x <*> env-        >q2 x = env   <*> osc x-        >-        >sco1 = note 1 440-        >sco2 = note 1 $ cpspch 8.00-        >-        >sco = fmap q1 $ sco1 +:+ sco2--        I think maybe it's worthwhile to introduce some way of instrument id-        assignment.-    -}--    -    )--where--
− src/CsoundExpr/Tutorial/Orchestra.hs
@@ -1,317 +0,0 @@--- | Guide to instrument-making------ * Prev : "CsoundExpr.Tutorial.Composition"------ * Next : "CsoundExpr.Tutorial.Limits"---module CsoundExpr.Tutorial.Orchestra (--    -- * Instruments--    {-|-    Instruments are functions from some signal representation to signal. -    'Score' is a 'Functor', so to play on instrument means to apply instrument -    to 'Score' of its notes. Instrument can be made with opcodes.-    Translator derives p-fields from instrument structure. There are only-    two explicit p-fields 'itime' and 'idur' (@p2@ and @p3@ in csound).-    -}--    exmpInstr,--    -- * Signals / Types--    {-|-    Signals are represented with trees. Tree contains information about how -    signal was build. -    -    There are five types for signals ("CsoundExpr.Base.Types").--    'Arate' is audio rate signal--    'Krate' is control rate signal--    'Irate' is init value-   -    'SignalOut' is no output at all (it's produced by opcodes like out, outs, xtratim) --    'BoolRate' is comparision of two control or init rate signals--    -    There are two classes to allow csound's polymorphism : 'X' and 'K'--    'X' = 'Arate' | 'Krate' | 'Irate'--    'K' = 'Krate' | 'Irate'---    Csound's S - signal is represented with 'String'.-    Ftable is represented with 'Irate'.--    -    There are two special types 'MultiOut' -    (for opcodes that may produce several outputs, see "CsoundExpr.Base.MultiOut")-    and 'SideEffect' -    (for opcodes that rely on number of appearances in csound code, -     like @unirand@, see "CsoundExpr.Base.SideEffect")    -    -}--    -- * Opcodes --    {-|-        Naming conventions : Opcodes are named after csound's counterparts usually.-        Some opcodes in csound can produce signals of different rates by request (oscil, linseg).-        Those opcodes are labelled with suffix. Suffix defines output rate of signal (oscilA, oscilK). -        Some opcodes in csound have unfixed number of inputs due to setup parameters, almost all of them.-        Those opcodes have first argument that is list of setup parameters.--        example--        >oscilA :: (X a, X b) => [Irate] -> a -> b -> Irate -> Arate-        >oscilK :: (K a, K b) => [Irate] -> a -> b -> Irate -> Krate        -    -}---    -- * Imperative style csound code-    -    {-|-        Most of csound opcodes can be used in functional way. You can plug them in one another, -        and make expressions, but some of them behave like procedures and rely on order -        of execution in instrument. Module "CsoundExpr.Base.Imperative" provides functions-        to write imperative csound code. --        'outList' - to sequence procedures--        '(/<=/>)' - Assignment--        'ar', 'kr', 'ir', 'gar', 'gkr', 'gir' - named values, to produce signal with specified name and rate.--        -        Functional style :--        >exmpInstr :: Irate -> SignalOut-        >exmpInstr pch = out $ oscilA [] (num 1000) (cpspch pch) $ gen10 4096 [1]---        Imperative style :--        >exmpImper :: Irate -> SignalOut -        >exmpImper pch = outList [        -        >        ir "amp" <=> num 1000,-        >        ir "cps" <=> cpspch pch,-        >        ir "ft"  <=> gen10 4096 [1],-        >        ar "sig" <=> oscilA [] (ir "amp") (ir "cps") (ir "ft"),-        >        out (ar "sig")]--    -}-    -    exmpImper,-    -- * Arithmetic-    {-|-        You can use polymorphic operations to do some arihmetic on signals -        from "CsoundExpr.Base.Arithmetic". And Signal is 'Num'. 'Eq' is undefined though.                    -    -}--    exmpArith,-    -- * Preview--    {-|-        To see what will come out of an expression you can print it. Signal is 'Show'.-    -}-    exmpPreview,---    -- * User Defined opcodes--    {-|-        You can add your own opcodes to library, see "CsoundExpr.Base.UserDefined"-    -}--    -- * MIDI -    -    {-|-        There are two ways to tell 'csd' to include instrument in csound file. -        Instrument can be a part of 'Score' or it can be midi instrument, then it should-        be mentioned in 'massign' or 'pgmassign' function. If you want to play midi-instr-        for some time @t@, you can tell it to 'csd' function by invoking 'csd' with @'rest' t@-        in place of 'EventList' value.--        >flags = "-odac -iadc  -+rtmidi=virtual -M0"-        >-        >header = [massign [] 1 instrMidi]-        >-        >instrMidi :: SignalOut-        >instrMidi = out $ oscilA [] (num 1000) cpsmidi $ gen10 4096 [1]-        >-        >-- play instrMidi for 2 minutes-        >exmpMidi = print $ csd flags header (rest 120)--    -}-    exmpMidi,--    -- * Example    -    -- | Song, see src--    main-)-- where--import CsoundExpr.Base-import CsoundExpr.Base.Pitch-import CsoundExpr.Opcodes hiding (delay)----------------------------------------exmpInstr :: Irate -> SignalOut-exmpInstr pch = out $ oscilA [] (num 1000) (cpspch pch) $ gen10 4096 [1]--exmpImper :: Irate -> SignalOut -exmpImper pch = outList [        -        ir "amp" <=> num 1000,-        ir "cps" <=> cpspch pch,-        ir "ft"  <=> gen10 4096 [1],-        ar "sig" <=> oscilA [] (ir "amp") (ir "cps") (ir "ft"),-        out (ar "sig")]---exmpArith pch = out $ (env <*>) $ oscilA [] (num 1000) (cpspch pch) $ gen10 4096 [1]-    where env = lineK 1 idur 0---exmpPreview = mapM_ print $ map ( $ (a 1)) [exmpInstr, exmpImper, exmpArith] --flagsMidi = "-odac -iadc  -+rtmidi=virtual -M0"--header = [massign [] 1 instrMidi]--instrMidi :: SignalOut-instrMidi = out $ oscilA [] (num 1000) cpsmidi $ gen10 4096 [1]---- play instrMidi for 2 minutes-exmpMidi = print $ csd flagsMidi header (rest 120)-------------------------------------------------------------------------------------------------------------------------------------- Example------ Song-----mapSnd f (a, b) = (a, f b) --flags  = "-d"--dot = stretch 1.5--wn = note 1-hn = note 0.5-qn = note 0.25-en = note 0.125---sinWave = gen10 4096 [1]-expWave = gen05 4096 [0.01, 4070, 1, 26, 0.01]---- volume levels-----v1 = 1.3 * v0-v0 = 10000 	---- instruments------- plucked--pluckInstr :: (Irate, Irate) -> SignalOut -pluckInstr (amp, pch) = outList [-	out $ env <*> wgpluck2 0.75 amp (cpspch pch) (num 0.75) (num 0.5), -	xtratim 1]-	where env = linsegrK [0, idur * 0.05, 1,  idur * 0.9, 1] 1 0  --guitar = pluckInstr . mapSnd (+ (-1))-bass   = pluckInstr . mapSnd (+ (-2))---- drums--qCabasa = out $ cabasa [] 9000 0.01-qBamboo = out $ bamboo [] (num 2500) 0.01--shh = out $ (env <*> ) $ fst $ se1 $ unirandA (num 1000)-	where env = exponK 1 idur 0.001---- aahs --aahs :: Dur -> (Irate, Irate) -> SignalOut-aahs t (amp, pch) -	| t < tShort = out $ env1 <*> osc pch-	| otherwise  = outList [out $ env2 <*> osc pch, xtratim 1] -	where osc x  = oscilA [] amp (cpspch x) tab-	      env1   = linsegK  $ norm (ps ++ [0.025, 0])-	      env2   = linsegrK (norm $ ps ++ [0.025, 1]) 1 0 	-	      norm   = zipWith (<*>) (cycle [1, idur])-	      tab    = gen10 4096 [1, 0.7, 0.2, 0.7] 		-	      tShort = 0.6/2	-	      ps     = [0, 0.5, 0.2, 0.25, 0.3, 0.125, 0.5, 0.1, 1 :: Irate] 	----- piece------- chords--bassChord, guitarChord :: (Irate, Irate, Irate, Irate) -> Score (Irate, Irate)--bassChord (n1, _, _, _) = loop 4 $ line $ map en [(v1, n1), (v0, n1), (v0, n1), (v0, n1)]--guitarChord (n1, n2, n3, n4) = line $ [qn (v1, n1)] ++ -	map (dot . qn) [(v0, n3), (v0, n2), (v1, n4), (v0, n3)] ++ [qn (v0, n4)]---ch1 = (b (-1), d 0, a 0, cs 1)-ch2 = (   d 0, fs 0, cs 1, d 1)-ch3 = (g (-1), a (-1), fs 0, g 0)--chordSeq = line $ map wn [ch1, ch2, ch1, ch3]---- solo--soloNotes :: [Irate] -> Score (Irate, Irate)-soloNotes notes = stretch 2 $  -	(line $ map return notes) >>= pulse--pulse :: Irate -> Score (Irate, Irate)-pulse = line . zipWith note durs . zip vols . repeat-	where vols = map ((0.3 * v0) *)  [0.2, 0.4, 0.6, 0.8, 0.6, 0.4]-	      durs = norm [1, 1.2 , 1, 1, 1, 1.5]	-	      norm xs = map ( /sum xs) xs	  ---- scores--scoBamboo = stretch 0.5 $ loop 15 $ delay 1 $ line $ map (note 1) $ replicate 3 qBamboo-scoCabasa = loop (4*16) $ line [rest 0.25, qn qCabasa]-scoShh    = delay 2 $ loop 8 $ line [wn shh, rest 3]--scoDrums = chord [scoBamboo, delay 12 scoCabasa, delay 12 scoShh]--scoGuitar = fmap guitar $ chordSeq >>= guitarChord-scoBass   = fmap bass   $ chordSeq >>= bassChord--accomp = chord [-		delay 4  $ loop 5 scoGuitar, -		delay 12 $ loop 4 scoBass, -		scoDrums] --scoAahs1 = loop 2 $ dmap aahs $ soloNotes [d 1, cs 1, e 0, fs 0]-scoAahs2 = loop 2 $ dmap aahs $ soloNotes [d 1, cs 1, a 0, d 0]-scoAahs3 = loop 2 $ dmap aahs $ soloNotes [a 0, cs 1, g 0, fs 0]--solo = delay 20 $ chord [-		scoAahs1,-	delay 5 $ stretch 1.3 scoAahs2,-	delay 7 $ stretch 1.5 scoAahs3]--sco = stretch 2.0 $ chord [solo, accomp]  --main = print $ csd flags headerMono $ toList sco