yi-language-0.1.0.8: Collection of language-related Yi libraries.

Portabilityportable
Stabilityexperimental
Maintaineryi-devel@googlegroups.com
Safe HaskellNone

Yi.Utils

Description

Various utility functions and instances used throughout Yi. Some of the functions from the now-removed Yi.Prelude found a new home here.

Synopsis

Documentation

io :: MonadBase IO m => IO a -> m aSource

fst3 :: (a, b, c) -> aSource

snd3 :: (a, b, c) -> bSource

trd3 :: (a, b, c) -> cSource

class SemiNum absolute relative | absolute -> relative whereSource

Methods

(+~) :: absolute -> relative -> absoluteSource

(-~) :: absolute -> relative -> absoluteSource

(~-) :: absolute -> absolute -> relativeSource

Instances

nubSet :: Ord a => [a] -> [a]Source

As nub, but with O(n*log(n)) behaviour.

mapAdjust' :: Ord k => (a -> a) -> k -> Map k a -> Map k aSource

As Map.adjust, but the combining function is applied strictly.

mapFromFoldable :: (Foldable t, Ord k) => t (k, a) -> Map k aSource

Generalisation of fromList to arbitrary foldables.

groupBy' :: (a -> a -> Bool) -> [a] -> [[a]]Source

Alternative to groupBy.

 groupBy' (\a b -> abs (a - b) <= 1) [1,2,3] = [[1,2,3]]

whereas

 groupBy (\a b -> abs (a - b) <= 1) [1,2,3] = [[1,2],[3]]

TODO: Check in ghc 6.12 release if groupBy == groupBy'.

chain :: (a -> a -> Bool) -> [a] -> ([a], [a])Source

commonPrefix :: Eq a => [[a]] -> [a]Source

Return the longest common prefix of a set of lists.

 P(xs) === all (isPrefixOf (commonPrefix xs)) xs
 length s > length (commonPrefix xs) --> not (all (isPrefixOf s) xs)

findPL :: (a -> Bool) -> [a] -> Maybe (PointedList a)Source

Finds the first element satisfying the predicate, and returns a zipper pointing at it.

swapFocus :: (PointedList a -> PointedList a) -> PointedList a -> PointedList aSource

Given a function which moves the focus from index A to index B, return a function which swaps the elements at indexes A and B and then moves the focus. See Yi.Editor.swapWinWithFirstE for an example.

makeClassyWithSuffix :: String -> Name -> Q [Dec]Source

addSuffix :: Name -> String -> [DefName]Source

makeLensesWithSuffix :: String -> Name -> Q [Dec]Source