traq
Safe HaskellSafe-Inferred
LanguageHaskell2010

Traq.Data.Subtyping

Synopsis

Documentation

class sub :<: sup where #

Subtyping for has-a relationships.

Minimal complete definition

Nothing

Methods

inject :: sub -> sup #

Inject a subtype into its supertype.

default inject :: (Generic sup, GHasA sub (Rep sup)) => sub -> sup #

project :: sup -> Maybe sub #

Project out a subtype value from the supertype.

default project :: (Generic sup, GHasA sub (Rep sup)) => sup -> Maybe sub #

Instances

Instances details
a :<: a # 
Instance details

Defined in Traq.Data.Subtyping

Methods

inject :: a -> a #

project :: a -> Maybe a #

(Amplify size prec) :<: (CAmplify size prec) # 
Instance details

Defined in Traq.Primitives.Amplify.CAmplify

Methods

inject :: Amplify size prec -> CAmplify size prec #

project :: CAmplify size prec -> Maybe (Amplify size prec) #

(Amplify size prec) :<: (QAmplify size prec) # 
Instance details

Defined in Traq.Primitives.Amplify.QAmplify

Methods

inject :: Amplify size prec -> QAmplify size prec #

project :: QAmplify size prec -> Maybe (Amplify size prec) #

(PrimSearch (Sym size) (Sym prec)) :<: (QSearchSym size prec) # 
Instance details

Defined in Traq.Primitives.Search.Symbolic

Methods

inject :: PrimSearch (Sym size) (Sym prec) -> QSearchSym size prec #

project :: QSearchSym size prec -> Maybe (PrimSearch (Sym size) (Sym prec)) #

(PrimSearch size prec) :<: (DetSearch size prec) # 
Instance details

Defined in Traq.Primitives.Search.DetSearch

Methods

inject :: PrimSearch size prec -> DetSearch size prec #

project :: DetSearch size prec -> Maybe (PrimSearch size prec) #

(PrimSearch size prec) :<: (QSearchCFNW size prec) # 
Instance details

Defined in Traq.Primitives.Search.QSearchCFNW

Methods

inject :: PrimSearch size prec -> QSearchCFNW size prec #

project :: QSearchCFNW size prec -> Maybe (PrimSearch size prec) #

(FindXorPeriod size prec) :<: (SimonsFindXorPeriod size prec) # 
Instance details

Defined in Traq.Primitives.Simons.Quantum

Methods

inject :: FindXorPeriod size prec -> SimonsFindXorPeriod size prec #

project :: SimonsFindXorPeriod size prec -> Maybe (FindXorPeriod size prec) #

class IsA t a where #

Subtyping for is-a relationships.

Minimal complete definition

Nothing

Methods

extract :: a -> t #

default extract :: (Generic a, GIsA t (Rep a)) => a -> t #

Instances

Instances details
IsA a a # 
Instance details

Defined in Traq.Data.Subtyping

Methods

extract :: a -> a #

IsA (FindXorPeriod size prec) (SimonsFindXorPeriod size prec) # 
Instance details

Defined in Traq.Primitives.Simons.Quantum

Methods

extract :: SimonsFindXorPeriod size prec -> FindXorPeriod size prec #