Safe Haskell | Safe-Inferred |
---|
This is like Derive.Call, but higher level. It has templates for creating calls.
Synopsis
- attributed_note :: Module.Module -> Attrs.Attributes -> Library.Calls Note
- environ_note :: Typecheck.ToVal a => Module.Module -> CallName -> Tags.Tags -> Doc.Doc -> Key -> a -> Library.Calls Note
- control_note :: Module.Module -> CallName -> ScoreT.Control -> Signal.Y -> Library.Calls Note
- transform_notes :: Module.Module -> CallName -> Tags.Tags -> Doc.Doc -> Sig.Parser a -> (a -> NoteDeriver -> NoteDeriver) -> Library.Calls Note
- transform_notes_args :: Module.Module -> CallName -> Tags.Tags -> Doc.Doc -> Sig.Parser a -> (a -> PassedArgs Score.Event -> NoteDeriver -> NoteDeriver) -> Library.Calls Note
- environ :: (Typecheck.ToVal val, Taggable d) => Module.Module -> Key -> Doc.Doc -> Sig.Parser a -> (a -> val) -> Transformer d
- environ_val :: (ShowVal.ShowVal a, Typecheck.ToVal a, Taggable d) => Module.Module -> CallName -> Key -> a -> Doc.Doc -> Transformer d
- add_flag :: Module.Module -> CallName -> Doc.Doc -> Flags.Flags -> Transformer Score.Event
- modify_generator :: Module.Module -> CallName -> Doc.Doc -> TransformerF a -> Generator a -> Generator a
- modify_generator_ :: Doc.Doc -> TransformerF a -> Generator a -> Generator a
- modify_transformer :: Module.Module -> CallName -> Doc.Doc -> TransformerF a -> Transformer a -> Transformer a
- modify_transformer_ :: Doc.Doc -> TransformerF a -> Transformer a -> Transformer a
- modify_calls_ :: Doc.Doc -> TransformerF a -> Library.Calls a -> Library.Calls a
- modify_call :: Module.Module -> CallName -> Doc.Doc -> (a -> b) -> Call a -> Call b
- constant_val :: (Typecheck.ToVal a, ShowVal.ShowVal a) => Module.Module -> CallName -> Doc.Doc -> a -> ValCall
- modify_vcall :: ValCall -> Module.Module -> CallName -> Doc.Doc -> (DeriveT.Val -> DeriveT.Val) -> ValCall
Documentation
attributed_note :: Module.Module -> Attrs.Attributes -> Library.Calls Note Source #
This is a specialization of transform_notes
that adds Attributes.
environ_note :: Typecheck.ToVal a => Module.Module -> CallName -> Tags.Tags -> Doc.Doc -> Key -> a -> Library.Calls Note Source #
This is a specialization of transform_notes
that sets an environ value.
control_note :: Module.Module -> CallName -> ScoreT.Control -> Signal.Y -> Library.Calls Note Source #
This is a specialization of transform_notes
that sets a control.
transform_notes :: Module.Module -> CallName -> Tags.Tags -> Doc.Doc -> Sig.Parser a -> (a -> NoteDeriver -> NoteDeriver) -> Library.Calls Note Source #
transform_notes_args
without the PassedArgs.
transform_notes_args :: Module.Module -> CallName -> Tags.Tags -> Doc.Doc -> Sig.Parser a -> (a -> PassedArgs Score.Event -> NoteDeriver -> NoteDeriver) -> Library.Calls Note Source #
The generator either derives subs or derives a new Call.note if there are no subs, and then applies the transform. The transformer call just applies the transform.
environ :: (Typecheck.ToVal val, Taggable d) => Module.Module -> Key -> Doc.Doc -> Sig.Parser a -> (a -> val) -> Transformer d Source #
Create a transformer that just sets an environ value. This is higher
level and more concise than using the =
transformer.
environ_val :: (ShowVal.ShowVal a, Typecheck.ToVal a, Taggable d) => Module.Module -> CallName -> Key -> a -> Doc.Doc -> Transformer d Source #
Make a call that sets an environ key to a specific value.
add_flag :: Module.Module -> CallName -> Doc.Doc -> Flags.Flags -> Transformer Score.Event Source #
Make a call that adds a flag.
modify
modify_generator :: Module.Module -> CallName -> Doc.Doc -> TransformerF a -> Generator a -> Generator a Source #
Make a modified version of an existing call. Args are the same.
modify_generator_ :: Doc.Doc -> TransformerF a -> Generator a -> Generator a Source #
Like modify_generator
, but inherit metadata from the original call.
modify_transformer :: Module.Module -> CallName -> Doc.Doc -> TransformerF a -> Transformer a -> Transformer a Source #
Make a modified version of an existing call. Args are the same.
modify_transformer_ :: Doc.Doc -> TransformerF a -> Transformer a -> Transformer a Source #
modify_calls_ :: Doc.Doc -> TransformerF a -> Library.Calls a -> Library.Calls a Source #
Modify a generator transformer pair, inheriting metadata.
modify_call :: Module.Module -> CallName -> Doc.Doc -> (a -> b) -> Call a -> Call b Source #
val calls
constant_val :: (Typecheck.ToVal a, ShowVal.ShowVal a) => Module.Module -> CallName -> Doc.Doc -> a -> ValCall Source #
modify_vcall :: ValCall -> Module.Module -> CallName -> Doc.Doc -> (DeriveT.Val -> DeriveT.Val) -> ValCall Source #
Make a new ValCall from an existing one, by mapping over its output.