anchor.diff:                  state <- state - 1
                   Deadline(TimeSpan.FromSeconds(1.0)) //If the counter is greater than 0, we continue
   
  +        //When a machine timeout occurs
  +        member this.Timeout c s =
  +            Done
  +
  +//A machine with no state that does nothing
   type Nothing<'c, 's> (state) =
       interface IMachine<'c, 's> with
           member this.Create c s =
  -            Done
  +            printfn "Nothing"
  +            Ok
           member this.Ready c s =
               Done
           member this.Wakeup c s =
  
positive.code:         member this.Timeout c s =
              Done
  
  [<EntryPoint>]
  let main argv = 
      //Build some machines and iterate over them
      //TODO: Try build a machine with an object expression
      let machines = [ Counter(3) :> IMachine<unit, unit>; Nothing() :> IMachine<unit, unit> ]
      machines 
      |> List.iter(
          fun m -> 
              match (m.Timeout () ()) with
              | Error e -> printfn "Error: %s" e
              | Done -> printfn "Done"
              | _ -> ()
         )
  
  
negative.code:     abstract member Wakeup :    'c -> 's -> Response<'m>
      abstract member Timeout :   'c -> 's -> Response<'m>
  
  //A machine with a mutable internal state
  type Counter<'c, 's> (s) =
      //Our mutable state
      let mutable state = s
  