anchor.diff:      if (eventsResponse.IsNone) then
           None
       else
  -        Some(Split(eventsResponse.Value) ' ')
  -    
  +        Some(StringListToEventStatus(Split(eventsResponse.Value) ' '))
  +
   //Gets the status of a particular event
   let eventStatus baseUrl eventName = 
       let executed = HTTPRequestDownload (baseUrl + "/" + eventName + "/executed")
  
positive.code: ﻿open System
  
  type EventStatus = bool * bool * bool
  
  //String split function, splits a string based on a delimiter
  let Split (s : string) (delimiter : char) = List.ofArray (s.Split(delimiter))
  
negative.code:     if (executed.IsNone || included.IsNone || pending.IsNone) then
          None
      else
          Some((eventName, Convert.ToBoolean(executed.Value),Convert.ToBoolean(included.Value),Convert.ToBoolean(pending.Value)) : EventStatus)
  
  let rec writeOutEventStatus events baseUrl =
      match (events) with
      | (eventName, executed,included,pended) :: xs -> 
                      match ((eventName, executed,included,pended)) with
                      //| (executed,included,pended) when executed = false && included = false && pended = true -> 
                      | (eventName, executed,included,pended) when executed = false && included = true && pended = false ->  printfn "%s   EXECUTABLE" eventName
                      | (eventName, executed,included,pended) when executed = false && included = true && pended = true ->  printfn "!%s   EXECUTABLE" eventName
                      | (eventName, executed,included,pended) when executed = true && included = false && pended = false ->  printfn "X%s" eventName
                      | (eventName, executed,included,pended) when executed = true && included = false && pended = true ->   printfn "X%s" eventName
                      | (eventName, executed,included,pended) when executed = true && included = true && pended = false ->   printfn "X%s" eventName
                      | (eventName, executed,included,pended) when executed = true && included = true && pended = true ->   printfn "X%s" eventName
                      | _ -> 0 |> ignore
                      (eventName, executed,included,pended) :: writeOutEventStatus xs baseUrl
      | _ -> []
  
  //Writes the status of each event to the console and returns a list containing only the events that was responsive.
  let rec getStatusAndRemovefaulty events baseUrl = 
      let rec getValidEvents ev =
          match (ev) with
              | (eventName, executed,included,pended) :: xs -> 
                          let eventStatusResponse = eventStatus baseUrl eventName
                          if (eventStatusResponse.IsSome) then
                              let (eventName, executed,included,pended) = eventStatusResponse.Value
                              (eventName, executed,included,pended) :: getValidEvents xs
                          else
                              getValidEvents xs
              | _ -> []
      writeOutEventStatus (List.sortBy (fun k -> let (eventName, executed,included,pended) = k
                                                 not pended) (getValidEvents events)) baseUrl
  
  //Mainloop, covers event selection and exchanging information with the events.    
  let rec mainLoop baseUrl (events : EventStatus list) =
      printfn "Actions:"
      printfn "1 -> Get all events"
      printfn "2 -> Connect an event"
  