Module

Whine.Traversals

Package
purescript-whine-core
Repository
collegevine/purescript-whine

#Traversal Source

type Traversal :: Type -> (Type -> Type) -> Typetype Traversal e m = { onBinder :: Binder e -> m Unit, onDecl :: Declaration e -> m Unit, onExpr :: Expr e -> m Unit, onType :: Type e -> m Unit }

#emptyTraversal Source

emptyTraversal :: forall m e. Monad m => Traversal e m

#traverseModule Source

traverseModule :: forall m e. Monad m => Traversal e m -> Module e -> m Unit

#everywhereOnDecls Source

everywhereOnDecls :: forall m e. Monad m => (Declaration e -> m Unit) -> Module e -> m Unit

#everywhereOnExprs Source

everywhereOnExprs :: forall m e. Monad m => (Expr e -> m Unit) -> Module e -> m Unit

#everywhereOnTypes Source

everywhereOnTypes :: forall m e. Monad m => (Type e -> m Unit) -> Module e -> m Unit

#separatedToArray Source

separatedToArray :: forall a. Separated a -> Array a