relude-0.5.0: Custom prelude from Kowainik

Copyright(c) 2016 Stephen Diehl
(c) 2016-2018 Serokell
(c) 2018-2019 Kowainik
MaintainerKowainik <>
Safe HaskellTrustworthy




The main module that reexports all functionality. It's allowed to use it without importing any other modules. If you want to use relude per-module basis then just add next lines to your module to replace default Prelude:

{-# LANGUAGE NoImplicitPrelude #-}

import Relude

Alternatively, you can replace base package in your dependencies with base-noprelude and add the following Prelude module to your package to use relude by default in every module instead of Prelude:

module Prelude (module Relude) where
import Relude

This documentation section contains the description of internal module structure to help navigate between modules, search for interesting functionalities and understand where you need to put your new changes (if you're a contributor).

Functions and types are distributed across multiple modules and grouped by meaning or category. Name of the module should give you hints regarding what this module contains. Some categories contain a significant amount of both reexported functions and functions of our own. To make it easier to understand these enormous chunks of functions, all reexported stuff is moved into the separate module with name Relude.SomeCategory.Reexport and our own functions and types are in Relude.SomeCategory.SomeName. For example, see modules Relude.Foldable.Fold and Relude.Foldable.Reexport.

Below is a short description of what you can find under different modules, imported by default from Relude:

And these modules are not exported by default, but you can easily bring them to every module in your package by modifying your Prelude file:


Reexports from base and from modules in this repo

module Relude.Nub