Ideas.Common.View

class Arrow a

class ArrowChoice a

class ArrowZero a

class ArrowPlus a

(>>>)

(<<<)

IsMatch type class

class IsMatcher f

matchM

belongsTo

viewEquivalent

viewEquivalentWith

data Matcher a b

makeMatcher

IsView type class

class IsView f

simplify

simplifyWith

simplifyWithM

canonical

canonicalWith

canonicalWithM

isCanonical

isCanonicalWith

Views

data View a b

identity

makeView

matcherView

Isomorphisms

data Isomorphism a b

from

to

inverse

Lifting with views

class LiftView f

Some combinators

swapView

listView

traverseView

($<)

Packaging a view

data ViewPackage

Properties on views

propIdempotence

propSoundness

propNormalForm