anchor.diff:  import java.util.concurrent.locks
   
   function withLock = |lock| {
  -    return |fun| {
  -        return |args...| {
  -            lock: lock()
  -            try { 
  -                return fun: invokeWithArguments(args) 
  -            } finally { 
  -                lock: unlock() 
  -            }
  -        }
  +  return |fun| {
  +    return |args...| {
  +      lock: lock()
  +      try { 
  +        return fun: invokeWithArguments(args) 
  +      } finally { 
  +        lock: unlock() 
  +      }
       }
  +  }
   }
   
   let myLock = ReentrantLock()
  
positive.code: [source,golo]
  ----
  function deco2 = |fun| {
      return |args...| {
          print("deco2 + ")
          return fun: invokeWithArguments(args)
      }
  }
  
  @deco2
  
negative.code: return a new function printing the message (`hello`) before delegating to the
  inner function.
  
  
  === Use Cases and Examples ===
  
  ==== Aspect oriented programming ====
  