mezzo-0.3.0.0: Typesafe music composition

Copyright(c) Dima Szamozvancev
LicenseMIT
Maintainerds709@cam.ac.uk
Stabilityexperimental
Portabilityportable
Safe HaskellSafe
LanguageHaskell2010

Mezzo.Model.Reify

Contents

Description

Class of types which can be reified at the term level.

Synopsis

Documentation

class Primitive a where Source #

Class of types which can have a primitive representation at runtime.

Minimal complete definition

prim, pretty

Associated Types

type Rep a Source #

The type of the primitive representation.

Methods

prim :: sing a -> Rep a Source #

Convert a singleton of the type into its primitive representation.

pretty :: sing a -> String Source #

Pretty print a singleton of the type.

Instances

Primitive IntervalClass Maj Source # 

Associated Types

type Rep Maj (a :: Maj) :: * Source #

Methods

prim :: sing a -> Rep Maj a Source #

pretty :: sing a -> String Source #

Primitive IntervalClass Perf Source # 

Associated Types

type Rep Perf (a :: Perf) :: * Source #

Methods

prim :: sing a -> Rep Perf a Source #

pretty :: sing a -> String Source #

Primitive IntervalClass Min Source # 

Associated Types

type Rep Min (a :: Min) :: * Source #

Methods

prim :: sing a -> Rep Min a Source #

pretty :: sing a -> String Source #

Primitive IntervalClass Aug Source # 

Associated Types

type Rep Aug (a :: Aug) :: * Source #

Methods

prim :: sing a -> Rep Aug a Source #

pretty :: sing a -> String Source #

Primitive IntervalClass Dim Source # 

Associated Types

type Rep Dim (a :: Dim) :: * Source #

Methods

prim :: sing a -> Rep Dim a Source #

pretty :: sing a -> String Source #

Primitive IntervalSize Unison Source # 

Associated Types

type Rep Unison (a :: Unison) :: * Source #

Methods

prim :: sing a -> Rep Unison a Source #

pretty :: sing a -> String Source #

Primitive IntervalSize Second Source # 

Associated Types

type Rep Second (a :: Second) :: * Source #

Methods

prim :: sing a -> Rep Second a Source #

pretty :: sing a -> String Source #

Primitive IntervalSize Third Source # 

Associated Types

type Rep Third (a :: Third) :: * Source #

Methods

prim :: sing a -> Rep Third a Source #

pretty :: sing a -> String Source #

Primitive IntervalSize Fourth Source # 

Associated Types

type Rep Fourth (a :: Fourth) :: * Source #

Methods

prim :: sing a -> Rep Fourth a Source #

pretty :: sing a -> String Source #

Primitive IntervalSize Fifth Source # 

Associated Types

type Rep Fifth (a :: Fifth) :: * Source #

Methods

prim :: sing a -> Rep Fifth a Source #

pretty :: sing a -> String Source #

Primitive IntervalSize Sixth Source # 

Associated Types

type Rep Sixth (a :: Sixth) :: * Source #

Methods

prim :: sing a -> Rep Sixth a Source #

pretty :: sing a -> String Source #

Primitive IntervalSize Seventh Source # 

Associated Types

type Rep Seventh (a :: Seventh) :: * Source #

Methods

prim :: sing a -> Rep Seventh a Source #

pretty :: sing a -> String Source #

Primitive IntervalSize Octave Source # 

Associated Types

type Rep Octave (a :: Octave) :: * Source #

Methods

prim :: sing a -> Rep Octave a Source #

pretty :: sing a -> String Source #

Primitive ScaleDegree I Source # 

Associated Types

type Rep I (a :: I) :: * Source #

Methods

prim :: sing a -> Rep I a Source #

pretty :: sing a -> String Source #

Primitive ScaleDegree II Source # 

Associated Types

type Rep II (a :: II) :: * Source #

Methods

prim :: sing a -> Rep II a Source #

pretty :: sing a -> String Source #

Primitive ScaleDegree III Source # 

