*Top Picks:* - Team GHC announces the first release candidate of version 8.0 <http://haskell.1045720.n5.nabble.com/ANNOUNCE-Glasgow-Haskell-Compiler-8-0-1-release-candidate-1-td5827003.html>. New features include: - Strict and StrictData extensions - TypeFamilyDependencies extension for injective type families <https://ghc.haskell.org/trac/ghc/wiki/InjectiveTypeFamilies> - TypeInType extension for more dependent typing hackery - explicit type application in plain Haskell, not Core - Applicative do-notation - a spanking new pattern-match checker - modularization of the ghci interpreter: it can now run as an independent process Note that the announcement includes a list of bugs linked to the new features. - The engineers at an Australian real estate listings website explain how they "used Category Theory to solve a problem in Java." <http://techblog.realestate.com.au/how-we-used-category-theory-to-solve-a-problem-in-java/> They face the
Quick reminder: the early registration deadline for BOB 2016 is this Sunday! We have some interesting Haskell talks and tutorials at BOB 2016! ================================================================ BOB 2016 Conference "What happens if we simply use what's best?" February 19, 2016 Berlin http://bobkonf.de/2016/ Program: http://bobkonf.de/2016/program.html Registration: http://bobkonf.de/2016/registration.html ================================================================ BOB is the conference for developers, architects and decision-makers to explore technologies beyond the mainstream in software development, and to find the best tools available to software developers today. Our goal is for all participants of BOB to return home with new insights that
These are not likely to be *useful*, but they fall easily into the general bucket of "exactly one sensible instance exists". instance Semigroup (a :~: b) where r <> _ = r instance a ~ b => Monoid (a :~: b) where mempty = Refl mappend r _ = r
I'm using GHC.Generics and have noticed that the data types defined there don't have instances of the standard classes (at least not defined in that module), such as Functor, Applicative, Foldable and Traversable. It'd be very useful to be able to rely on such instances, so that one can define instances of custom types via instances of the generic types. (Hopefully, the compiler can remove most or all conversion overhead) Is there any reason not to add these generic instances?
I have seen these redefined many times now. Examples: https://hackage.haskell.org/package/numericpeano-0.2.0.0/docs/Numeric-Peano.html#t:Nat https://hackage.haskell.org/package/numeric-prelude-0.4.2/docs/Number-Peano.html#t:T https://hackage.haskell.org/package/type-fun-0.0.1/docs/TypeFun-Data-Peano.html#t:N https://hackage.haskell.org/package/number-0.1.1.0/docs/Data-Number-Peano.html#t:Nat https://hackage.haskell.org/package/Peano-0.0.4/docs/Data-Peano.html#t:Peano I often see them used as DataKinds. Too, operations on them can be lazy, which is sometimes useful. I filed a ticket: https://ghc.haskell.org/trac/ghc/ticket/11402 Discussion period: 2 weeks
In transformers-0.5:Data.Functor.Classes class methods like eq1 are replaced by liftEq. With transformers-0.4 I could define: data T a = complicated definition ... deriving (Eq, Ord, Show) instance Eq1 T where eq1 = (==) instance Ord1 T where compare1 = compare instance Show1 T where showsPrec1 = showsPrec In transformers-0.5 it seems that I have to implement Eq1, Ord1, Show1 instances manually. Is there some assistance to define eq1 and compare1 for an ADT? What are the use cases where eq1 was not powerful enough and liftEq is needed?