uvmhs-0.0.1.0
Safe HaskellNone
LanguageHaskell2010

UVMHS.Lib.Fuzzy

Synopsis

Documentation

class Fuzzy a where Source #

Methods

fuzzy :: FuzzyM a Source #

Instances

Instances details
Fuzzy ℕ16 Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Fuzzy ℕ32 Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Fuzzy ℕ64 Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Fuzzy ℕ8 Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Fuzzy ℤ16 Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Fuzzy ℤ32 Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Fuzzy ℤ64 Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Fuzzy ℤ8 Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Fuzzy 𝔹 Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Fuzzy 𝔻 Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Fuzzy ULCExpRaw Source # 
Instance details

Defined in UVMHS.Lang.ULC

Fuzzy Name Source # 
Instance details

Defined in UVMHS.Lib.Substitution.Name

Fuzzy SGName Source # 
Instance details

Defined in UVMHS.Lib.Substitution.Name

Fuzzy SName Source # 
Instance details

Defined in UVMHS.Lib.Substitution.Name

Fuzzy DVar Source # 
Instance details

Defined in UVMHS.Lib.Substitution.Var

Fuzzy GVar Source # 
Instance details

Defined in UVMHS.Lib.Substitution.Var

Fuzzy NVar Source # 
Instance details

Defined in UVMHS.Lib.Substitution.Var

Fuzzy SVar Source # 
Instance details

Defined in UVMHS.Lib.Substitution.Var

Fuzzy Var Source # 
Instance details

Defined in UVMHS.Lib.Substitution.Var

Methods

fuzzy :: FuzzyM Var Source #

Fuzzy () Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Methods

fuzzy :: FuzzyM () Source #

Fuzzy a => Fuzzy (𝐿 a) Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Methods

fuzzy :: FuzzyM (𝐿 a) Source #

Fuzzy a => Fuzzy (𝑂 a) Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Methods

fuzzy :: FuzzyM (𝑂 a) Source #

(Ord k, Fuzzy k, Fuzzy v) => Fuzzy (k v) Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Methods

fuzzy :: FuzzyM (k v) Source #

(Fuzzy a, Fuzzy b) => Fuzzy (a b) Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Methods

fuzzy :: FuzzyM (a b) Source #

(Fuzzy a, Fuzzy b) => Fuzzy (a b) Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Methods

fuzzy :: FuzzyM (a b) Source #

(Ord s, Fuzzy s, Fuzzy e) => Fuzzy (MetaSubst s e) Source # 
Instance details

Defined in UVMHS.Lib.Substitution.Subst

Methods

fuzzy :: FuzzyM (MetaSubst s e) Source #

(Ord s, Fuzzy s, Fuzzy e) => Fuzzy (Subst s e) Source # 
Instance details

Defined in UVMHS.Lib.Substitution.Subst

Methods

fuzzy :: FuzzyM (Subst s e) Source #

(Ord s, Fuzzy s, Fuzzy e) => Fuzzy (SSubstElem s e) Source # 
Instance details

Defined in UVMHS.Lib.Substitution.SubstElem

Methods

fuzzy :: FuzzyM (SSubstElem s e) Source #

(Ord s, Fuzzy s, Fuzzy e) => Fuzzy (SubstElem s e) Source # 
Instance details

Defined in UVMHS.Lib.Substitution.SubstElem

Methods

fuzzy :: FuzzyM (SubstElem s e) Source #

(Ord s, Fuzzy s, Fuzzy e) => Fuzzy (SubstScoped s e) Source # 
Instance details

Defined in UVMHS.Lib.Substitution.SubstScoped

Methods

fuzzy :: FuzzyM (SubstScoped s e) Source #

(Ord s, Fuzzy s, Fuzzy e) => Fuzzy (MVar s e) Source # 
Instance details

Defined in UVMHS.Lib.Substitution.UVar

Methods

fuzzy :: FuzzyM (MVar s e) Source #

(Pretty e, Pretty s, Ord s, Fuzzy s, Fuzzy e) => Fuzzy (UVar s e) Source # 
Instance details

Defined in UVMHS.Lib.Substitution.UVar

Methods

fuzzy :: FuzzyM (UVar s e) Source #

Fuzzy a => Fuzzy (() -> a) Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Methods

fuzzy :: FuzzyM (() -> a) Source #

(Ord sG, Ord sS, Fuzzy sG, Fuzzy sS, Fuzzy e) => Fuzzy (SubstSpaced sG sS e) Source # 
Instance details

Defined in UVMHS.Lib.Substitution.SubstSpaced

Methods

fuzzy :: FuzzyM (SubstSpaced sG sS e) Source #

data FuzzyEnv Source #

Constructors

FuzzyEnv 

Instances

Instances details
MonadReader FuzzyEnv FuzzyM Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Methods

askL :: (FuzzyEnv r') -> FuzzyM r' Source #

localL :: forall a r'. (FuzzyEnv r') -> r' -> FuzzyM a -> FuzzyM a Source #

newtype FuzzyM a Source #

Constructors

FuzzyM 

Fields

Instances

Instances details
Bind FuzzyM Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Methods

(≫=) :: FuzzyM a -> (a -> FuzzyM b) -> FuzzyM b Source #

Functor FuzzyM Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Methods

map :: (a -> b) -> FuzzyM a -> FuzzyM b Source #

Monad FuzzyM Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Return FuzzyM Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Methods

return :: a -> FuzzyM a Source #

MonadRand FuzzyM Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Methods

rng :: State RG a -> FuzzyM a Source #

MonadReader FuzzyEnv FuzzyM Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Methods

askL :: (FuzzyEnv r') -> FuzzyM r' Source #

localL :: forall a r'. (FuzzyEnv r') -> r' -> FuzzyM a -> FuzzyM a Source #

MonadState RG FuzzyM Source # 
Instance details

Defined in UVMHS.Lib.Fuzzy

Methods

get :: FuzzyM RG Source #

put :: RG -> FuzzyM () Source #

mkFuzzyM :: (FuzzyEnv -> RG -> RG a) -> FuzzyM a Source #

fuzzyDec :: FuzzyM a -> FuzzyM a Source #

Use this to ensure termination when building recursive datatypes. Note that this will underflow to the maximum natural when d is zero, so you should only every use this when you're sure d is not zero, e.g. guarded behind a wrchoose with coefficient d.

rand :: forall a m. (MonadRand m, Fuzzy a) => ℕ64 -> ℕ64 -> m a Source #

randTny :: forall a m. (MonadRand m, Fuzzy a) => m a Source #

randSml :: forall a m. (MonadRand m, Fuzzy a) => m a Source #

randMed :: forall a m. (MonadRand m, Fuzzy a) => m a Source #

randLrg :: forall a m. (MonadRand m, Fuzzy a) => m a Source #

isoFuzzy :: (a b, Fuzzy b) => FuzzyM a Source #