Associated Types

type Rep III (a :: III) :: * Source #

Methods

prim :: sing a -> Rep III a Source #

pretty :: sing a -> String Source #

Primitive ScaleDegree IV Source # 

Associated Types

type Rep IV (a :: IV) :: * Source #

Methods

prim :: sing a -> Rep IV a Source #

pretty :: sing a -> String Source #

Primitive ScaleDegree V Source # 

Associated Types

type Rep V (a :: V) :: * Source #

Methods

prim :: sing a -> Rep V a Source #

pretty :: sing a -> String Source #

Primitive ScaleDegree VI Source # 

Associated Types

type Rep VI (a :: VI) :: * Source #

Methods

prim :: sing a -> Rep VI a Source #

pretty :: sing a -> String Source #

Primitive ScaleDegree VII Source # 

Associated Types

type Rep VII (a :: VII) :: * Source #

Methods

prim :: sing a -> Rep VII a Source #

pretty :: sing a -> String Source #

Primitive Mode MajorMode Source # 

Associated Types

type Rep MajorMode (a :: MajorMode) :: * Source #

Methods

prim :: sing a -> Rep MajorMode a Source #

pretty :: sing a -> String Source #

Primitive Mode MinorMode Source # 

Associated Types

type Rep MinorMode (a :: MinorMode) :: * Source #

Methods

prim :: sing a -> Rep MinorMode a Source #

pretty :: sing a -> String Source #

Primitive PitchType Silence Source # 

Associated Types

type Rep Silence (a :: Silence) :: * Source #

Methods

prim :: sing a -> Rep Silence a Source #

pretty :: sing a -> String Source #

Primitive OctaveNum Oct_1 Source # 

Associated Types

type Rep Oct_1 (a :: Oct_1) :: * Source #

Methods

prim :: sing a -> Rep Oct_1 a Source #

pretty :: sing a -> String Source #

Primitive OctaveNum Oct0 Source # 

Associated Types

type Rep Oct0 (a :: Oct0) :: * Source #

Methods

prim :: sing a -> Rep Oct0 a Source #

pretty :: sing a -> String Source #

Primitive OctaveNum Oct1 Source # 

Associated Types

type Rep Oct1 (a :: Oct1) :: * Source #

Methods

prim :: sing a -> Rep Oct1 a Source #

pretty :: sing a -> String Source #

Primitive OctaveNum Oct2 Source # 

Associated Types

type Rep Oct2 (a :: Oct2) :: * Source #

Methods

prim :: sing a -> Rep Oct2 a Source #

pretty :: sing a -> String Source #

Primitive OctaveNum Oct3 Source # 

Associated Types

type Rep Oct3 (a :: Oct3) :: * Source #

Methods

prim :: sing a -> Rep Oct3 a Source #

pretty :: sing a -> String Source #

Primitive OctaveNum Oct4 Source # 

Associated Types

type Rep Oct4 (a :: Oct4) :: * Source #

Methods

prim :: sing a -> Rep Oct4 a Source #

pretty :: sing a -> String Source #

Primitive OctaveNum Oct5 Source # 

Associated Types

type Rep Oct5 (a :: Oct5) :: * Source #

Methods

prim :: sing a -> Rep Oct5 a Source #

pretty :: sing a -> String Source #

Primitive OctaveNum Oct6 Source # 

Associated Types

type Rep Oct6 (a :: Oct6) :: * Source #

Methods

prim :: sing a -> Rep Oct6 a Source #

pretty :: sing a -> String Source #

Primitive OctaveNum Oct7 Source # 

Associated Types

type Rep Oct7 (a :: Oct7) :: * Source #

Methods

prim :: sing a -> Rep Oct7 a Source #

pretty :: sing a -> String Source #

Primitive OctaveNum Oct8 Source # 

Associated Types

type Rep Oct8 (a :: Oct8) :: * Source #

Methods

prim :: sing a -> Rep Oct8 a Source #

pretty :: sing a -> String Source #

Primitive Accidental Natural Source # 

