tracking down insidious lawbreakers is.gd/mzUQUp 1:44 PM - Nov 17, 2013 1 See Stephen Compall's other Tweets Stephen Compall @S11001001 OptionT and LazyOptionT does not satisfy the "`a… xuwei-k/scalaz@7659278 rickynils/scalacheck#75 htt… github.com 27 / 152
:-> c)) -> ((a,b) :-> c) (:+:) :: (a :-> c) -> (b :-> c) -> (Either a b :-> c) Unit :: c -> (() :-> c) Nil :: a :-> c Table :: Eq a => [(a,c)] -> (a :-> c) Map :: (a -> b) -> (b -> a) -> (b :-> c) -> (a :-> c) 121 / 152
A :-> (B :-> C)) extends (LazyTuple2[A, B] :-> C) case class :+:[A, B, C]( x: (A :-> C), y: (B :-> C) ) extends ((A \/ B) :-> C) case class Unit[A](a: A) extends (scala.Unit :-> A) case class Nil[A, B]() extends (A :-> B) case class Table[A: Equal, B]( a: Stream[LazyTuple2[A, B]] ) extends (A :-> B) case class Map[A, B, C]( x: A => B, y: B => A, z: (B :-> C) ) extends (A :-> C) 122 / 152
The goal is to make numerical computing in Haskell fun and fast. The main idea is to use a type safe interface for programming in arbitrary subcategories of Hask. 136 / 152