License  GPL2 

Maintainer  yidevel@googlegroups.com 
Stability  experimental 
Portability  portable 
Safe Haskell  Safe 
Language  Haskell2010 
Extensions 

Various utility functions and instances used throughout Yi. Some of the functions from the nowremoved Yi.Prelude found a new home here.
Synopsis
 io :: MonadBase IO m => IO a > m a
 fst3 :: (a, b, c) > a
 snd3 :: (a, b, c) > b
 trd3 :: (a, b, c) > c
 class SemiNum absolute relative  absolute > relative where
 nubSet :: Ord a => [a] > [a]
 mapAdjust' :: Ord k => (a > a) > k > Map k a > Map k a
 mapFromFoldable :: (Foldable t, Ord k) => t (k, a) > Map k a
 groupBy' :: (a > a > Bool) > [a] > [[a]]
 chain :: (a > a > Bool) > [a] > ([a], [a])
 commonPrefix :: Eq a => [[a]] > [a]
 findPL :: (a > Bool) > [a] > Maybe (PointedList a)
 swapFocus :: (PointedList a > PointedList a) > PointedList a > PointedList a
 makeClassyWithSuffix :: String > Name > Q [Dec]
 addSuffix :: Name > String > [DefName]
 makeLensesWithSuffix :: String > Name > Q [Dec]
Documentation
class SemiNum absolute relative  absolute > relative where Source #
mapAdjust' :: Ord k => (a > a) > k > Map k a > Map k a Source #
As Map.adjust, but the combining function is applied strictly.
mapFromFoldable :: (Foldable t, Ord k) => t (k, a) > Map k a Source #
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'.
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 a Source #
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.