Associated Types

type Rep Natural (a :: Natural) :: * Source #

Methods

prim :: sing a -> Rep Natural a Source #

pretty :: sing a -> String Source #

Primitive Accidental Flat Source # 

Associated Types

type Rep Flat (a :: Flat) :: * Source #

Methods

prim :: sing a -> Rep Flat a Source #

pretty :: sing a -> String Source #

Primitive Accidental Sharp Source # 

Associated Types

type Rep Sharp (a :: Sharp) :: * Source #

Methods

prim :: sing a -> Rep Sharp a Source #

pretty :: sing a -> String Source #

Primitive PitchClass C Source # 

Associated Types

type Rep C (a :: C) :: * Source #

Methods

prim :: sing a -> Rep C a Source #

pretty :: sing a -> String Source #

Primitive PitchClass D Source # 

Associated Types

type Rep D (a :: D) :: * Source #

Methods

prim :: sing a -> Rep D a Source #

pretty :: sing a -> String Source #

Primitive PitchClass E Source # 

Associated Types

type Rep E (a :: E) :: * Source #

Methods

prim :: sing a -> Rep E a Source #

pretty :: sing a -> String Source #

Primitive PitchClass F Source # 

Associated Types

type Rep F (a :: F) :: * Source #

Methods

prim :: sing a -> Rep F a Source #

pretty :: sing a -> String Source #

Primitive PitchClass G Source # 

Associated Types

type Rep G (a :: G) :: * Source #

Methods

prim :: sing a -> Rep G a Source #

pretty :: sing a -> String Source #

Primitive PitchClass A Source # 

Associated Types

type Rep A (a :: A) :: * Source #

Methods

prim :: sing a -> Rep A a Source #

pretty :: sing a -> String Source #

Primitive PitchClass B Source # 

Associated Types

type Rep B (a :: B) :: * Source #

Methods

prim :: sing a -> Rep B a Source #

pretty :: sing a -> String Source #

Primitive Inversion Inv0 Source # 

Associated Types

type Rep Inv0 (a :: Inv0) :: * Source #

Methods

prim :: sing a -> Rep Inv0 a Source #

pretty :: sing a -> String Source #

Primitive Inversion Inv1 Source # 

Associated Types

type Rep Inv1 (a :: Inv1) :: * Source #

Methods

prim :: sing a -> Rep Inv1 a Source #

pretty :: sing a -> String Source #

Primitive Inversion Inv2 Source # 

Associated Types

type Rep Inv2 (a :: Inv2) :: * Source #

Methods

prim :: sing a -> Rep Inv2 a Source #

pretty :: sing a -> String Source #

Primitive Inversion Inv3 Source # 

Associated Types

type Rep Inv3 (a :: Inv3) :: * Source #

Methods

prim :: sing a -> Rep Inv3 a Source #

pretty :: sing a -> String Source #

Primitive TetradType MajSeventh Source # 

Associated Types

type Rep MajSeventh (a :: MajSeventh) :: * Source #

Methods

prim :: sing a -> Rep MajSeventh a Source #

pretty :: sing a -> String Source #

Primitive TetradType MajMinSeventh Source # 

Associated Types

type Rep MajMinSeventh (a :: MajMinSeventh) :: * Source #

Methods

prim :: sing a -> Rep MajMinSeventh a Source #

pretty :: sing a -> String Source #

Primitive TetradType MinSeventh Source # 

Associated Types

type Rep MinSeventh (a :: MinSeventh) :: * Source #

Methods

prim :: sing a -> Rep MinSeventh a Source #

pretty :: sing a -> String Source #

Primitive TetradType HalfDimSeventh Source # 

Associated Types

type Rep HalfDimSeventh (a :: HalfDimSeventh) :: * Source #

Methods

prim :: sing a -> Rep HalfDimSeventh a Source #

pretty :: sing a -> String Source #

Primitive TetradType DimSeventh Source # 

Associated Types

type Rep DimSeventh (a :: DimSeventh) :: * Source #

