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 sizeT precT) :<: (CAmplify sizeT precT) # 
Instance details

Defined in Traq.Primitives.Amplify.CAmplify

Methods

inject :: Amplify sizeT precT -> CAmplify sizeT precT #

project :: CAmplify sizeT precT -> Maybe (Amplify sizeT precT) #

(Amplify sizeT precT) :<: (QAmplify sizeT precT) # 
Instance details

Defined in Traq.Primitives.Amplify.QAmplify

Methods

inject :: Amplify sizeT precT -> QAmplify sizeT precT #

project :: QAmplify sizeT precT -> Maybe (Amplify sizeT precT) #

(PrimSearch (Sym sizeT) (Sym precT)) :<: (QSearchSym sizeT precT) # 
Instance details

Defined in Traq.Primitives.Search.Symbolic

Methods

inject :: PrimSearch (Sym sizeT) (Sym precT) -> QSearchSym sizeT precT #

project :: QSearchSym sizeT precT -> Maybe (PrimSearch (Sym sizeT) (Sym precT)) #

(PrimSearch sizeT precT) :<: (DetSearch sizeT precT) # 
Instance details

Defined in Traq.Primitives.Search.DetSearch

Methods

inject :: PrimSearch sizeT precT -> DetSearch sizeT precT #

project :: DetSearch sizeT precT -> Maybe (PrimSearch sizeT precT) #

(PrimSearch sizeT precT) :<: (QSearchCFNW sizeT precT) # 
Instance details

Defined in Traq.Primitives.Search.QSearchCFNW

Methods

inject :: PrimSearch sizeT precT -> QSearchCFNW sizeT precT #

project :: QSearchCFNW sizeT precT -> Maybe (PrimSearch sizeT precT) #

(FindXorPeriod sizeT precT) :<: (SimonsFindXorPeriod sizeT precT) # 
Instance details

Defined in Traq.Primitives.Simons.Quantum

Methods

inject :: FindXorPeriod sizeT precT -> SimonsFindXorPeriod sizeT precT #

project :: SimonsFindXorPeriod sizeT precT -> Maybe (FindXorPeriod sizeT precT) #

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 sizeT precT) (SimonsFindXorPeriod sizeT precT) # 
Instance details

Defined in Traq.Primitives.Simons.Quantum

Methods

extract :: SimonsFindXorPeriod sizeT precT -> FindXorPeriod sizeT precT #