anchor.diff:      (ComposedSet.compose (a ++ b ++ c)) = (validStrA + validStrB + validStrC)
   
   
  -let config = { Config.Quick with MaxTest = 10000; Arbitrary = [typeof<Generators>]}
  +let config = { Config.Quick with MaxTest = 10000; Arbitrary = [typeof<ComposableGenerators>]}
   Check.One(config, hashcode)
   Check.One(config, equals)
   Check.One(config, trim)
  
positive.code:     let conc = ComposedSet.concat end_trimmed start_trimmed
      (ComposedSet.compose a) = (ComposedSet.compose conc)
  
  [<Property(Arbitrary=[|typeof<Generators>|])>]
  let concat (validStrA : Decomposable) (validStrB : Decomposable) (validStrC : Decomposable) =
      let (++) = ComposedSet.concat
      let a = ComposedSet.decompose validStrA
  
negative.code:         }
      Gen.sized randomSequenceOfChars'
  
  type ComposableGenerators = static member Decomposable() = { new Arbitrary<Decomposable>() with override x.Generator = randomSequenceOfChars }
  
  [<Property(Arbitrary=[|typeof<ComposableGenerators>|])>]
  let hashcode (validStrA:Decomposable) (validStrB:Decomposable) = 
      let a = ComposedSet.decompose validStrA
      let b = ComposedSet.decompose validStrB
  