Metadata revisions for scxml-statecharts-0.1.0.0

Package maintainers and Hackage trustees are allowed to edit certain bits of package metadata after a release, without uploading a new tarball. Note that the tarball itself is never changed, just the metadata that is stored separately. For more information about metadata revisions, please refer to the Hackage Metadata Revisions FAQ.

No. Time User SHA256
-r1 2026-09-09T10:50:58Z AxelUlmestig 0b65fa39ee1c6579467f2369587f12c8b3ff065c546f33730b3e7cc879faa3b6
  • Changed description from

    Define a statechart (<https://statecharts.dev/>) in SCXML inside a Haskell
    module and get typed states, events and a step function out of it.
    .
    > [scxml|
    > <scxml initial="Draft">
    >   <state id="Draft"><transition event="Submit" target="Review"/></state>
    >   <state id="Review">
    >     <onentry><script>notifyReviewers</script></onentry>
    >     <transition event="Approve" target="Done"/>
    >   </state>
    >   <final id="Done"/>
    > </scxml>
    > |]
    .
    generates @FsmState@, @FsmEvent@ and the functions
    @initiateStateMachine :: m FsmState@ and
    @notifyStateMachine :: FsmState -> FsmEvent -> m FsmState@, which call the
    callbacks named in the @\<script\>@ elements. Compound states become sum
    types and parallel states become products, so a value of @FsmState@ is
    exactly one legal configuration: illegal states are unrepresentable and
    @case@ is exhaustive. Names in the XML are used verbatim as Haskell
    constructor names.
    .
    Hierarchy, parallel regions, entry and exit callbacks and SCXML's
    @done.state@ completion events are supported. @cond@ guards and eventless
    transitions are deliberately not: a decision becomes a state whose entry
    callback raises one of the events leading out of it, which keeps the
    branching visible in the chart. See the README for the full mapping and
    the list of unsupported SCXML features.
    to
    Define a statechart (<https://statecharts.dev/>) in SCXML inside a Haskell
    module and get typed states, events and a step function out of it.
    
    > [scxml|
    > <scxml initial="Draft">
    >   <state id="Draft"><transition event="Submit" target="Review"/></state>
    >   <state id="Review">
    >     <onentry><script>notifyReviewers</script></onentry>
    >     <transition event="Approve" target="Done"/>
    >   </state>
    >   <final id="Done"/>
    > </scxml>
    > |]
    
    generates @FsmState@, @FsmEvent@ and the functions
    @initiateStateMachine :: m FsmState@ and
    @notifyStateMachine :: FsmState -> FsmEvent -> m FsmState@, which call the
    callbacks named in the @\<script\>@ elements. Compound states become sum
    types and parallel states become products, so a value of @FsmState@ is
    exactly one legal configuration: illegal states are unrepresentable and
    @case@ is exhaustive. Names in the XML are used verbatim as Haskell
    constructor names.
    
    Hierarchy, parallel regions, entry and exit callbacks and SCXML's
    @done.state@ completion events are supported. @cond@ guards and eventless
    transitions are deliberately not: a decision becomes a state whose entry
    callback raises one of the events leading out of it, which keeps the
    branching visible in the chart. See the README for the full mapping and
    the list of unsupported SCXML features.

-r0 2026-09-09T09:48:29Z AxelUlmestig 12c1763b646f2560e79ae060eaaa0e8b112180c7357bee2c2b016f4be5f72368