anchor.diff:  open System.Globalization
   
   type Entry = { dat: DateTime; des: string; chg: int }
  +
  +type Currency = EUR | USD
  +
  +let getCurrencySymbol currency =
  +    match currency with
  +    | EUR -> "€"
  +    | USD -> "$"
  +
  +let parseCurrency input =
  +    match input with
  +    | "EUR" -> EUR
  +    | "USD" -> USD
  +    | _ -> failwith "Invalid currency"
   
   let mkEntry date description change = { dat = DateTime.Parse(date, CultureInfo.InvariantCulture); des = description; chg = change }
   
  
positive.code: let formatLine locale currency entry =
      "\n" + (formatDate entry.dat locale) + " | " + (formatDescription entry.des) + " | " + (prettifyMoney locale currency (getValue entry))
  
  let formatLedger currency locale entries =
      let content =
          match entries with
          | [] -> "" 
  
negative.code: 
  let prettifyMoney locale currency value =
      let formattedMoney = formatMoney locale value
      let symbol = getCurrencySymbol currency
  
      match value < 0.0, locale with
      | true, "nl-NL" -> (symbol + " " + formattedMoney).PadLeft(13) 
      | true, "en-US" -> ("(" + symbol + formattedMoney.Substring(1) + ")").PadLeft(13) 
      | false, "nl-NL" -> (symbol + " " + formattedMoney + " ").PadLeft(13) 
      | false, "en-US" -> (symbol + formattedMoney + " ").PadLeft(13) 
      | _ -> ""
  
  let getValue x = float x.chg / 100.0
  