anchor.diff:                              match Map.tryFind name query with
                               | Some x -> v?(name) <- x; Some rest
                               | None -> None
  +                        | _ -> failwith "invalid QueryItem enum value"
                   )
                   |> Option.map (fun rest -> (v, rest))
               match shape with
  
positive.code:     let getDefaultCtor (t: Type) =
          match t with
          | ConcreteType ct ->
              let t = Reflection.LoadType t
              let defaultCtor = Hashed { CtorParameters = [] }
              if comp.GetClassInfo ct.Entity |> Option.exists (fun cls -> cls.Constructors.ContainsKey defaultCtor) 
              then failwithf "Endpoint type must have a default constructor: %s" t.AssemblyQualifiedName
              else Lambda([], Ctor (ct, defaultCtor, [])), t
          // TODO: handle TupleType etc
          | _ -> failwithf "Generic endpoint type not supported for routing: %s" t.AssemblyQualifiedName
  
  
negative.code: //        | _ -> comp.AddCompiledMethod(internals, meth, Metadata.Instance name, impl)
  //        meth
  
      let isBaseType (ty: Type) =
          match ty with
          | ConcreteType { Entity = td } ->
              match td.Value.FullName with
              | "System.SByte"    | "System.Byte"
              | "System.Int16"    | "System.UInt16"
              | "System.Int32"    | "System.UInt32"
              | "System.Int64"    | "System.UInt64"
              | "System.Single"   | "System.Double"
              | "System.String" -> true
              | _ -> false
          | _ -> false
  
      let getRouteShape (t: Type) =
  