Releases: typelift/Swiftz
Forward Lattneral
Swiftz now fully supports Swift 2.0 in all its two-point-oh glory. Changes due to language updates include:
- Removed all the boxing
- No, seriously, it's all gone. Use the
Identity
Functor instead. - Removed
EitherBF
,Either
is now aBifunctor
on its own - Many, many free functions have been moved into extensions.
- Our Dictionary extension now comes with a full set of useful functions and combinators.
- Functions in the
Character
extension have been changed to property getters. Array
is now aMonoid
Proxy
has been added- The
Writer Monad
has been added Num
has been renamed toNumericType
- The
RealType
andIntegralType
protocols have been added Ratio
has been added- Arrow Extensions have been brought back
Result<T>
has been removed. Please useEither<ErrorType, T>
- Infinite
Stream
s have been added - While we're on the subject of
Stream
s, have you seen our new framework Aquifer?
Overall Framework changes include:
- Lenses have been split into their own package, Focus.
- Operators have been split into their own package and standardized throughout all of TypeLift.
- Added the
Foldable
typeclass - Additions to the
Applicative
andMonad
typeclasses have been added in the form of theApplicativeOps
andMonadOps
typeclasses - More tests now use SwiftCheck, also more tests in general!
SISD
Target Acquired
String
s are now first class citizens of this framework!- Fixes the deployment target of the iOS and OS X framework.
- Re-enables support for Travis and Xcode 6.3.x.
This is the last release of Swiftz that defines the (deprecated) concurrency abstractions. Transition all code from Swiftz to Concurrent now!
Cartman
Amdahl's Law
Deprecates all concurrency abstractions and removes any support Swiftz may have had for them. These abstractions will continue to function for 2 more dot releases. After that they will be removed. Please migrate existing code to Concurrent.framework.
Toofer
Welp, we did it. Swiftz now fully supports Swift 1.2 along with a huge number of fixes and improvements. Unfortunately in keeping up with the neighborhood we've lost any semblance of support from Travis. Our build status will stay firmly in the red until they can give us a box running 10.10 to build on.
Such is life.
Anyhow, changes:
- Full support for Swift 1.2
- General and sweeping changes to documentation
- Updates to code formatting and whitespace control
- Testing is now done using SwiftCheck along with XCTest. In future versions we will go SwiftCheck only
- Added
extreme(_:_:)
the dual tospan(_:_:)
- Lists can now be initialized with arrays directly.
- Maybe is now a Monad
- Proper operators for Functor, Applicative, and Monad methods have been added to List and Maybe
- Maybe now supports a fold,
fromMaybe()
, and case analysis,maybe()
- Int and UInt now have Num instances
coalesce
has been temporarily removed.- Set has been removed
- State is now Applicative and a Monad
String.lines()
andString.unlines()
are more efficientscanl
now behaves properly when given the empty list
An Array of Simplifications
This release contains numerous improvements to Set and Array.
Set:
- Adds reduce, partition, and remove.
- Adds toList/toArray
Array:
- Adds a matcher for destructuring.
- Adds head/tail to ArrayExt
- Adds take and drop to ArrayExt
- Simplifies the definition of many combinators with the matcher.
JSON and the Argonauts
Improvements to JSON:
- The decoding mechanism now uses Self constraints.
- Direct instances of JSONDecodable types now replace the old shims.
- JSONDecodable is easier to adopt for custom types like NSURL, NSString, NSDecimalNumber, etc.
- Adds support for traversing into nested JSON objects.
General Improvements:
- Adds the Monoid Coproduct of Monoids (Dither).
- Updates to the latest Swiftx
Bug Fixes:
- Unifies the Sectioning mechanism with Swiftx.
splitAt(_:, _:)
now works on lists where n is larger than list.count (h/t @hffmnn)- Fixes the Carthage build by codesigning and copying the framework on testing builds.
Disequal Rights
Fixes erroneous disequality sections.
Comfortably Num
Simplifies the Num, Semigroup, and Monoid protocols.
- Prefer
Self
declarations over associated types. - Make certain invariants (e.g. the identity element) class variables.
- Simplify multi-parameter Monoids and Semigroups with newtype-style structures.
- Adds the First and Last Monoids.
- Adds the Nil Adjunction Semigroup.