You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add (and use) linear generics for many classes #394 (treeowl)
Control.Functor.Linear.Functor, Data.Functor.Linear.{Functor,Applicative} can now be derived through Generically1
Data.Functor.Linear.Traversable cannot be derived directly, but one can get genericTraverse for a Generic1 type and then set traverse = genericTraverse
Data.Unrestricted.Linear.{Consumable,Dupable,Movable} can be derived through Generically
Remove superclass constraint on Prelude.{Semigroup,Monoid} for Data.Monoid.Linear.{Semigroup,Monoid}. Data.Monoid.Linear.Monoid instances now have to define mempty
Add many missing instances of Data.Monoid.Linear.{Semigroup,Monoid}
Deprecate Data.Monoid.Linear.{Adding,Multiplying,getAdded,getMultiplied} in favor of Data.Semigroup.{Sum,Product} (reexported under Data.Monoid.Linear) which now have linear Semigroup and Monoid instance. Sum and Product inner values can be extracted linearly with pattern-matching
Data.Semigroup is no longer reexported as a whole under Data.Monoid.Linear. Instead, only newtypes with a linear Semigroup instance are reexported
Add missing fixity declarations for every operator of linear-base#386, (tbagrel1)
cons :: forall n a. a %1 -> V (n - 1) a %1 -> V n a
uncons# :: 1 <= n => V n a %1 -> (# a, V (n - 1) a #)
uncons :: 1 <= n => V n a %1 -> (a, V (n - 1) a)
elim :: forall (n :: Nat) a b f. IsFunN a b f => f %1 -> V n a %1 -> b
make :: forall (n :: Nat) a f. IsFunN a (V n a) f => f
fromReplicator :: forall n a. KnownNat n => Replicator a %1 -> V n a
theLength :: forall n. KnownNat n => Prelude.Int
dupV is now part of Data.V.Linear:
dupV :: forall n a. (KnownNat n, Dupable a) => a %1 -> V n a
Replace dupV in the minimal definition of Data.Unrestricted.Linear.Dupable with dupR :: a %1 -> Replicator a#360 (tbagrel1) #365 (facundominguez)
Introduce a new data type Data.Replicator.Linear.Replicator, which represents an infinite linear stream producing values of type a, with a stream-like API and a Data.Functor.Linear.Applicative instance
Data.Unrestricted.Linear.Dupable no longer depends on Data.V.Linear
Add dup3, dup4, dup5, dup6, dup7
Polymorphise the type of some Prelude.Linear functions in levity and multiplicity #353 (treeowl)
($) :: forall {rep} a (b :: TYPE rep) p q. (a %p-> b) %q-> a %p-> b
(&) :: forall {rep} a (b :: TYPE rep) p q. a %p-> (a %p-> b) %q-> b
($!) :: forall {rep} a (b :: TYPE rep) p q. (a %p-> b) %q-> a %p-> b
(.) :: forall {rep} b (c :: TYPE rep) a q m n. (b %1-> c) %q-> (a %1-> b) %m-> a %n-> c
forget :: forall {rep} a (b :: TYPE rep). (a %1-> b) %1-> a -> b
Multiplicity-polymorphise the type of some Prelude.Linear functions #319 (aspiwack)
id :: a %q-> a
const :: a %q-> b -> a
asTypeOf :: a %q-> a -> a
seq :: a -> b %q-> b
curry :: ((a, b) %p-> c) %q-> a %p-> b %p-> c
uncurry :: (a %p-> b %p-> c) %q-> (a, b) %p-> c
runIdentity' :: Identity a %p-> a
Remove LinearArrow usage in Control.Optics.Linear and use FUN 'One instead #308 (sjoerdvisscher)
This change add a Data.Profunctor.Linear.Profunctor instance to FUN 'One
Add .Linear.Internal modules (and only export parts of them in publicly-exposed .Linear modules) #306 (ekmett)
Data.Array.Destination[.Internal]
Data.Array.Mutable.Linear[.Internal]
Data.HashMap.Mutable.Linear[.Internal]
Data.Set.Mutable.Linear[.Internal]
Data.Vector.Mutable.Linear[.Internal]
Foreign.Marshal.Pure[.Internal]
System.IO.Resource.Linear.[.Internal]
This principle has been applied for newly-created modules in the subsequent PRs
New additions
Add Data.Arity.Linear module containing type-level helpers to deal with n-ary linear functions and type-level structural integers #390 (aspiwack), #391 (tbagrel1)
Add void function to consume Control.Functor.Linear.Functor inner value #387 (tbagrel1)
Add inspection tests to check inlining of Data.Replicator.Linear.elim and Data.V.Linear.{make,elim}#367 (tbagrel1)