Safe Haskell | None |
---|---|
Language | Haskell2010 |
- data TAtom
- data NTypeF (m :: * -> *) r
- compareTypes :: NTypeF m r -> NTypeF m r -> Ordering
- data NSymbolicF r
- newtype SThunk m = SThunk {}
- newtype Symbolic m = Symbolic {
- getSymbolic :: Var m (NSymbolicF (NTypeF m (SThunk m)))
- everyPossible :: MonadVar m => m (Symbolic m)
- mkSymbolic :: MonadVar m => [NTypeF m (SThunk m)] -> m (Symbolic m)
- packSymbolic :: MonadVar m => NSymbolicF (NTypeF m (SThunk m)) -> m (Symbolic m)
- unpackSymbolic :: MonadVar m => Symbolic m -> m (NSymbolicF (NTypeF m (SThunk m)))
- type MonadLint e m = (Scoped e (SThunk m) m, Framed e m, MonadVar m)
- symerr :: forall e m a. MonadLint e m => String -> m a
- renderSymbolic :: MonadLint e m => Symbolic m -> m String
- merge :: forall e m. MonadLint e m => NExprF () -> [NTypeF m (SThunk m)] -> [NTypeF m (SThunk m)] -> m [NTypeF m (SThunk m)]
- unify :: forall e m. MonadLint e m => NExprF () -> Symbolic m -> Symbolic m -> m (Symbolic m)
- lintBinaryOp :: forall e m. (MonadLint e m, MonadEval (Symbolic m) m) => NBinaryOp -> Symbolic m -> m (Symbolic m) -> m (Symbolic m)
- lintApp :: forall e m. MonadLint e m => NExprF () -> Symbolic m -> m (Symbolic m) -> m (HashMap VarName (Symbolic m), Symbolic m)
- newtype Lint s a = Lint {}
- runLintM :: Options -> Lint s a -> ST s a
- symbolicBaseEnv :: Monad m => m (Scopes m (SThunk m))
- lint :: Options -> NExprLoc -> ST s (Symbolic (Lint s))
Documentation
data NSymbolicF r Source #
Functor NSymbolicF Source # | |
Foldable NSymbolicF Source # | |
Traversable NSymbolicF Source # | |
Eq r => Eq (NSymbolicF r) Source # | |
Ord r => Ord (NSymbolicF r) Source # | |
Show r => Show (NSymbolicF r) Source # | |
ToValue [SThunk m] m (Symbolic m) Source # | |
MonadLint e m => MonadThunk (Symbolic m) (SThunk m) m Source # | |
ToValue (AttrSet (SThunk m), AttrSet SourcePos) m (Symbolic m) Source # | |
FromValue (AttrSet (SThunk m), AttrSet SourcePos) m (Symbolic m) Source # | |
MonadReader (Context (Lint s) (SThunk (Lint s))) (Lint s) Source # | |
Symbolic | |
|
ToValue Bool m (Symbolic m) Source # | |
Show (Symbolic m) Source # | |
MonadLint e m => MonadEval (Symbolic m) m Source # | |
ToValue [SThunk m] m (Symbolic m) Source # | |
MonadLint e m => MonadThunk (Symbolic m) (SThunk m) m Source # | |
ToValue (AttrSet (SThunk m), AttrSet SourcePos) m (Symbolic m) Source # | |
FromValue (Text, DList Text) m (Symbolic m) Source # | |
FromValue (AttrSet (SThunk m), AttrSet SourcePos) m (Symbolic m) Source # | |
everyPossible :: MonadVar m => m (Symbolic m) Source #
packSymbolic :: MonadVar m => NSymbolicF (NTypeF m (SThunk m)) -> m (Symbolic m) Source #
unpackSymbolic :: MonadVar m => Symbolic m -> m (NSymbolicF (NTypeF m (SThunk m))) Source #
merge :: forall e m. MonadLint e m => NExprF () -> [NTypeF m (SThunk m)] -> [NTypeF m (SThunk m)] -> m [NTypeF m (SThunk m)] Source #
unify :: forall e m. MonadLint e m => NExprF () -> Symbolic m -> Symbolic m -> m (Symbolic m) Source #
unify raises an error if the result is would be 'NMany []'.
lintBinaryOp :: forall e m. (MonadLint e m, MonadEval (Symbolic m) m) => NBinaryOp -> Symbolic m -> m (Symbolic m) -> m (Symbolic m) Source #
lintApp :: forall e m. MonadLint e m => NExprF () -> Symbolic m -> m (Symbolic m) -> m (HashMap VarName (Symbolic m), Symbolic m) infixl 1 Source #