WAGS.Universe.Skolems
- Package
- purescript-wags
- Repository
- mikesol/purescript-wags
This module is used internally to create and use skolem variables in an audio graph. To learn more about skolemnization, check out the Skolem normal form wiki.
#SkolemPair Source
data SkolemPairA skolem variable that is unified with a pointer.
#SkolemPairC Source
data SkolemPairC :: Type -> Ptr -> SkolemPairThe unique constructor for a SkolemPair, accepting a skolem variable and a pointer in the audio graph.
Instances
(TypeEqualTF skolem candidate tf, Gate tf (PtrListCons ptr PtrListNil) PtrListNil toComp, PtrListKeepSingleton toComp accumulator acc, LookupSkolem' acc skolem tail o) => LookupSkolem' accumulator skolem (SkolemListCons (SkolemPairC candidate ptr) tail) o(TypeEqualTF skolem candidate False, SkolemNotYetPresentOrDiscardable skolem tail) => SkolemNotYetPresent skolem (SkolemListCons (SkolemPairC candidate ptr) tail)MakeInternalSkolemStack skolem ptr skolems (SkolemListCons (SkolemPairC skolem ptr) skolems)
#SkolemList Source
data SkolemListA list of known skolem variables in the audio graph.
#SkolemListCons Source
data SkolemListCons :: SkolemPair -> SkolemList -> SkolemListCons for a SkolemList
Instances
(TypeEqualTF skolem candidate tf, Gate tf (PtrListCons ptr PtrListNil) PtrListNil toComp, PtrListKeepSingleton toComp accumulator acc, LookupSkolem' acc skolem tail o) => LookupSkolem' accumulator skolem (SkolemListCons (SkolemPairC candidate ptr) tail) o(TypeEqualTF skolem candidate False, SkolemNotYetPresentOrDiscardable skolem tail) => SkolemNotYetPresent skolem (SkolemListCons (SkolemPairC candidate ptr) tail)MakeInternalSkolemStack skolem ptr skolems (SkolemListCons (SkolemPairC skolem ptr) skolems)
#SkolemListNil Source
data SkolemListNil :: SkolemListNil for a SkolemList
Instances
LookupSkolem' accumulator ptr SkolemListNil accumulatorSkolemNotYetPresent skolem SkolemListNil
#DiscardableSkolem Source
data DiscardableSkolemA skolem variable that is trivial and can be discarded, meaning it will never be used.
Instances
SkolemNotYetPresentOrDiscardable DiscardableSkolem skolemListMakeInternalSkolemStack DiscardableSkolem ptr skolems skolemsGetSkolemFromRecursiveArgument b DiscardableSkolem
#LookupSkolem' Source
class LookupSkolem' (accumulator :: PtrList) (skolem :: Type) (skolemList :: SkolemList) (ptr :: PtrList) | accumulator skolem skolemList -> ptrTail-recursive algorithm to look up a skolem variable in the substitution map.
Instances
LookupSkolem' accumulator ptr SkolemListNil accumulator(TypeEqualTF skolem candidate tf, Gate tf (PtrListCons ptr PtrListNil) PtrListNil toComp, PtrListKeepSingleton toComp accumulator acc, LookupSkolem' acc skolem tail o) => LookupSkolem' accumulator skolem (SkolemListCons (SkolemPairC candidate ptr) tail) o
#LookupSkolem Source
class LookupSkolem (skolem :: Type) (skolemList :: SkolemList) (ptr :: Ptr) | skolem skolemList -> ptrClass to look up a skolem variable in the substitution map.
Instances
(LookupSkolem' PtrListNil skolem skolemList (PtrListCons ptr PtrListNil)) => LookupSkolem skolem skolemList ptr
#SkolemNotYetPresent Source
class SkolemNotYetPresent (skolem :: Type) (skolemList :: SkolemList) Assertion that a skolem is not yet present in a skolem lists. Makes sure each skolem variable is fresh/unique.
Instances
SkolemNotYetPresent skolem SkolemListNil(TypeEqualTF skolem candidate False, SkolemNotYetPresentOrDiscardable skolem tail) => SkolemNotYetPresent skolem (SkolemListCons (SkolemPairC candidate ptr) tail)
#SkolemNotYetPresentOrDiscardable Source
class SkolemNotYetPresentOrDiscardable (skolem :: Type) (skolemList :: SkolemList) Assertion that a skolem is not yet present in a skolem lists or that it is discardable.
Instances
SkolemNotYetPresentOrDiscardable DiscardableSkolem skolemList(SkolemNotYetPresent o skolemList) => SkolemNotYetPresentOrDiscardable o skolemList
#MakeInternalSkolemStack Source
class MakeInternalSkolemStack (skolem :: Type) (ptr :: Ptr) (skolems :: SkolemList) (skolemsInternal :: SkolemList) | skolem ptr skolems -> skolemsInternalAppends skolem and ptr to skolems, creating skolemsInternal. The DiscardableSkolem is discarded in this append operation.
Instances
MakeInternalSkolemStack DiscardableSkolem ptr skolems skolemsMakeInternalSkolemStack skolem ptr skolems (SkolemListCons (SkolemPairC skolem ptr) skolems)
#GetSkolemFromRecursiveArgument Source
class GetSkolemFromRecursiveArgument (a :: Type) (skolem :: Type) | a -> skolemGets a skolem variable from a function with a single proxy argument, treating the proxied type as the skolem variable.
Instances
GetSkolemFromRecursiveArgument (Proxy skolem -> b) skolemGetSkolemFromRecursiveArgument b DiscardableSkolem
#ToSkolemizedFunction Source
class ToSkolemizedFunction (a :: Type) (skolem :: Type) (b :: Type) | a skolem -> b whereCoerces a term to a skolemized function. It is either already a skolemized function or a constant, in which case it is coerced to a skolemized function that uses the DiscardableSkolem.
Members
toSkolemizedFunction :: a -> (Proxy skolem -> b)
Instances
ToSkolemizedFunction (Proxy skolem -> b) skolem bToSkolemizedFunction b skolem b
#GetSkolemizedFunctionFromAU Source
class GetSkolemizedFunctionFromAU (a :: Type) (skolem :: Type) (b :: Type) | a skolem -> b whereGets a skolem variable from a specific audio unit a.
Members
getSkolemizedFunctionFromAU :: a -> (Proxy skolem -> b)
Instances
(ToSkolemizedFunction argC skolem o) => GetSkolemizedFunctionFromAU (Allpass argA argB argC) skolem o(ToSkolemizedFunction argC skolem o) => GetSkolemizedFunctionFromAU (Bandpass argA argB argC) skolem o(ToSkolemizedFunction argB skolem o) => GetSkolemizedFunctionFromAU (Convolver argA argB) skolem o(ToSkolemizedFunction argB skolem o) => GetSkolemizedFunctionFromAU (Delay argA argB) skolem o(ToSkolemizedFunction argF skolem o) => GetSkolemizedFunctionFromAU (DynamicsCompressor argA argB argC argD argE argF) skolem o(ToSkolemizedFunction argB skolem o) => GetSkolemizedFunctionFromAU (Gain argA argB) skolem o(ToSkolemizedFunction argC skolem o) => GetSkolemizedFunctionFromAU (Highpass argA argB argC) skolem o(ToSkolemizedFunction argC skolem o) => GetSkolemizedFunctionFromAU (Highshelf argA argB argC) skolem o(ToSkolemizedFunction argC skolem o) => GetSkolemizedFunctionFromAU (Lowpass argA argB argC) skolem o(ToSkolemizedFunction argC skolem o) => GetSkolemizedFunctionFromAU (Lowshelf argA argB argC) skolem o(ToSkolemizedFunction argC skolem o) => GetSkolemizedFunctionFromAU (Notch argA argB argC) skolem o(ToSkolemizedFunction argD skolem o) => GetSkolemizedFunctionFromAU (Peaking argA argB argC argD) skolem o(ToSkolemizedFunction argB skolem o) => GetSkolemizedFunctionFromAU (Recorder argA argB) skolem o(ToSkolemizedFunction argA skolem o) => GetSkolemizedFunctionFromAU (Speaker argA) skolem o(ToSkolemizedFunction argB skolem o) => GetSkolemizedFunctionFromAU (StereoPanner argA argB) skolem o(ToSkolemizedFunction argC skolem o) => GetSkolemizedFunctionFromAU (WaveShaper argA argB argC) skolem o
- Modules
- FRP.
Event. MIDI - WAGS.
Change - WAGS.
Connect - WAGS.
Control. Functions - WAGS.
Control. MemoizedState - WAGS.
Control. Qualified - WAGS.
Control. Thunkable - WAGS.
Control. Types - WAGS.
Create - WAGS.
Cursor - WAGS.
Debug - WAGS.
Destroy - WAGS.
Disconnect - WAGS.
Graph. Constructors - WAGS.
Graph. Decorators - WAGS.
Graph. Getter - WAGS.
Graph. Optionals - WAGS.
Graph. Parameter - WAGS.
Interpret - WAGS.
Move - WAGS.
MoveNode - WAGS.
Rebase - WAGS.
Rendered - WAGS.
Run - WAGS.
Universe. AudioUnit - WAGS.
Universe. Bin - WAGS.
Universe. BinN - WAGS.
Universe. EdgeProfile - WAGS.
Universe. Graph - WAGS.
Universe. Node - WAGS.
Universe. Skolems - WAGS.
Universe. Universe - WAGS.
Util - WAGS.
Validation