anchor.diff:  
   
   let letVectorBuildLength: Rule = compilePatternWithNameToRule letVectorBuildLength_exp "letVectorBuildLength"
  +
  +let letVectorBuildGet: Rule = compilePatternWithNameToRule letVectorBuildGet_exp "letVectorBuildGet"
   
   let letInliner: Rule = compilePatternWithNameToRule letInliner_exp "letInliner"
   
  
positive.code:                              <@ ( let x = (build<Number> %c1 %F) in ((%B1) (length x) x): T1 )
                                                             <==>
                                  ( let x = (build<Number> %c1 %F) in (%B1) %c1 x )
                                                                                        @>
  
  let letInliner_exp         = <@ ((let x = %E1 in (%B1) x): T1)
  
negative.code: let subSameIndex_exp       = <@ %i - %i                    <==>   0                   @>
  let constFold0Index_exp    = <@ %i + 0                     <==>   %i                  @>
  let constFoldN0Index_exp   = <@ %i - 0                     <==>   %i                  @>
  let constFoldCardAdd_exp   = <@ (Card %i) .+ (Card %j)     <==>   Card (%i + %j)      @>
  let constFoldCardSub_exp   = <@ (Card %i) .- (Card %j)     <==>   Card (%i - %j)      @>
  let dce_exp                = <@ ( let x = %E1 in %E2: T1 ) <==>   %E2                 @>
  let vectorFoldBuildToFoldOnRange_exp = 
                               <@ fold<Number, Number> %F %a (build<Number> %c1 %G)
                                                             <==>
                                  linalg.iterateNumber (fun acc idx -> (%F) acc ((%G) idx)) %a (Card 0) (%c1 .- (Card 1))
                                                                                        @>
  
  let vectorBuildToStorage_exp = 
                               <@ build<Number> (%c1) (%F)      
                                                             <==>
  