Methods

prim :: sing a -> Rep DimSeventh a Source #

pretty :: sing a -> String Source #

Primitive TriadType MajTriad Source # 

Associated Types

type Rep MajTriad (a :: MajTriad) :: * Source #

Methods

prim :: sing a -> Rep MajTriad a Source #

pretty :: sing a -> String Source #

Primitive TriadType MinTriad Source # 

Associated Types

type Rep MinTriad (a :: MinTriad) :: * Source #

Methods

prim :: sing a -> Rep MinTriad a Source #

pretty :: sing a -> String Source #

Primitive TriadType AugTriad Source # 

Associated Types

type Rep AugTriad (a :: AugTriad) :: * Source #

Methods

prim :: sing a -> Rep AugTriad a Source #

pretty :: sing a -> String Source #

Primitive TriadType DimTriad Source # 

Associated Types

type Rep DimTriad (a :: DimTriad) :: * Source #

Methods

prim :: sing a -> Rep DimTriad a Source #

pretty :: sing a -> String Source #

Primitive DyadType MinThird Source # 

Associated Types

type Rep MinThird (a :: MinThird) :: * Source #

Methods

prim :: sing a -> Rep MinThird a Source #

pretty :: sing a -> String Source #

Primitive DyadType MajThird Source # 

Associated Types

type Rep MajThird (a :: MajThird) :: * Source #

Methods

prim :: sing a -> Rep MajThird a Source #

pretty :: sing a -> String Source #

Primitive DyadType PerfFourth Source # 

Associated Types

type Rep PerfFourth (a :: PerfFourth) :: * Source #

Methods

prim :: sing a -> Rep PerfFourth a Source #

pretty :: sing a -> String Source #

Primitive DyadType PerfFifth Source # 

Associated Types

type Rep PerfFifth (a :: PerfFifth) :: * Source #

Methods

prim :: sing a -> Rep PerfFifth a Source #

pretty :: sing a -> String Source #

Primitive DyadType PerfOct Source # 

Associated Types

type Rep PerfOct (a :: PerfOct) :: * Source #

Methods

prim :: sing a -> Rep PerfOct a Source #

pretty :: sing a -> String Source #

IntRep PitchType p => Primitive RootType (PitchRoot p) Source # 

Associated Types

type Rep (PitchRoot p) (a :: PitchRoot p) :: * Source #

Methods

prim :: sing a -> Rep (PitchRoot p) a Source #

pretty :: sing a -> String Source #

FunRep TriadType Int [Int] c => Primitive TetradType (DoubledT c) Source # 

Associated Types

type Rep (DoubledT c) (a :: DoubledT c) :: * Source #

Methods

prim :: sing a -> Rep (DoubledT c) a Source #

pretty :: sing a -> String Source #

FunRep DyadType Int [Int] c => Primitive TriadType (DoubledD c) Source # 

Associated Types

type Rep (DoubledD c) (a :: DoubledD c) :: * Source #

Methods

prim :: sing a -> Rep (DoubledD c) a Source #

pretty :: sing a -> String Source #

(FunRep IntervalClass Int Int ic, IntRep IntervalSize is) => Primitive IntervalType (Interval ic is) Source # 

Associated Types

type Rep (Interval ic is) (a :: Interval ic is) :: * Source #

Methods

prim :: sing a -> Rep (Interval ic is) a Source #

pretty :: sing a -> String Source #

(IntRep PitchType p, (~) PitchType (RootToPitch (DegreeRoot k deg)) p, Primitive DegreeType deg, Primitive KeyType k) => Primitive RootType (DegreeRoot k deg) Source # 

Associated Types

type Rep (DegreeRoot k deg) (a :: DegreeRoot k deg) :: * Source #

Methods

prim :: sing a -> Rep (DegreeRoot k deg) a Source #

pretty :: sing a -> String Source #

(IntRep PitchClass pc, IntRep Accidental acc, BoolRep Mode mo) => Primitive KeyType (Key pc acc mo) Source # 

