anchor.diff:        EBufCreate (ManuallyManaged, translate_expr env init, EConstant (UInt32, "1"))
   
     | MLE_App ({ expr = MLE_TApp({ expr = MLE_Name p }, _) } , [ init ])
  -    when (string_of_mlpath p = "Steel.Reference.malloc") ->
  +    when (string_of_mlpath p = "Steel.Reference.malloc" ||
  +          string_of_mlpath p = "Steel.ST.Reference.alloc") ->
         EBufCreate (ManuallyManaged, translate_expr env init, EConstant (UInt32, "1"))
   
     | MLE_App ({ expr = MLE_TApp({ expr = MLE_Name p }, _) }, [ _e0; e1; e2 ])
  
positive.code:       EBufCreate (ManuallyManaged, translate_expr env e1, translate_expr env e2)
  
    | MLE_App ({ expr = MLE_TApp({ expr = MLE_Name p }, _) }, [ e0; e1 ])
      when string_of_mlpath p = "Steel.Array.malloc" ->
        EBufCreate (ManuallyManaged, translate_expr env e0, translate_expr env e1)
  
  
  
negative.code:     Syntax.string_of_mlpath p = "FStar.HyperStack.ST.mmstackref" ||
      Syntax.string_of_mlpath p = "FStar.HyperStack.ST.mmref" ||
      Syntax.string_of_mlpath p = "Steel.Reference.ref" ||
      Syntax.string_of_mlpath p = "Steel.Array.array" ||
      Syntax.string_of_mlpath p = "Steel.ST.Reference.ref" ||
      Syntax.string_of_mlpath p = "Steel.ST.Array.array"
      ->
        TBuf (translate_type env arg)
  
  