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 SkolemPair
A skolem variable that is unified with a pointer.
#SkolemPairC Source
data SkolemPairC :: Type -> Ptr -> SkolemPair
The 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 SkolemList
A list of known skolem variables in the audio graph.
#SkolemListCons Source
data SkolemListCons :: SkolemPair -> SkolemList -> SkolemList
Cons 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 :: SkolemList
Nil for a SkolemList
Instances
LookupSkolem' accumulator ptr SkolemListNil accumulator
SkolemNotYetPresent skolem SkolemListNil
#DiscardableSkolem Source
data DiscardableSkolem
A skolem variable that is trivial and can be discarded, meaning it will never be used.
Instances
SkolemNotYetPresentOrDiscardable DiscardableSkolem skolemList
MakeInternalSkolemStack DiscardableSkolem ptr skolems skolems
GetSkolemFromRecursiveArgument b DiscardableSkolem
#LookupSkolem' Source
class LookupSkolem' (accumulator :: PtrList) (skolem :: Type) (skolemList :: SkolemList) (ptr :: PtrList) | accumulator skolem skolemList -> ptr
Tail-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 -> ptr
Class 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 -> skolemsInternal
Appends skolem
and ptr
to skolems
, creating skolemsInternal
. The DiscardableSkolem
is discarded in this append operation.
Instances
MakeInternalSkolemStack DiscardableSkolem ptr skolems skolems
MakeInternalSkolemStack skolem ptr skolems (SkolemListCons (SkolemPairC skolem ptr) skolems)
#GetSkolemFromRecursiveArgument Source
class GetSkolemFromRecursiveArgument (a :: Type) (skolem :: Type) | a -> skolem
Gets a skolem variable from a function with a single proxy argument, treating the proxied type as the skolem variable.
Instances
GetSkolemFromRecursiveArgument (Proxy skolem -> b) skolem
GetSkolemFromRecursiveArgument b DiscardableSkolem
#ToSkolemizedFunction Source
class ToSkolemizedFunction (a :: Type) (skolem :: Type) (b :: Type) | a skolem -> b where
Coerces 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 b
ToSkolemizedFunction b skolem b
#GetSkolemizedFunctionFromAU Source
class GetSkolemizedFunctionFromAU (a :: Type) (skolem :: Type) (b :: Type) | a skolem -> b where
Gets 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