anchor.diff:      | Link of string * string
   
   // define DGML class
  -type DGMLClass() = class
  -    
  +type DGMLClass() = class   
       let mutable nodes = Unchecked.defaultof<Node list>
       let mutable links = Unchecked.defaultof<DGML list>    
       let mutable currentState = System.String.Empty
  
positive.code:                         |> Seq.map (fun n ->
                                      let name = n.Name
                                      provideMethod
                                          (sprintf "Assert_%s" name)
                                          []
                                          typeof<unit>
                                          (fun args -> <@@ (%%args.[0] :> StateMachine).Assert(name) @@>)))
                  |++!> (stateMachine.Nodes
                          |> Seq.map (fun n ->
                                      let name = n.Name
                                      provideMethod
                                          (sprintf "TransitTo_%s" name)
                                          []
                                          typeof<unit>
  
negative.code: 
      // force current state to a new state
      member this.ForceStateTo(args) = 
          this.CurrentState <- args        
  end
  
  // state machine class which inherit the DGML class
  