0.1.1
- Define
attached
destructor for Product
datatype
- Define
empty
destructor for Stack
structure
- Replace
flip
on ?
type operator
- Remove type parameter from
Stack
type synonymous
- Split
structure
and value
in Nonempty
type family
- Define
Invariant
instance for Constant
datatype
- Remove all
Invariant
methods except invmap
- Extract
Junction
module from Basis
0.1.2
- Define
Pipeline
control flow paradigm
- Split
Structure
modules on Property
and Concrete
- Define
Hollow
type class for handling empty structures
- Extract
Nonempty
into a separated module
- Define
Graph
concrete structure
- Define infix
:-.
type operator for Lens
- Define
Object
instances for Product
datatype
0.1.3
- Define
Object
instances for Cofree
datatype
- Define all
Object
pattern instances for Constant
datatype
- Define
reset
and shift
methods for Continuation
datatype
- Define
Endo
datatype in Basis
module
- Define
Object
instances for transformer schemes
- Define
Binary
tree concrete structure
- Define some
Object
instances for Jack
datatype
- Remove
Hollow
ad-hoc typeclass
- Merge
Property
and Concrete
modules back
0.1.4
- Define
Jet
datatype in Basis
module
- Add
fail
method for Conclusion
datatype
- Define
find
method in terms of stateful traversing
- Define
filter
method for Stack
datastructure
- Define
loeb
method for Covariant
type class
- Define
Variation
datatype in Basis
module
- Define infix versions of
comap
with various nesting levels
- Define infix versions of
contramap
with various nesting levels
- Rename
Product
constructor from :*
to :*:
- Define
Has
and Injective
type families for Product
proofs
0.1.5
- Add
<&>
and >&<
methods for Covariant
and Contravariant
functors accordingly
- Define
Traversable
instance for Product
datatype
- Rename
Cofree
to Twister
datatype (we will use the first name later)
- Define fixity for
Jet
's and Twister
's constructors
- Rename
Exclusive
to Avoidable
typeclass and exclusive
to idle
method
- Define
Tagged
datatype for attaching type information to the value
- Define
Proxy
datatype for holding no data, but having a phantom parameter
- Define
Validation
datatype (similar to Conclusion
, but can collect errors)
0.1.6
- Define
->>>
, ->>>>
, ->>>>>
methods for Traversable
to compact expressions
- Move
Natural
transformation from Functor
to Transformation
module
- Define infix and infix flipped versions of methods of
Functor
typeclasses
- Define
>>>-
, >>>>-
, >>>>>-
methods for Distributive
to compact expressions
- Rename
<>
method of Semigroup
typeclass to +
- Rename
><
method of Ringoid
typeclass to *
- Rename
unit
to zero
method of Monoid
typeclass
- Define
Quasiring
typeclass
0.1.7
- Define
ifelse
function for Boolean
values
- Change
Stack
and Nonempty
definitions, temporarily remove filter
- Define
<**>
, <***>
, <****>
methods for Applicative
to compact expressions
- Change
Graph
definition
- Rename
ask
to env
method of Environmental
datatype
- Introduce
><
type operator to separate functors from its arguments
- Define
Determinable
typeclass and define its instance for Predicate
- Define
curry
and uncurry
for Product
datatype
- Flip arguments of
statefully
method of Stateful
datatype
- Exclude inner effects from
Environmental
, Storage
and Stateful
datatypes
0.1.8
- Rename
T
junction scheme to UT
and move it to Schemes
submodule and remove up
method
- Rename
Y
junction scheme to UTU
and move it to Schemes
submodule and remove :>:
type operator
- Add variance type arguments to
UT
, UTU
and TUT
schemes
- Rename
U
to TU
, UU
to TUV
, UUU
to TUVW
and put them into Schemes
module
- Define
Composition
typeclass and define its instances for TU
, TUV
, TUVW
, UT
and UTU
- Define
Transformer
typeclass and define its instance for Stateful
datatype
- Replace
transform
on lay
and add equip
method in Transformer
typeclass
- Define
Covariant
, Applicative
, Pointable
, Bindable
and Monad
instances for Stateful
transformer
- Remove
:!:
type operator
- Define
Composition
and Transformer
instances for Maybe
and Conclusion
- Define
Core
, Paradigm
and Pattern
umbrella modules
0.1.9
- Change
Stack
definition: from type synonymous to newtype, change operations accordingly
- Define
.:.
composition: the same thing but with reverse order
- Change
Nonempty
type family, family instances should be defined for each data structure
- Define
:>
type operator for transformers
- Define
Distributive
instance for ->
datatype
- Rename
idle
method of Avoidable
typeclass to empty
- Remove
a
parameter from Layout
to be able to use natural transformations in methods
- Return
filter
method to Stack
data structure
- Rename
unwrap
to untwist
method in Twister
module
- Rename
composition
to unwrap
and Outline
to Primary
in Composition
type class
- Rename
equip
to wrap
and Layout
to Schema
in Transformer
typeclass
- Make
Composition
a superclass for Transformer
typeclass
- Move all
Junction
modules to Pattern
submodule except Kan
0.2.0
- Define
Representable
functor typeclass
- Define
Pointable
, Applicative
, Bindable
and Representable
instances for ->
- Define infix
Adjoint
operators - -|
and |-
- Define
Adjoint
instance for Stateful
and Storage
datatypes
- Change
Graph
definition: from type synonymous to newtype
- Rename
><
to >
, :.:
to .:
, .:.
to :.
- Remove all instances for
Junction
schemes
- Define type operators for profunctorish types:
::|:.
, ::|.:
and ::|::
- Define
Divariant
(also known as Profunctor
) Functor
typeclass
0.2.1
- Generalize
$
up to a method of Divariant
typeclass
- Put concrete data structures to
Specific
submodule
- Move
Nonempty
type family to separated module
- Define
Cartesian
type class
- Rename
?
to %
to use ?
as boolean multi-if
- Replace
ifelse
method from Setoid
module
- Convert
:>
to a newtype
- Rename
Composition
class to Interpreted
- Rename
Junction
machinery to Joint
and move it to Controlflow
module
- Rename
>
type operator to :=
- Create
:#
type synonymous for Tagged
datatype
- Remove
untag
in favor of extract
method
- Rename
Tagged
constructor of Tagged
to Tag
0.2.2
- Change types of
lay
and wrap
methods of Transformer
class
- Define
Adaptable
type class for fitting effects in schemas
- Define
Failable
and failure
for adaptable Conclusion
- Define
Optional
and nothing
for adaptable Maybe
- Rename
Stateful
to State
, get
to current
, put
to replace
- Define
Stateful
adaptable constraint and adapt get
, modify
and put
- Rename
Environmental
to Environment
- Make
env
adaptable effect and remove local
- Define
Accumulator
effect and it's adaptable gather
method
- Define
|->
(Coalgebra) and <-|
(Algebra) type synonyms
- Remove
oblige
in favor of Liftable
instance of Continuation
- Remove
environmentally
in favor of Interpreted
instance for Environment
- Remove
statefully
in favor of Interpreted
instance for State
0.2.3
- Define
Category
type class with identity
and .
methods
- Change
>->
signature: a -> b
to v a d
and c -> d
to v c d
- Extract
Schema
from Transformer
type class as Schematic
type family
- Rename
Transformer
type class to Monadic
- Define
Comonadic
type class for comonad transformers
- Define
Transformer
umbrella module and type family
- Rename
:<
data constructor to Twister
to not confuse it with comonad transformer type operator
- Use
UT
joint scheme for Stack
and Graph
data structures
- Remove
Variant
type in favor of Covariant
and Contravariant
constraints in joint schemes
- Add
Covariant
constraint on schema parameter in Adaptable
type class
- Rename
Storage
type to Store
- Define
Interpreted
, Schematic
and Comonadic
instances for Store
type