anchor.diff:  type DataRow with
       member this.toOption<'a> (key:string) = if this.IsNull(key) then None else Some(unbox<'a> this.[key])
   
  -let rec getParamDefaultValue (body: string) (p: ProcedureParameter) = 
  -    match p.Value with
  +let rec parseDefaultValue (definition: string) (expr: ScalarExpression) = 
  +    match expr with
       | :? Literal as x ->
           match x.LiteralType with
           | LiteralType.Default | LiteralType.Null -> Some null
  
positive.code:    let parts = twoPartsName.Split('.')
     parts.[0], parts.[1]
  
  let parseDefaultValue (value: string, typ:Type) =
      if typ = typeof<bool> 
      then box (value.Trim() = "1")
      else Convert.ChangeType(value, typ)
       
  let internal ReturnValue (conn : SqlConnection) = { 
      Name = "@ReturnValue" 
      Direction = ParameterDirection.ReturnValue
  
negative.code:         | LiteralType.Money | LiteralType.Numeric -> x.Value |> decimal |> box |> Some
          | LiteralType.Real -> x.Value |> float |> box |> Some 
          | _ -> None
      | :? UnaryExpression as x when x.UnaryExpressionType <> UnaryExpressionType.BitwiseNot ->
          let fragment = definition.Substring( x.StartOffset, x.FragmentLength)
          match x.Expression with
          | :? Literal as x ->
              match x.LiteralType with
              | LiteralType.Integer -> fragment |> int |> box |> Some
              | LiteralType.Money | LiteralType.Numeric -> fragment |> decimal |> box |> Some
              | LiteralType.Real -> fragment |> float |> box |> Some 
              | _ -> None
          | _  -> None 
      | _ -> None 
  
  type SqlConnection with
  