Associated Types

type Rep (Key pc acc mo) (a :: Key pc acc mo) :: * Source #

Methods

prim :: sing a -> Rep (Key pc acc mo) a Source #

pretty :: sing a -> String Source #

(IntRep ScaleDegree sd, IntRep Accidental acc, IntRep OctaveNum oct) => Primitive DegreeType (Degree sd acc oct) Source # 

Associated Types

type Rep (Degree sd acc oct) (a :: Degree sd acc oct) :: * Source #

Methods

prim :: sing a -> Rep (Degree sd acc oct) a Source #

pretty :: sing a -> String Source #

(IntRep PitchClass pc, IntRep Accidental acc, IntRep OctaveNum oct) => Primitive PitchType (Pitch pc acc oct) Source # 

Associated Types

type Rep (Pitch pc acc oct) (a :: Pitch pc acc oct) :: * Source #

Methods

prim :: sing a -> Rep (Pitch pc acc oct) a Source #

pretty :: sing a -> String Source #

IntRep PitchType p => Primitive * (Root (PitchRoot p)) Source # 

Associated Types

type Rep (Root (PitchRoot p)) (a :: Root (PitchRoot p)) :: * Source #

Methods

prim :: sing a -> Rep (Root (PitchRoot p)) a Source #

pretty :: sing a -> String Source #

(IntRep RootType r, FunRep DyadType Int [Int] t, FunRep Inversion [Int] [Int] i) => Primitive (ChordType 2) (Dyad r t i) Source # 

Associated Types

type Rep (Dyad r t i) (a :: Dyad r t i) :: * Source #

Methods

prim :: sing a -> Rep (Dyad r t i) a Source #

pretty :: sing a -> String Source #

(IntRep RootType r, FunRep TriadType Int [Int] t, FunRep Inversion [Int] [Int] i) => Primitive (ChordType 3) (Triad r t i) Source # 

Associated Types

type Rep (Triad r t i) (a :: Triad r t i) :: * Source #

Methods

prim :: sing a -> Rep (Triad r t i) a Source #

pretty :: sing a -> String Source #

(IntRep RootType r, FunRep DyadType Int [Int] dt, FunRep Inversion [Int] [Int] i) => Primitive (ChordType 3) (Triad r (DoubledD dt) i) Source # 

Associated Types

type Rep (Triad r (DoubledD dt) i) (a :: Triad r (DoubledD dt) i) :: * Source #

Methods

prim :: sing a -> Rep (Triad r (DoubledD dt) i) a Source #

pretty :: sing a -> String Source #

(IntRep RootType r, FunRep TetradType Int [Int] t, FunRep Inversion [Int] [Int] i) => Primitive (ChordType 4) (Tetrad r t i) Source # 

Associated Types

type Rep (Tetrad r t i) (a :: Tetrad r t i) :: * Source #

Methods

prim :: sing a -> Rep (Tetrad r t i) a Source #

pretty :: sing a -> String Source #

(IntRep RootType r, FunRep TriadType Int [Int] tt, FunRep Inversion [Int] [Int] i) => Primitive (ChordType 4) (Tetrad r (DoubledT tt) i) Source # 

Associated Types

type Rep (Tetrad r (DoubledT tt) i) (a :: Tetrad r (DoubledT tt) i) :: * Source #

Methods

prim :: sing a -> Rep (Tetrad r (DoubledT tt) i) a Source #

pretty :: sing a -> String Source #

((~) (ChordType 4) ch (DegToChord V DomQ k Inv2 o d), IntListRep (ChordType 4) ch) => Primitive (Dominant k 1) (DomV7 k o d) Source # 

Associated Types

type Rep (DomV7 k o d) (a :: DomV7 k o d) :: * Source #

Methods

prim :: sing a -> Rep (DomV7 k o d) a Source #

pretty :: sing a -> String Source #

((~) (ChordType 4) ch (DegToChord V MajQ k Inv2 o d), IntListRep (ChordType 4) ch) => Primitive (Dominant k 1) (DomVM k o d) Source # 

