code-conjure-0.4.2: conjure Haskell functions out of partial definitions
Copyright(c) 2021 Rudy Matela
License3-Clause BSD (see the file LICENSE)
MaintainerRudy Matela <rudy@matela.com.br>
Safe HaskellNone
LanguageHaskell2010

Conjure.Utils

Description

An internal module of Conjure. This exports List, Maybe, Function and a few other simple utitilites.

Synopsis

Documentation

module Data.List

module Data.Maybe

module Data.Tuple

count :: (a -> Bool) -> [a] -> Int Source #

nubOn :: Eq b => (a -> b) -> [a] -> [a] Source #

nubSort :: Ord a => [a] -> [a] Source #

iterateUntil :: (a -> a -> Bool) -> (a -> a) -> a -> a Source #

mzip :: Monoid a => [a] -> [a] -> [a] Source #

groupOn :: Eq b => (a -> b) -> [a] -> [[a]] Source #

takeUntil :: (a -> Bool) -> [a] -> [a] Source #

takeNextWhile :: (a -> a -> Bool) -> [a] -> [a] Source #

takeNextUntil :: (a -> a -> Bool) -> [a] -> [a] Source #

deconstructions :: (a -> Bool) -> (a -> a) -> a -> [a] Source #

isDeconstruction :: [a] -> (a -> Bool) -> (a -> a) -> Bool Source #

The deconstruction is considered valid if it converges for more than half of the given values.

idIO :: (a -> IO ()) -> a -> a Source #

WARNING: uses unsafePerformIO and should only be used for debugging!

> idIO print 10
10
10

mapHead :: (a -> a) -> [a] -> [a] Source #

sets :: [a] -> [[a]] Source #

headOr :: a -> [a] -> a Source #

allEqual :: Eq a => [a] -> Bool Source #

choices :: [a] -> [(a, [a])] Source #

choicesThat :: (a -> [a] -> Bool) -> [a] -> [(a, [a])] Source #

filterAnd :: (a -> Bool) -> [a] -> ([a], Bool) Source #