The Flyweight pattern is a special kind of Memoization where the memoized function is a constructor. This pattern is especially relevant in Scala for implicit conversions to RichFoo objects.