anchor.diff:  type Uri with
       static member Parse str = Uri(str)
   
  -let primTypeFromString (t:  Type) (str: String)  : obj =
  +let primFromString (t:  Type) (str: String)  : obj =
  +    //this does not seem to work
  +    //t.GetMethod("Parse", [|typeof<string>|]).Invoke(t, [|str|]) |> box
       match t.FullName with
       |"System.Int16" -> Int16.Parse(str) |> box
       |"System.Int32" -> Int32.Parse(str) |> box
  
positive.code:     Holder : Person;
      }
  
  let paddress : Parser<Address,unit> = 
      let toAddress (anObj : obj) : Address =
          anObj :?> Address
      ptype typeof<Address> |>> toAddress
  
  let test p str =
      match run p str with
      | Success(result, _, _)   -> printfn "Success: %A of type %O" result result.GetType
      | Failure(errorMsg, _, _) -> printfn "Failure: %s" errorMsg
  let addressData = "
  Street: 245 West Howe
  City: Vancouver
  Region: BC
  Country: Canada
  "
  
  test (ptype typeof<Address>) addressData
  test paddress addressData
  
  let pperson : Parser<Person,unit> = 
      let toPerson (anObj : obj) : Person =
          anObj :?> Person
      ptype typeof<Person> |>> toPerson
  
  let personData = "
  Name: Bill Smith
  DOB: 1988-01-20
  eMail: bill@co.com
  Address: 
      Street: 245 West Howe
      City: Vancouver 
      Region: BC
      Country: Canada"
  
  test (ptype typeof<Person>) personData
  test pperson personData
  
  
  let pcontract : Parser<Contract,unit> = 
      let toType (anObj : obj) : Contract =
  
negative.code: 
  and pfield (field: Reflection.PropertyInfo) : Parser<obj,unit> =
      pfieldTag field>>.
      ptype field.PropertyType
  
  and precord (aType : Type) : Parser<obj,unit> =
      let makeType vals = 
  