MonadicBang.Utils
type DList a = Endo [a] Source #
type Handler m a = a -> m a Source #
Handle a specific AST node
type Try m a = Handler (MaybeT m) a Source #
Try handling an AST node, but may fail (usually because the handler is not applicable)
fromDList :: DList a -> [a] Source #
(??) :: Functor f => f (a -> b) -> a -> f b Source #
hoistMaybe :: Applicative m => Maybe a -> MaybeT m a Source #
panic :: HasCallStack => String -> a Source #