anchor.diff:  *)
   
   let s = Some "string"
  -
  -(**
  -
  -- Achtung: None wird nicht via Construction erstellt, sondern nur als Rückgabewert verwendet
  -
  ----
  -### Option: Deconstruction und Pattern Matching
  -
  -- Alle Fälle müssen behandelt werden, damit ich den Wert des Option extrahieren kann
  +let none = None
  +
  +
  +(**
  +
  +---
  +### Option: Deconstruction and Pattern Matching
  +
  +- Must handle all cases in order to extract the value of the DU
   
   *)
   
   let optionMatch s = 
       match s with 
  -    | Some wert -> sprintf "Wert ist %s" wert
  +    | Some wert -> sprintf "Value: %s" wert
       | None -> ""
   
   let z  = optionMatch (Some("Hello"))
  -// Das nicht idiomatisch, nur für Demonstrationszwecke
   let z' = optionMatch None
   
  -(**
  -
  -' Achte darauf dass None hier den richtigen Typ hat, wegen des Aufruf an optionMatch: type Inference
  -
  -
  ----
  -### Option: Deconstruction und Pattern Matching
  -- Option ist meistens das Ergebnis einer Auswertung
  -- None stellt den Fall dar, dass kein sinnvolles Ergebnis vorhanden ist
  +(** <div style="display: none" > *)
  +(*** define-output:Option-PatternMatching ***)
  +printf "z = %s | " z
  +printf "z' = %s" z'
  +(** </div> *)
  +(*** include-output:Option-PatternMatching ***)
  +
  +(**
  +
  +---
  +### Option: Deconstruction and Pattern Matching
  +- Option is often the result of an evaluation
  +- None represents the case that no valid value was constructed
   
   *)
   
   let matchForOption s = 
       match s with 
  -    | "Jawohl" -> Some(s)
  +    | "Sure" -> Some(s)
       | _ -> None
   
  -let x  = matchForOption "Jawohl"
  -let x' = matchForOption "Doch nicht"
  +let x  = matchForOption "Sure"
  +let x' = matchForOption "Not"
   
   (** <div style="display: none" > *)
   (*** define-output:Option-Deconstruction ***)
  
positive.code: (**
  
  ---
  ### Option: Nutzung
  
  - Null vs Unbekannt/Fehlend
  - Durch Option ist es möglich fehlende Werte explizit zu kennzeichnen
  - Die Kennzeichnung erfolgt durch einen eigenen Typ
  - Zugriffe auf fehlende Werte sind dann compile-time und keine run-time Fehler
  
  ' Referenzen auf nicht vorhandene Objekte sind nicht die beste Art und Weise 
  ' Code Analysis wird verwendet um Warnungen zu geben in C# 7.0.  Keine typ Unterstützung möglich wegen backward compatibility
  
negative.code: - Found in many functional languages
  
  ' In Haskel heißt dieser Typ Maybe, Just, Nothing. in Scala heißt es auch option, some, none.
  ' Used extensively!
  
  *)
  
  type Option<'a> = // DU with a generic paramter
  | Some of 'a // Valid value
  | None // ???
  
  
  