Associated Types

type Rep (DomVM k o d) (a :: DomVM k o d) :: * Source #

Methods

prim :: sing a -> Rep (DomVM k o d) a Source #

pretty :: sing a -> String Source #

((~) (ChordType 4) ch (DegToChord I (KeyToQual k) k Inv0 o d), IntListRep (ChordType 4) ch) => Primitive (Tonic k 1) (TonT k o d) Source # 

Associated Types

type Rep (TonT k o d) (a :: TonT k o d) :: * Source #

Methods

prim :: sing a -> Rep (TonT k o d) a Source #

pretty :: sing a -> String Source #

IntLListRep (Tonic k l) t => Primitive (Phrase k l) (PhraseI k l t) Source # 

Associated Types

type Rep (PhraseI k l t) (a :: PhraseI k l t) :: * Source #

Methods

prim :: sing a -> Rep (PhraseI k l t) a Source #

pretty :: sing a -> String Source #

IntLListRep (Cadence k l) c => Primitive (ProgType k l) (CadPhrase k l c) Source # 

Associated Types

type Rep (CadPhrase k l c) (a :: CadPhrase k l c) :: * Source #

Methods

prim :: sing a -> Rep (CadPhrase k l c) a Source #

pretty :: sing a -> String Source #

((~) (ChordType 4) ch (DegToChord IV (KeyToQual k) k i o d), IntListRep (ChordType 4) ch) => Primitive (Subdominant k 1) (SubIV k i o d) Source # 

Associated Types

type Rep (SubIV k i o d) (a :: SubIV k i o d) :: * Source #

Methods

prim :: sing a -> Rep (SubIV k i o d) a Source #

pretty :: sing a -> String Source #

((~) (ChordType 4) ch (DegToChord II MinQ k i o d), IntListRep (ChordType 4) ch) => Primitive (Subdominant k 1) (SubIIm k i o d) Source # 

Associated Types

type Rep (SubIIm k i o d) (a :: SubIIm k i o d) :: * Source #

Methods

prim :: sing a -> Rep (SubIIm k i o d) a Source #

pretty :: sing a -> String Source #

((~) (ChordType 4) ch1 (DegToChord II DomQ k Inv0 o d1), IntListRep (ChordType 4) ch1, (~) (ChordType 4) ch2 (DegToChord V DomQ k Inv2 (NatToOct ((-) (OctToNat o) 1)) d2), IntListRep (ChordType 4) ch2) => Primitive (Dominant k 2) (DomSecD k o d1 d2) Source # 

Associated Types

type Rep (DomSecD k o d1 d2) (a :: DomSecD k o d1 d2) :: * Source #

Methods

prim :: sing a -> Rep (DomSecD k o d1 d2) a Source #

pretty :: sing a -> String Source #

((~) (ChordType 4) ch (DegToChord VII DimQ k i o d), IntListRep (ChordType 4) ch) => Primitive (Dominant k 1) (DomVii0 k i o d) Source # 

Associated Types

type Rep (DomVii0 k i o d) (a :: DomVii0 k i o d) :: * Source #

Methods

prim :: sing a -> Rep (DomVii0 k i o d) a Source #

pretty :: sing a -> String Source #

(IntLListRep (Subdominant k dur1) s1, IntLListRep (Subdominant k ((-) l dur1)) s2) => Primitive (Subdominant k l) (SubSS k l dur1 s1 s2) Source # 

Associated Types

type Rep (SubSS k l dur1 s1 s2) (a :: SubSS k l dur1 s1 s2) :: * Source #

Methods

prim :: sing a -> Rep (SubSS k l dur1 s1 s2) a Source #

pretty :: sing a -> String Source #

(IntLListRep (Dominant k dur1) d1, IntLListRep (Dominant k ((-) l dur1)) d2) => Primitive (Dominant k l) (DomDD k l dur1 d1 d2) Source # 

Associated Types

