anchor.diff:      | Post of int
       | Reply of int * AsyncReplyChannel<string>
   
  -let getState =
  +let postMessage =
       function // function-syntax pattern matching
       | Post i -> i
       | Reply (i, a) -> i
  
positive.code:         | Rectangle (l, h) -> l * h
  
  // create a circle
  let circle = Shape.Circle 5.
  
  printfn "%f" (circle.getArea ())
  
  // Discriminated Union that compiles down to an Enum that C# can use
  type Categories =
      | Sedan = 0
      | Truck = 1
      | SUV = 2
      | Coupe = 3
  
  printfn "%d" <| int Categories.SUV // prints 2
  
  
negative.code:     | SixPlus
      | Five
      | FiveS
  
  type Phone = { Manufacturer : string; Model : Model; OperatingSystem : string; Storage : int }
  
  let phones = [{ Manufacturer = "Apple"; Model = Model.Six; OperatingSystem = "iOS"; Storage = 64 };
  