concat-examples-0.3.0.0: Some examples of compiling to categories
Safe HaskellSafe-Inferred
LanguageHaskell2010

ConCat.Interval

Description

Interval analysis

Documentation

type family Iv a Source #

Instances

Instances details
type Iv () Source # 
Instance details

Defined in ConCat.Interval

type Iv () = ()
type Iv Double Source # 
Instance details

Defined in ConCat.Interval

type Iv Float Source # 
Instance details

Defined in ConCat.Interval

type Iv Int Source # 
Instance details

Defined in ConCat.Interval

type Iv Int = Int :* Int
type Iv (Par1 a) Source # 
Instance details

Defined in ConCat.Interval

type Iv (Par1 a) = Iv (O (Par1 a))
type Iv (a :* b) Source # 
Instance details

Defined in ConCat.Interval

type Iv (a :* b) = Iv a :* Iv b
type Iv (a :+ b) Source # 
Instance details

Defined in ConCat.Interval

type Iv (a :+ b) = Iv a :+ Iv b
type Iv (a -> b) Source # 
Instance details

Defined in ConCat.Interval

type Iv (a -> b) = Iv a -> Iv b
type Iv (L s a b) Source # 
Instance details

Defined in ConCat.Interval

type Iv (L s a b) = Iv (O (L s a b))

data IF a b Source #

Constructors

IF 

Fields

Instances

Instances details
AssociativePCat IF Source # 
Instance details

Defined in ConCat.Interval

Methods

lassocP :: Ok3 IF a b c => IF (Prod IF a (Prod IF b c)) (Prod IF (Prod IF a b) c) Source #

rassocP :: Ok3 IF a b c => IF (Prod IF (Prod IF a b) c) (Prod IF a (Prod IF b c)) Source #

BraidedPCat IF Source # 
Instance details

Defined in ConCat.Interval

Methods

swapP :: Ok2 IF a b => IF (Prod IF a b) (Prod IF b a) Source #

BraidedSCat IF Source # 
Instance details

Defined in ConCat.Interval

Methods

swapS :: Ok2 IF a b => IF (Coprod IF a b) (Coprod IF b a) Source #

Category IF Source # 
Instance details

Defined in ConCat.Interval

Associated Types

type Ok IF :: Type -> Constraint Source #

Methods

id :: Ok IF a => IF a a Source #

(.) :: forall b c a. Ok3 IF a b c => IF b c -> IF a b -> IF a c Source #

ClosedCat IF Source # 
Instance details

Defined in ConCat.Interval

Methods

apply :: Ok2 IF a b => IF (Prod IF (Exp IF a b) a) b Source #

curry :: Ok3 IF a b c => IF (Prod IF a b) c -> IF a (Exp IF b c) Source #

uncurry :: Ok3 IF a b c => IF a (Exp IF b c) -> IF (Prod IF a b) c Source #

CoproductCat IF Source # 
Instance details

Defined in ConCat.Interval

Methods

inl :: Ok2 IF a b => IF a (Coprod IF a b) Source #

inr :: Ok2 IF a b => IF b (Coprod IF a b) Source #

jam :: Ok IF a => IF (Coprod IF a a) a Source #

DistribCat IF Source # 
Instance details

Defined in ConCat.Interval

Methods

distl :: Ok3 IF a u v => IF (Prod IF a (Coprod IF u v)) (Coprod IF (Prod IF a u) (Prod IF a v)) Source #

distr :: Ok3 IF u v b => IF (Prod IF (Coprod IF u v) b) (Coprod IF (Prod IF u b) (Prod IF v b)) Source #

MonoidalPCat IF Source # 
Instance details

Defined in ConCat.Interval

Methods

(***) :: Ok4 IF a b c d => IF a c -> IF b d -> IF (Prod IF a b) (Prod IF c d) Source #

first :: forall a a' b. Ok3 IF a b a' => IF a a' -> IF (Prod IF a b) (Prod IF a' b) Source #

second :: Ok3 IF a b b' => IF b b' -> IF (Prod IF a b) (Prod IF a b') Source #

MonoidalSCat IF Source # 
Instance details

Defined in ConCat.Interval

Methods

(+++) :: Ok4 IF a b c d => IF c a -> IF d b -> IF (Coprod IF c d) (Coprod IF a b) Source #

left :: forall a a' b. Oks IF '[a, b, a'] => IF a a' -> IF (Coprod IF a b) (Coprod IF a' b) Source #

right :: Oks IF '[a, b, b'] => IF b b' -> IF (Coprod IF a b) (Coprod IF a b') Source #

ProductCat IF Source # 
Instance details

Defined in ConCat.Interval

Methods

exl :: Ok2 IF a b => IF (Prod IF a b) a Source #

exr :: Ok2 IF a b => IF (Prod IF a b) b Source #

dup :: Ok IF a => IF a (Prod IF a a) Source #

Iv b ~ (b :* b) => ConstCat IF b Source # 
Instance details

Defined in ConCat.Interval

Methods

const :: Ok IF a => b -> IF a (ConstObj IF b) Source #

unitArrow :: b -> IF (Unit IF) (ConstObj IF b) Source #

(Iv a ~ (a :* a), Num a, Ord a) => NumCat IF a Source # 
Instance details

Defined in ConCat.Interval

Methods

negateC :: IF a a Source #

addC :: IF (Prod IF a a) a Source #

subC :: IF (Prod IF a a) a Source #

mulC :: IF (Prod IF a a) a Source #

powIC :: IF (Prod IF a Int) a Source #

Coercible (Iv a) (Iv b) => CoerceCat IF (a :: Type) (b :: Type) Source # 
Instance details

Defined in ConCat.Interval

Methods

coerceC :: IF a b Source #

Newtype (IF a b) Source # 
Instance details

Defined in ConCat.Interval

Associated Types

type O (IF a b) Source #

Methods

pack :: O (IF a b) -> IF a b Source #

unpack :: IF a b -> O (IF a b) Source #

type Ok IF Source # 
Instance details

Defined in ConCat.Interval

type Ok IF = Yes1 :: Type -> Constraint
type O (IF a b) Source # 
Instance details

Defined in ConCat.Interval

type O (IF a b) = Iv a -> Iv b

min4 :: Ord a => ((a :* a) :* (a :* a)) -> a Source #

max4 :: Ord a => ((a :* a) :* (a :* a)) -> a Source #

minMax2 :: Ord a => a -> a -> a :* a Source #

minMax4 :: Ord a => a -> a -> a -> a -> a :* a Source #

ivFun :: (a -> b) -> Iv a -> Iv b Source #