type Rep (DomDD k l dur1 d1 d2) (a :: DomDD k l dur1 d1 d2) :: * Source #

Methods

prim :: sing a -> Rep (DomDD k l dur1 d1 d2) a Source #

pretty :: sing a -> String Source #

(IntLListRep (Subdominant k sdur) sd, IntLListRep (Dominant k ((-) l sdur)) d) => Primitive (Dominant k l) (DomSD k l sdur sd d) Source # 

Associated Types

type Rep (DomSD k l sdur sd d) (a :: DomSD k l sdur sd d) :: * Source #

Methods

prim :: sing a -> Rep (DomSD k l sdur sd d) a Source #

pretty :: sing a -> String Source #

(IntLListRep (Tonic k dur1) t1, IntLListRep (Tonic k ((-) l dur1)) t2) => Primitive (Tonic k l) (TonTT k l dur1 t1 t2) Source # 

Associated Types

type Rep (TonTT k l dur1 t1 t2) (a :: TonTT k l dur1 t1 t2) :: * Source #

Methods

prim :: sing a -> Rep (TonTT k l dur1 t1 t2) a Source #

pretty :: sing a -> String Source #

(IntLListRep (Subdominant k sdur) sd, IntLListRep (Cadence k ((-) l sdur)) c) => Primitive (Cadence k l) (FullCad k l sdur sd c) Source # 

Associated Types

type Rep (FullCad k l sdur sd c) (a :: FullCad k l sdur sd c) :: * Source #

Methods

prim :: sing a -> Rep (FullCad k l sdur sd c) a Source #

pretty :: sing a -> String Source #

((~) (ChordType 4) ch1 (DegToChord V DomQ k Inv2 o d1), IntListRep (ChordType 4) ch1, (~) (ChordType 4) ch2 (DegToChord VI q k Inv1 o d2), IntListRep (ChordType 4) ch2) => Primitive (Cadence k 2) (DeceptCad k o q d1 d2) Source # 

Associated Types

type Rep (DeceptCad k o q d1 d2) (a :: DeceptCad k o q d1 d2) :: * Source #

Methods

prim :: sing a -> Rep (DeceptCad k o q d1 d2) a Source #

pretty :: sing a -> String Source #

((~) (ChordType 4) ch1 (DegToChord VII DimQ k Inv1 (NatToOct ((-) (OctToNat o) 1)) d1), IntListRep (ChordType 4) ch1, (~) (ChordType 4) ch2 (DegToChord I q k Inv0 o d2), IntListRep (ChordType 4) ch2) => Primitive (Cadence k 2) (AuthCadVii k o q d1 d2) Source # 

Associated Types

type Rep (AuthCadVii k o q d1 d2) (a :: AuthCadVii k o q d1 d2) :: * Source #

Methods

prim :: sing a -> Rep (AuthCadVii k o q d1 d2) a Source #

pretty :: sing a -> String Source #

((~) (ChordType 4) ch1 (DegToChord V DomQ k Inv2 (NatToOct ((-) (OctToNat o) 1)) d1), IntListRep (ChordType 4) ch1, (~) (ChordType 4) ch2 (DegToChord I q k Inv0 o d2), IntListRep (ChordType 4) ch2) => Primitive (Cadence k 2) (AuthCad7 k o q d1 d2) Source # 

Associated Types

type Rep (AuthCad7 k o q d1 d2) (a :: AuthCad7 k o q d1 d2) :: * Source #

Methods

prim :: sing a -> Rep (AuthCad7 k o q d1 d2) a Source #

pretty :: sing a -> String Source #

((~) (ChordType 4) ch1 (DegToChord V MajQ k Inv1 (NatToOct ((-) (OctToNat o) 1)) d1), IntListRep (ChordType 4) ch1, (~) (ChordType 4) ch2 (DegToChord I q k Inv0 o d2), IntListRep (ChordType 4) ch2) => Primitive (Cadence k 2) (AuthCad k o q d1 d2) Source # 

Associated Types

