| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Unison.KindInference.Generate.Monad
Synopsis
- newtype Gen v loc a = Gen {}
- data GenState v loc = GenState {}
- data GenError loc = MissingBuiltin loc Reference
- type GeneratedConstraint v loc = Constraint (UVar v loc) v loc Provenance
- run :: Gen v loc a -> GenState v loc -> Either (GenError loc) (a, GenState v loc)
- freshVar :: Var v => Type v loc -> Gen v loc (UVar v loc)
- pushType :: Var v => Type v loc -> Gen v loc (UVar v loc)
- popType :: Var v => Type v loc -> Gen v loc ()
- scopedType :: Var v => Type v loc -> (UVar v loc -> Gen v loc r) -> Gen v loc r
- lookupType :: Var v => Type v loc -> Gen v loc (Maybe (UVar v loc))
Documentation
Instances
| MonadError (GenError loc) (Gen v loc) Source # | |
Defined in Unison.KindInference.Generate.Monad Methods throwError :: GenError loc -> Gen v loc a # catchError :: Gen v loc a -> (GenError loc -> Gen v loc a) -> Gen v loc a # | |
| Applicative (Gen v loc) Source # | |
Defined in Unison.KindInference.Generate.Monad | |
| Functor (Gen v loc) Source # | |
| Monad (Gen v loc) Source # | |
| MonadState (GenState v loc) (Gen v loc) Source # | |
The Gen monad state
Constructors
| GenState | |
Instances
Constructors
| MissingBuiltin loc Reference |
Instances
type GeneratedConstraint v loc = Constraint (UVar v loc) v loc Provenance Source #
A generated constraint
run :: Gen v loc a -> GenState v loc -> Either (GenError loc) (a, GenState v loc) Source #
Gen monad runner
freshVar :: Var v => Type v loc -> Gen v loc (UVar v loc) Source #
Create a unique UVar associated with typ
pushType :: Var v => Type v loc -> Gen v loc (UVar v loc) Source #
Associate a fresh UVar with t, push onto context