type Rep (AuthCad k o q d1 d2) (a :: AuthCad k o q d1 d2) :: * Source #

Methods

prim :: sing a -> Rep (AuthCad k o q d1 d2) a Source #

pretty :: sing a -> String Source #

(IntLListRep (Dominant k l1) d, IntLListRep (Tonic k ((-) l l1)) t) => Primitive (Phrase k l) (PhraseVI k l l1 d t) Source # 

Associated Types

type Rep (PhraseVI k l l1 d t) (a :: PhraseVI k l l1 d t) :: * Source #

Methods

prim :: sing a -> Rep (PhraseVI k l l1 d t) a Source #

pretty :: sing a -> String Source #

(IntLListRep (Phrase k l) ph, IntLListRep (ProgType k ((-) n l)) pr) => Primitive (ProgType k n) ((:=) k n l ph pr) Source # 

Associated Types

type Rep ((:=) k n l ph pr) (a :: (:=) k n l ph pr) :: * Source #

Methods

prim :: sing a -> Rep ((k := n) l ph pr) a Source #

pretty :: sing a -> String Source #

((~) (ChordType 4) ch1 (DegToChord III MinQ k i1 o d1), IntListRep (ChordType 4) ch1, (~) (ChordType 4) ch2 (DegToChord IV MajQ k i2 (NatToOct ((-) (OctToNat o) 1)) d2), IntListRep (ChordType 4) ch2) => Primitive (Subdominant k 2) (SubIIImIVM k i1 o i2 d1 d2) Source # 

Associated Types

type Rep (SubIIImIVM k i1 o i2 d1 d2) (a :: SubIIImIVM k i1 o i2 d1 d2) :: * Source #

Methods

prim :: sing a -> Rep (SubIIImIVM k i1 o i2 d1 d2) a Source #

pretty :: sing a -> String Source #

((~) (ChordType 4) ch1 (DegToChord I q k Inv2 o d1), IntListRep (ChordType 4) ch1, (~) (ChordType 4) ch2 (DegToChord V DomQ k Inv3 (NatToOct ((-) (OctToNat o) 1)) d2), IntListRep (ChordType 4) ch2, (~) (ChordType 4) ch3 (DegToChord I q k Inv1 o d3), IntListRep (ChordType 4) ch3) => Primitive (Cadence k 3) (AuthCad64 k q o d1 d2 d3) Source # 

Associated Types

type Rep (AuthCad64 k q o d1 d2 d3) (a :: AuthCad64 k q o d1 d2 d3) :: * Source #

Methods

prim :: sing a -> Rep (AuthCad64 k q o d1 d2 d3) a Source #

pretty :: sing a -> String Source #

(IntLListRep (Tonic k ((-) l2 l1)) t1, IntLListRep (Dominant k l1) d, IntLListRep (Tonic k ((-) l l2)) t2) => Primitive (Phrase k l) (PhraseIVI k l l2 l1 t1 d t2) Source # 

Associated Types

type Rep (PhraseIVI k l l2 l1 t1 d t2) (a :: PhraseIVI k l l2 l1 t1 d t2) :: * Source #

Methods

prim :: sing a -> Rep (PhraseIVI k l l2 l1 t1 d t2) a Source #

pretty :: sing a -> String Source #

type BoolRep t = (Primitive t, Rep t ~ Bool) Source #

Primitive types with Boolean representations.

type IntRep t = (Primitive t, Rep t ~ Int) Source #

Primitive types with integer representations.

type IntListRep t = (Primitive t, Rep t ~ [Int]) Source #

Primitive types with integer list representations.

type IntLListRep t = (Primitive t, Rep t ~ [[Int]]) Source #

Primitive types with list of integer list representations.

type FunRep a b t = (Primitive t, Rep t ~ (a -> b)) Source #

Primitive types with function representations from type a to type b.

Orphan instances

Primitive k t => Show (sing t) Source # 

Methods

showsPrec :: Int -> sing t -> ShowS #

show :: sing t -> String #

showList :: [sing t] -> ShowS #