packages feed

hx 0.3 → 0.4

raw patch · 3 files changed

+343/−2 lines, 3 filesdep ~basePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base

API changes (from Hackage documentation)

+ Haskell.X: Version :: [Integer] -> [String] -> Version
+ Haskell.X: data Version
+ Haskell.X: instance [safe] Eq Version
+ Haskell.X: instance [safe] Ord Version
+ Haskell.X: instance [safe] Read Version
+ Haskell.X: instance [safe] Show Version
+ Haskell.X: parseVersion :: String -> [(Version, String)]
+ Haskell.X: versionBranch :: Version -> [Integer]
+ Haskell.X: versionTags :: Version -> [String]
+ Haskell.X.Prelude: (!!) :: [a] -> Int -> a
+ Haskell.X.Prelude: ($!) :: (a -> b) -> a -> b
+ Haskell.X.Prelude: ($) :: (a -> b) -> a -> b
+ Haskell.X.Prelude: (&&&) :: Arrow a => a b c -> a b c' -> a b (c, c')
+ Haskell.X.Prelude: (&&) :: Bool -> Bool -> Bool
+ Haskell.X.Prelude: (*) :: Num a => a -> a -> a
+ Haskell.X.Prelude: (**) :: Floating a => a -> a -> a
+ Haskell.X.Prelude: (***) :: Arrow a => a b c -> a b' c' -> a (b, b') (c, c')
+ Haskell.X.Prelude: (*>) :: Applicative f => f a -> f b -> f b
+ Haskell.X.Prelude: (+) :: Num a => a -> a -> a
+ Haskell.X.Prelude: (++) :: [a] -> [a] -> [a]
+ Haskell.X.Prelude: (+++) :: ArrowChoice a => a b c -> a b' c' -> a (Either b b') (Either c c')
+ Haskell.X.Prelude: (-) :: Num a => a -> a -> a
+ Haskell.X.Prelude: (->>) :: a -> (a -> b) -> b
+ Haskell.X.Prelude: (.) :: Category cat => forall b c a. cat b c -> cat a b -> cat a c
+ Haskell.X.Prelude: (/) :: Fractional a => a -> a -> a
+ Haskell.X.Prelude: (/=) :: Eq a => a -> a -> Bool
+ Haskell.X.Prelude: (<$) :: Functor f => a -> f b -> f a
+ Haskell.X.Prelude: (<$>) :: Functor f => (a -> b) -> f a -> f b
+ Haskell.X.Prelude: (<) :: Ord a => a -> a -> Bool
+ Haskell.X.Prelude: (<*) :: Applicative f => f a -> f b -> f a
+ Haskell.X.Prelude: (<**>) :: Applicative f => f a -> f (a -> b) -> f b
+ Haskell.X.Prelude: (<*>) :: Applicative f => f (a -> b) -> f a -> f b
+ Haskell.X.Prelude: (<+>) :: ArrowPlus a => a b c -> a b c -> a b c
+ Haskell.X.Prelude: (<<<) :: Category cat => cat b c -> cat a b -> cat a c
+ Haskell.X.Prelude: (<<^) :: Arrow a => a c d -> (b -> c) -> a b d
+ Haskell.X.Prelude: (<=) :: Ord a => a -> a -> Bool
+ Haskell.X.Prelude: (<=<) :: Monad m => (b -> m c) -> (a -> m b) -> a -> m c
+ Haskell.X.Prelude: (<>) :: Monoid m => m -> m -> m
+ Haskell.X.Prelude: (<|>) :: Alternative f => f a -> f a -> f a
+ Haskell.X.Prelude: (=<<) :: Monad m => (a -> m b) -> m a -> m b
+ Haskell.X.Prelude: (==) :: Eq a => a -> a -> Bool
+ Haskell.X.Prelude: (>) :: Ord a => a -> a -> Bool
+ Haskell.X.Prelude: (>=) :: Ord a => a -> a -> Bool
+ Haskell.X.Prelude: (>=>) :: Monad m => (a -> m b) -> (b -> m c) -> a -> m c
+ Haskell.X.Prelude: (>>) :: Monad m => m a -> m b -> m b
+ Haskell.X.Prelude: (>>=) :: Monad m => m a -> (a -> m b) -> m b
+ Haskell.X.Prelude: (>>>) :: Category cat => cat a b -> cat b c -> cat a c
+ Haskell.X.Prelude: (>>^) :: Arrow a => a b c -> (c -> d) -> a b d
+ Haskell.X.Prelude: (^) :: (Num a, Integral b) => a -> b -> a
+ Haskell.X.Prelude: (^<<) :: Arrow a => (c -> d) -> a b c -> a b d
+ Haskell.X.Prelude: (^>>) :: Arrow a => (b -> c) -> a c d -> a b d
+ Haskell.X.Prelude: (^^) :: (Fractional a, Integral b) => a -> b -> a
+ Haskell.X.Prelude: (||) :: Bool -> Bool -> Bool
+ Haskell.X.Prelude: (|||) :: ArrowChoice a => a b d -> a c d -> a (Either b c) d
+ Haskell.X.Prelude: All :: Bool -> All
+ Haskell.X.Prelude: Any :: Bool -> Any
+ Haskell.X.Prelude: ArrowMonad :: a () b -> ArrowMonad b
+ Haskell.X.Prelude: Const :: a -> Const a b
+ Haskell.X.Prelude: Dual :: a -> Dual a
+ Haskell.X.Prelude: EQ :: Ordering
+ Haskell.X.Prelude: Endo :: (a -> a) -> Endo a
+ Haskell.X.Prelude: False :: Bool
+ Haskell.X.Prelude: First :: Maybe a -> First a
+ Haskell.X.Prelude: GT :: Ordering
+ Haskell.X.Prelude: Handler :: (e -> IO a) -> Handler a
+ Haskell.X.Prelude: Just :: a -> Maybe a
+ Haskell.X.Prelude: Kleisli :: (a -> m b) -> Kleisli a b
+ Haskell.X.Prelude: LT :: Ordering
+ Haskell.X.Prelude: Last :: Maybe a -> Last a
+ Haskell.X.Prelude: Left :: a -> Either a b
+ Haskell.X.Prelude: Nothing :: Maybe a
+ Haskell.X.Prelude: Product :: a -> Product a
+ Haskell.X.Prelude: Right :: b -> Either a b
+ Haskell.X.Prelude: Sum :: a -> Sum a
+ Haskell.X.Prelude: True :: Bool
+ Haskell.X.Prelude: WrapArrow :: a b c -> WrappedArrow b c
+ Haskell.X.Prelude: WrapMonad :: m a -> WrappedMonad a
+ Haskell.X.Prelude: ZipList :: [a] -> ZipList a
+ Haskell.X.Prelude: abs :: Num a => a -> a
+ Haskell.X.Prelude: acos :: Floating a => a -> a
+ Haskell.X.Prelude: acosh :: Floating a => a -> a
+ Haskell.X.Prelude: aggregate :: Ord a => [a] -> [[a]]
+ Haskell.X.Prelude: aggregateAL :: Ord a => [(a, b)] -> [(a, [b])]
+ Haskell.X.Prelude: aggregateBy :: (a -> a -> Ordering) -> [a] -> [[a]]
+ Haskell.X.Prelude: all :: Foldable t => (a -> Bool) -> t a -> Bool
+ Haskell.X.Prelude: allowInterrupt :: IO ()
+ Haskell.X.Prelude: and :: Foldable t => t Bool -> Bool
+ Haskell.X.Prelude: any :: Foldable t => (a -> Bool) -> t a -> Bool
+ Haskell.X.Prelude: ap :: Monad m => m (a -> b) -> m a -> m b
+ Haskell.X.Prelude: app :: ArrowApply a => a (a b c, b) c
+ Haskell.X.Prelude: appEndo :: Endo a -> a -> a
+ Haskell.X.Prelude: appendFile :: FilePath -> String -> IO ()
+ Haskell.X.Prelude: arr :: Arrow a => (b -> c) -> a b c
+ Haskell.X.Prelude: asTypeOf :: a -> a -> a
+ Haskell.X.Prelude: asin :: Floating a => a -> a
+ Haskell.X.Prelude: asinh :: Floating a => a -> a
+ Haskell.X.Prelude: assert :: Bool -> a -> a
+ Haskell.X.Prelude: asum :: (Foldable t, Alternative f) => t (f a) -> f a
+ Haskell.X.Prelude: atan :: Floating a => a -> a
+ Haskell.X.Prelude: atan2 :: RealFloat a => a -> a -> a
+ Haskell.X.Prelude: atanh :: Floating a => a -> a
+ Haskell.X.Prelude: bracket :: IO a -> (a -> IO b) -> (a -> IO c) -> IO c
+ Haskell.X.Prelude: bracketOnError :: IO a -> (a -> IO b) -> (a -> IO c) -> IO c
+ Haskell.X.Prelude: bracket_ :: IO a -> IO b -> IO c -> IO c
+ Haskell.X.Prelude: break :: (a -> Bool) -> [a] -> ([a], [a])
+ Haskell.X.Prelude: catMaybes :: [Maybe a] -> [a]
+ Haskell.X.Prelude: catch :: Exception e => IO a -> (e -> IO a) -> IO a
+ Haskell.X.Prelude: catchJust :: Exception e => (e -> Maybe b) -> IO a -> (b -> IO a) -> IO a
+ Haskell.X.Prelude: catches :: IO a -> [Handler a] -> IO a
+ Haskell.X.Prelude: ceiling :: (RealFrac a, Integral b) => a -> b
+ Haskell.X.Prelude: chr :: Int -> Char
+ Haskell.X.Prelude: cis :: RealFloat a => a -> Complex a
+ Haskell.X.Prelude: class Applicative f => Alternative (f :: * -> *)
+ Haskell.X.Prelude: class Functor f => Applicative (f :: * -> *)
+ Haskell.X.Prelude: class Category a => Arrow (a :: * -> * -> *)
+ Haskell.X.Prelude: class Arrow a => ArrowApply (a :: * -> * -> *)
+ Haskell.X.Prelude: class Arrow a => ArrowChoice (a :: * -> * -> *)
+ Haskell.X.Prelude: class Arrow a => ArrowLoop (a :: * -> * -> *)
+ Haskell.X.Prelude: class ArrowZero a => ArrowPlus (a :: * -> * -> *)
+ Haskell.X.Prelude: class Arrow a => ArrowZero (a :: * -> * -> *)
+ Haskell.X.Prelude: class AtLeastPair a where type family Fst a type family Snd a
+ Haskell.X.Prelude: class Bounded a
+ Haskell.X.Prelude: class Typeable a => Data a
+ Haskell.X.Prelude: class Enum a
+ Haskell.X.Prelude: class Eq a
+ Haskell.X.Prelude: class (Typeable e, Show e) => Exception e
+ Haskell.X.Prelude: class Fractional a => Floating a
+ Haskell.X.Prelude: class Foldable (t :: * -> *)
+ Haskell.X.Prelude: class Num a => Fractional a
+ Haskell.X.Prelude: class Functor (f :: * -> *)
+ Haskell.X.Prelude: class (Real a, Enum a) => Integral a
+ Haskell.X.Prelude: class IsString a
+ Haskell.X.Prelude: class Monad (m :: * -> *)
+ Haskell.X.Prelude: class Monad m => MonadPlus (m :: * -> *)
+ Haskell.X.Prelude: class Monoid a
+ Haskell.X.Prelude: class Num a
+ Haskell.X.Prelude: class Eq a => Ord a
+ Haskell.X.Prelude: class Read a
+ Haskell.X.Prelude: class (Num a, Ord a) => Real a
+ Haskell.X.Prelude: class (RealFrac a, Floating a) => RealFloat a
+ Haskell.X.Prelude: class (Real a, Fractional a) => RealFrac a
+ Haskell.X.Prelude: class Show a
+ Haskell.X.Prelude: class (Functor t, Foldable t) => Traversable (t :: * -> *)
+ Haskell.X.Prelude: class Typeable a
+ Haskell.X.Prelude: compare :: Ord a => a -> a -> Ordering
+ Haskell.X.Prelude: concat :: Foldable t => t [a] -> [a]
+ Haskell.X.Prelude: concatMap :: Foldable t => (a -> [b]) -> t a -> [b]
+ Haskell.X.Prelude: conjugate :: RealFloat a => Complex a -> Complex a
+ Haskell.X.Prelude: const :: a -> b -> a
+ Haskell.X.Prelude: cos :: Floating a => a -> a
+ Haskell.X.Prelude: cosh :: Floating a => a -> a
+ Haskell.X.Prelude: count2 :: [[a]] -> Int
+ Haskell.X.Prelude: count3 :: [[[a]]] -> Int
+ Haskell.X.Prelude: count4 :: [[[[a]]]] -> Int
+ Haskell.X.Prelude: curry :: ((a, b) -> c) -> a -> b -> c
+ Haskell.X.Prelude: cycle :: [a] -> [a]
+ Haskell.X.Prelude: data Bool :: *
+ Haskell.X.Prelude: data Char :: *
+ Haskell.X.Prelude: data Complex a :: * -> *
+ Haskell.X.Prelude: data Double :: *
+ Haskell.X.Prelude: data Either a b :: * -> * -> *
+ Haskell.X.Prelude: data Float :: *
+ Haskell.X.Prelude: data Handler a :: * -> *
+ Haskell.X.Prelude: data IO a :: * -> *
+ Haskell.X.Prelude: data IOException :: *
+ Haskell.X.Prelude: data Int :: *
+ Haskell.X.Prelude: data Int16 :: *
+ Haskell.X.Prelude: data Int32 :: *
+ Haskell.X.Prelude: data Int64 :: *
+ Haskell.X.Prelude: data Int8 :: *
+ Haskell.X.Prelude: data Integer :: *
+ Haskell.X.Prelude: data Maybe a :: * -> *
+ Haskell.X.Prelude: data Ordering :: *
+ Haskell.X.Prelude: data Ratio a :: * -> *
+ Haskell.X.Prelude: data SomeException :: *
+ Haskell.X.Prelude: data Word16 :: *
+ Haskell.X.Prelude: data Word32 :: *
+ Haskell.X.Prelude: data Word64 :: *
+ Haskell.X.Prelude: data Word8 :: *
+ Haskell.X.Prelude: dataCast1 :: (Data a, Typeable1 t) => (forall d. Data d => c (t d)) -> Maybe (c a)
+ Haskell.X.Prelude: dataCast2 :: (Data a, Typeable2 t) => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a)
+ Haskell.X.Prelude: dataTypeOf :: Data a => a -> DataType
+ Haskell.X.Prelude: decodeFloat :: RealFloat a => a -> (Integer, Int)
+ Haskell.X.Prelude: delete :: Eq a => a -> [a] -> [a]
+ Haskell.X.Prelude: deleteBy :: (a -> a -> Bool) -> a -> [a] -> [a]
+ Haskell.X.Prelude: deleteFirstsBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]
+ Haskell.X.Prelude: digitToInt :: Char -> Int
+ Haskell.X.Prelude: div :: Integral a => a -> a -> a
+ Haskell.X.Prelude: divMod :: Integral a => a -> a -> (a, a)
+ Haskell.X.Prelude: drop :: Int -> [a] -> [a]
+ Haskell.X.Prelude: dropWhile :: (a -> Bool) -> [a] -> [a]
+ Haskell.X.Prelude: either :: (a -> c) -> (b -> c) -> Either a b -> c
+ Haskell.X.Prelude: elem :: (Foldable t, Eq a) => a -> t a -> Bool
+ Haskell.X.Prelude: elemIndex :: Eq a => a -> [a] -> Maybe Int
+ Haskell.X.Prelude: elemIndices :: Eq a => a -> [a] -> [Int]
+ Haskell.X.Prelude: empty :: Alternative f => f a
+ Haskell.X.Prelude: encodeFloat :: RealFloat a => Integer -> Int -> a
+ Haskell.X.Prelude: enumFrom :: Enum a => a -> [a]
+ Haskell.X.Prelude: enumFromThen :: Enum a => a -> a -> [a]
+ Haskell.X.Prelude: enumFromThenTo :: Enum a => a -> a -> a -> [a]
+ Haskell.X.Prelude: enumFromTo :: Enum a => a -> a -> [a]
+ Haskell.X.Prelude: error :: [Char] -> a
+ Haskell.X.Prelude: evaluate :: a -> IO a
+ Haskell.X.Prelude: even :: Integral a => a -> Bool
+ Haskell.X.Prelude: exhaustively :: Eq a => (a -> a) -> a -> a
+ Haskell.X.Prelude: exhaustivelyBy :: (a -> a -> Bool) -> (a -> a) -> a -> a
+ Haskell.X.Prelude: exhaustivelyByM :: Monad m => (a -> a -> Bool) -> (a -> m a) -> a -> m a
+ Haskell.X.Prelude: exhaustivelyM :: (Eq a, Monad m) => (a -> m a) -> a -> m a
+ Haskell.X.Prelude: exp :: Floating a => a -> a
+ Haskell.X.Prelude: exponent :: RealFloat a => a -> Int
+ Haskell.X.Prelude: fail :: Monad m => String -> m a
+ Haskell.X.Prelude: filter :: (a -> Bool) -> [a] -> [a]
+ Haskell.X.Prelude: filterM :: Monad m => (a -> m Bool) -> [a] -> m [a]
+ Haskell.X.Prelude: finally :: IO a -> IO b -> IO a
+ Haskell.X.Prelude: find :: Foldable t => (a -> Bool) -> t a -> Maybe a
+ Haskell.X.Prelude: findIndex :: (a -> Bool) -> [a] -> Maybe Int
+ Haskell.X.Prelude: findIndices :: (a -> Bool) -> [a] -> [Int]
+ Haskell.X.Prelude: first :: Arrow a => a b c -> a (b, d) (c, d)
+ Haskell.X.Prelude: fix :: (a -> a) -> a
+ Haskell.X.Prelude: flip :: (a -> b -> c) -> b -> a -> c
+ Haskell.X.Prelude: floatDigits :: RealFloat a => a -> Int
+ Haskell.X.Prelude: floatRadix :: RealFloat a => a -> Integer
+ Haskell.X.Prelude: floatRange :: RealFloat a => a -> (Int, Int)
+ Haskell.X.Prelude: floor :: (RealFrac a, Integral b) => a -> b
+ Haskell.X.Prelude: fmap :: Functor f => (a -> b) -> f a -> f b
+ Haskell.X.Prelude: fold :: (Foldable t, Monoid m) => t m -> m
+ Haskell.X.Prelude: foldM :: Monad m => (a -> b -> m a) -> a -> [b] -> m a
+ Haskell.X.Prelude: foldM_ :: Monad m => (a -> b -> m a) -> a -> [b] -> m ()
+ Haskell.X.Prelude: foldMap :: (Foldable t, Monoid m) => (a -> m) -> t a -> m
+ Haskell.X.Prelude: foldl :: Foldable t => (a -> b -> a) -> a -> t b -> a
+ Haskell.X.Prelude: foldl' :: Foldable t => forall a b. (a -> b -> a) -> a -> t b -> a
+ Haskell.X.Prelude: foldl1 :: Foldable t => (a -> a -> a) -> t a -> a
+ Haskell.X.Prelude: foldlM :: (Foldable t, Monad m) => (a -> b -> m a) -> a -> t b -> m a
+ Haskell.X.Prelude: foldr :: Foldable t => (a -> b -> b) -> b -> t a -> b
+ Haskell.X.Prelude: foldr' :: Foldable t => forall a b. (a -> b -> b) -> b -> t a -> b
+ Haskell.X.Prelude: foldr1 :: Foldable t => (a -> a -> a) -> t a -> a
+ Haskell.X.Prelude: foldrM :: (Foldable t, Monad m) => (a -> b -> m b) -> b -> t a -> m b
+ Haskell.X.Prelude: forM :: (Traversable t, Monad m) => t a -> (a -> m b) -> m (t b)
+ Haskell.X.Prelude: forM_ :: (Foldable t, Monad m) => t a -> (a -> m b) -> m ()
+ Haskell.X.Prelude: for_ :: (Foldable t, Applicative f) => t a -> (a -> f b) -> f ()
+ Haskell.X.Prelude: forever :: Monad m => m a -> m b
+ Haskell.X.Prelude: fromEnum :: Enum a => a -> Int
+ Haskell.X.Prelude: fromException :: Exception e => SomeException -> Maybe e
+ Haskell.X.Prelude: fromInteger :: Num a => Integer -> a
+ Haskell.X.Prelude: fromIntegral :: (Integral a, Num b) => a -> b
+ Haskell.X.Prelude: fromJust :: Maybe a -> a
+ Haskell.X.Prelude: fromMaybe :: a -> Maybe a -> a
+ Haskell.X.Prelude: fromRational :: Fractional a => Rational -> a
+ Haskell.X.Prelude: fromString :: IsString a => String -> a
+ Haskell.X.Prelude: fst :: AtLeastPair a => a -> Fst a
+ Haskell.X.Prelude: gcd :: Integral a => a -> a -> a
+ Haskell.X.Prelude: getAll :: All -> Bool
+ Haskell.X.Prelude: getAny :: Any -> Bool
+ Haskell.X.Prelude: getChar :: IO Char
+ Haskell.X.Prelude: getConst :: Const a b -> a
+ Haskell.X.Prelude: getContents :: IO String
+ Haskell.X.Prelude: getDual :: Dual a -> a
+ Haskell.X.Prelude: getFirst :: First a -> Maybe a
+ Haskell.X.Prelude: getLast :: Last a -> Maybe a
+ Haskell.X.Prelude: getLine :: IO String
+ Haskell.X.Prelude: getMaskingState :: IO MaskingState
+ Haskell.X.Prelude: getProduct :: Product a -> a
+ Haskell.X.Prelude: getSum :: Sum a -> a
+ Haskell.X.Prelude: getZipList :: ZipList a -> [a]
+ Haskell.X.Prelude: gfoldl :: Data a => (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> a -> c a
+ Haskell.X.Prelude: gmapM :: (Data a, Monad m) => (forall d. Data d => d -> m d) -> a -> m a
+ Haskell.X.Prelude: gmapMo :: (Data a, MonadPlus m) => (forall d. Data d => d -> m d) -> a -> m a
+ Haskell.X.Prelude: gmapMp :: (Data a, MonadPlus m) => (forall d. Data d => d -> m d) -> a -> m a
+ Haskell.X.Prelude: gmapQ :: Data a => (forall d. Data d => d -> u) -> a -> [u]
+ Haskell.X.Prelude: gmapQi :: Data a => Int -> (forall d. Data d => d -> u) -> a -> u
+ Haskell.X.Prelude: gmapQl :: Data a => (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r
+ Haskell.X.Prelude: gmapQr :: Data a => (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r
+ Haskell.X.Prelude: gmapT :: Data a => (forall b. Data b => b -> b) -> a -> a
+ Haskell.X.Prelude: group :: Eq a => [a] -> [[a]]
+ Haskell.X.Prelude: groupBy :: (a -> a -> Bool) -> [a] -> [[a]]
+ Haskell.X.Prelude: guard :: MonadPlus m => Bool -> m ()
+ Haskell.X.Prelude: gunfold :: Data a => (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c a
+ Haskell.X.Prelude: handle :: Exception e => (e -> IO a) -> IO a -> IO a
+ Haskell.X.Prelude: handleJust :: Exception e => (e -> Maybe b) -> (b -> IO a) -> IO a -> IO a
+ Haskell.X.Prelude: head :: [a] -> a
+ Haskell.X.Prelude: id :: Category cat => forall a. cat a a
+ Haskell.X.Prelude: imagPart :: RealFloat a => Complex a -> a
+ Haskell.X.Prelude: init :: [a] -> [a]
+ Haskell.X.Prelude: inits :: [a] -> [[a]]
+ Haskell.X.Prelude: insert :: Ord a => a -> [a] -> [a]
+ Haskell.X.Prelude: insertBy :: (a -> a -> Ordering) -> a -> [a] -> [a]
+ Haskell.X.Prelude: instance [safe] AtLeastPair (a, b)
+ Haskell.X.Prelude: instance [safe] AtLeastPair (a, b, c)
+ Haskell.X.Prelude: instance [safe] AtLeastPair (a, b, c, d)
+ Haskell.X.Prelude: instance [safe] AtLeastPair (a, b, c, d, e)
+ Haskell.X.Prelude: intToDigit :: Int -> Char
+ Haskell.X.Prelude: interact :: (String -> String) -> IO ()
+ Haskell.X.Prelude: intercalate :: [a] -> [[a]] -> [a]
+ Haskell.X.Prelude: intersect :: Eq a => [a] -> [a] -> [a]
+ Haskell.X.Prelude: intersectBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]
+ Haskell.X.Prelude: intersperse :: a -> [a] -> [a]
+ Haskell.X.Prelude: ioError :: IOError -> IO a
+ Haskell.X.Prelude: isAlpha :: Char -> Bool
+ Haskell.X.Prelude: isAlphaNum :: Char -> Bool
+ Haskell.X.Prelude: isAscii :: Char -> Bool
+ Haskell.X.Prelude: isAsciiLower :: Char -> Bool
+ Haskell.X.Prelude: isAsciiUpper :: Char -> Bool
+ Haskell.X.Prelude: isControl :: Char -> Bool
+ Haskell.X.Prelude: isDenormalized :: RealFloat a => a -> Bool
+ Haskell.X.Prelude: isDigit :: Char -> Bool
+ Haskell.X.Prelude: isHexDigit :: Char -> Bool
+ Haskell.X.Prelude: isIEEE :: RealFloat a => a -> Bool
+ Haskell.X.Prelude: isInfinite :: RealFloat a => a -> Bool
+ Haskell.X.Prelude: isInfixOf :: Eq a => [a] -> [a] -> Bool
+ Haskell.X.Prelude: isJust :: Maybe a -> Bool
+ Haskell.X.Prelude: isLatin1 :: Char -> Bool
+ Haskell.X.Prelude: isLetter :: Char -> Bool
+ Haskell.X.Prelude: isLower :: Char -> Bool
+ Haskell.X.Prelude: isMark :: Char -> Bool
+ Haskell.X.Prelude: isNaN :: RealFloat a => a -> Bool
+ Haskell.X.Prelude: isNegativeZero :: RealFloat a => a -> Bool
+ Haskell.X.Prelude: isNothing :: Maybe a -> Bool
+ Haskell.X.Prelude: isNumber :: Char -> Bool
+ Haskell.X.Prelude: isOctDigit :: Char -> Bool
+ Haskell.X.Prelude: isPrefixOf :: Eq a => [a] -> [a] -> Bool
+ Haskell.X.Prelude: isPrint :: Char -> Bool
+ Haskell.X.Prelude: isPunctuation :: Char -> Bool
+ Haskell.X.Prelude: isSeparator :: Char -> Bool
+ Haskell.X.Prelude: isSpace :: Char -> Bool
+ Haskell.X.Prelude: isSuffixOf :: Eq a => [a] -> [a] -> Bool
+ Haskell.X.Prelude: isSymbol :: Char -> Bool
+ Haskell.X.Prelude: isUpper :: Char -> Bool
+ Haskell.X.Prelude: iterate :: (a -> a) -> a -> [a]
+ Haskell.X.Prelude: join :: Monad m => m (m a) -> m a
+ Haskell.X.Prelude: last :: [a] -> a
+ Haskell.X.Prelude: lcm :: Integral a => a -> a -> a
+ Haskell.X.Prelude: left :: ArrowChoice a => a b c -> a (Either b d) (Either c d)
+ Haskell.X.Prelude: leftApp :: ArrowApply a => a b c -> a (Either b d) (Either c d)
+ Haskell.X.Prelude: lefts :: [Either a b] -> [a]
+ Haskell.X.Prelude: length :: [a] -> Int
+ Haskell.X.Prelude: lex :: ReadS String
+ Haskell.X.Prelude: liftA :: Applicative f => (a -> b) -> f a -> f b
+ Haskell.X.Prelude: liftA2 :: Applicative f => (a -> b -> c) -> f a -> f b -> f c
+ Haskell.X.Prelude: liftA3 :: Applicative f => (a -> b -> c -> d) -> f a -> f b -> f c -> f d
+ Haskell.X.Prelude: liftM :: Monad m => (a1 -> r) -> m a1 -> m r
+ Haskell.X.Prelude: liftM2 :: Monad m => (a1 -> a2 -> r) -> m a1 -> m a2 -> m r
+ Haskell.X.Prelude: liftM3 :: Monad m => (a1 -> a2 -> a3 -> r) -> m a1 -> m a2 -> m a3 -> m r
+ Haskell.X.Prelude: liftM4 :: Monad m => (a1 -> a2 -> a3 -> a4 -> r) -> m a1 -> m a2 -> m a3 -> m a4 -> m r
+ Haskell.X.Prelude: liftM5 :: Monad m => (a1 -> a2 -> a3 -> a4 -> a5 -> r) -> m a1 -> m a2 -> m a3 -> m a4 -> m a5 -> m r
+ Haskell.X.Prelude: lines :: String -> [String]
+ Haskell.X.Prelude: listToMaybe :: [a] -> Maybe a
+ Haskell.X.Prelude: log :: Floating a => a -> a
+ Haskell.X.Prelude: logBase :: Floating a => a -> a -> a
+ Haskell.X.Prelude: lookup :: Eq a => a -> [(a, b)] -> Maybe b
+ Haskell.X.Prelude: loop :: ArrowLoop a => a (b, d) (c, d) -> a b c
+ Haskell.X.Prelude: magnitude :: RealFloat a => Complex a -> a
+ Haskell.X.Prelude: many :: Alternative f => f a -> f [a]
+ Haskell.X.Prelude: map :: Functor f => (a -> b) -> f a -> f b
+ Haskell.X.Prelude: mapAccumL :: Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c)
+ Haskell.X.Prelude: mapAccumR :: Traversable t => (a -> b -> (a, c)) -> a -> t b -> (a, t c)
+ Haskell.X.Prelude: mapAndUnzipM :: Monad m => (a -> m (b, c)) -> [a] -> m ([b], [c])
+ Haskell.X.Prelude: mapException :: (Exception e1, Exception e2) => (e1 -> e2) -> a -> a
+ Haskell.X.Prelude: mapM :: Monad m => (a -> m b) -> [a] -> m [b]
+ Haskell.X.Prelude: mapM_ :: (Foldable t, Monad m) => (a -> m b) -> t a -> m ()
+ Haskell.X.Prelude: mapMaybe :: (a -> Maybe b) -> [a] -> [b]
+ Haskell.X.Prelude: mappend :: Monoid a => a -> a -> a
+ Haskell.X.Prelude: mask :: ((forall a. IO a -> IO a) -> IO b) -> IO b
+ Haskell.X.Prelude: mask_ :: IO a -> IO a
+ Haskell.X.Prelude: max :: Ord a => a -> a -> a
+ Haskell.X.Prelude: maxBound :: Bounded a => a
+ Haskell.X.Prelude: maximum :: (Foldable t, Ord a) => t a -> a
+ Haskell.X.Prelude: maximumBy :: Foldable t => (a -> a -> Ordering) -> t a -> a
+ Haskell.X.Prelude: maybe :: b -> (a -> b) -> Maybe a -> b
+ Haskell.X.Prelude: maybeToList :: Maybe a -> [a]
+ Haskell.X.Prelude: mconcat :: Monoid a => [a] -> a
+ Haskell.X.Prelude: mempty :: Monoid a => a
+ Haskell.X.Prelude: mfilter :: MonadPlus m => (a -> Bool) -> m a -> m a
+ Haskell.X.Prelude: min :: Ord a => a -> a -> a
+ Haskell.X.Prelude: minBound :: Bounded a => a
+ Haskell.X.Prelude: minimum :: (Foldable t, Ord a) => t a -> a
+ Haskell.X.Prelude: minimumBy :: Foldable t => (a -> a -> Ordering) -> t a -> a
+ Haskell.X.Prelude: mkPolar :: RealFloat a => a -> a -> Complex a
+ Haskell.X.Prelude: mod :: Integral a => a -> a -> a
+ Haskell.X.Prelude: mplus :: MonadPlus m => m a -> m a -> m a
+ Haskell.X.Prelude: msum :: (Foldable t, MonadPlus m) => t (m a) -> m a
+ Haskell.X.Prelude: mzero :: MonadPlus m => m a
+ Haskell.X.Prelude: negate :: Num a => a -> a
+ Haskell.X.Prelude: newtype All :: *
+ Haskell.X.Prelude: newtype Any :: *
+ Haskell.X.Prelude: newtype ArrowMonad (a :: * -> * -> *) b :: (* -> * -> *) -> * -> *
+ Haskell.X.Prelude: newtype Const a b :: * -> * -> *
+ Haskell.X.Prelude: newtype Dual a :: * -> *
+ Haskell.X.Prelude: newtype Endo a :: * -> *
+ Haskell.X.Prelude: newtype First a :: * -> *
+ Haskell.X.Prelude: newtype Kleisli (m :: * -> *) a b :: (* -> *) -> * -> * -> *
+ Haskell.X.Prelude: newtype Last a :: * -> *
+ Haskell.X.Prelude: newtype Product a :: * -> *
+ Haskell.X.Prelude: newtype Sum a :: * -> *
+ Haskell.X.Prelude: newtype WrappedArrow (a :: * -> * -> *) b c :: (* -> * -> *) -> * -> * -> *
+ Haskell.X.Prelude: newtype WrappedMonad (m :: * -> *) a :: (* -> *) -> * -> *
+ Haskell.X.Prelude: newtype ZipList a :: * -> *
+ Haskell.X.Prelude: not :: Bool -> Bool
+ Haskell.X.Prelude: notElem :: (Foldable t, Eq a) => a -> t a -> Bool
+ Haskell.X.Prelude: nub :: Eq a => [a] -> [a]
+ Haskell.X.Prelude: nubBy :: (a -> a -> Bool) -> [a] -> [a]
+ Haskell.X.Prelude: null :: [a] -> Bool
+ Haskell.X.Prelude: odd :: Integral a => a -> Bool
+ Haskell.X.Prelude: on :: (b -> b -> c) -> (a -> b) -> a -> a -> c
+ Haskell.X.Prelude: onException :: IO a -> IO b -> IO a
+ Haskell.X.Prelude: optional :: Alternative f => f a -> f (Maybe a)
+ Haskell.X.Prelude: or :: Foldable t => t Bool -> Bool
+ Haskell.X.Prelude: ord :: Char -> Int
+ Haskell.X.Prelude: otherwise :: Bool
+ Haskell.X.Prelude: partition :: (a -> Bool) -> [a] -> ([a], [a])
+ Haskell.X.Prelude: partitionEithers :: [Either a b] -> ([a], [b])
+ Haskell.X.Prelude: permutations :: [a] -> [[a]]
+ Haskell.X.Prelude: phase :: RealFloat a => Complex a -> a
+ Haskell.X.Prelude: pi :: Floating a => a
+ Haskell.X.Prelude: polar :: RealFloat a => Complex a -> (a, a)
+ Haskell.X.Prelude: pred :: Enum a => a -> a
+ Haskell.X.Prelude: print :: Show a => a -> IO ()
+ Haskell.X.Prelude: product :: (Foldable t, Num a) => t a -> a
+ Haskell.X.Prelude: properFraction :: (RealFrac a, Integral b) => a -> (b, a)
+ Haskell.X.Prelude: pure :: Applicative f => a -> f a
+ Haskell.X.Prelude: putChar :: Char -> IO ()
+ Haskell.X.Prelude: putStr :: String -> IO ()
+ Haskell.X.Prelude: putStrLn :: String -> IO ()
+ Haskell.X.Prelude: quot :: Integral a => a -> a -> a
+ Haskell.X.Prelude: quotRem :: Integral a => a -> a -> (a, a)
+ Haskell.X.Prelude: read :: Read a => String -> a
+ Haskell.X.Prelude: readFile :: FilePath -> IO String
+ Haskell.X.Prelude: readIO :: Read a => String -> IO a
+ Haskell.X.Prelude: readList :: Read a => ReadS [a]
+ Haskell.X.Prelude: readLn :: Read a => IO a
+ Haskell.X.Prelude: readParen :: Bool -> ReadS a -> ReadS a
+ Haskell.X.Prelude: reads :: Read a => ReadS a
+ Haskell.X.Prelude: readsPrec :: Read a => Int -> ReadS a
+ Haskell.X.Prelude: realPart :: RealFloat a => Complex a -> a
+ Haskell.X.Prelude: realToFrac :: (Real a, Fractional b) => a -> b
+ Haskell.X.Prelude: recip :: Fractional a => a -> a
+ Haskell.X.Prelude: rem :: Integral a => a -> a -> a
+ Haskell.X.Prelude: repeat :: a -> [a]
+ Haskell.X.Prelude: replicate :: Int -> a -> [a]
+ Haskell.X.Prelude: replicateM :: Monad m => Int -> m a -> m [a]
+ Haskell.X.Prelude: replicateM_ :: Monad m => Int -> m a -> m ()
+ Haskell.X.Prelude: return :: Monad m => a -> m a
+ Haskell.X.Prelude: returnA :: Arrow a => a b b
+ Haskell.X.Prelude: reverse :: [a] -> [a]
+ Haskell.X.Prelude: right :: ArrowChoice a => a b c -> a (Either d b) (Either d c)
+ Haskell.X.Prelude: rights :: [Either a b] -> [b]
+ Haskell.X.Prelude: round :: (RealFrac a, Integral b) => a -> b
+ Haskell.X.Prelude: runKleisli :: Kleisli a b -> a -> m b
+ Haskell.X.Prelude: scaleFloat :: RealFloat a => Int -> a -> a
+ Haskell.X.Prelude: scanl :: (a -> b -> a) -> a -> [b] -> [a]
+ Haskell.X.Prelude: scanl1 :: (a -> a -> a) -> [a] -> [a]
+ Haskell.X.Prelude: scanr :: (a -> b -> b) -> b -> [a] -> [b]
+ Haskell.X.Prelude: scanr1 :: (a -> a -> a) -> [a] -> [a]
+ Haskell.X.Prelude: second :: Arrow a => a b c -> a (d, b) (d, c)
+ Haskell.X.Prelude: segment2 :: Int -> [[a]] -> [[a]]
+ Haskell.X.Prelude: segment3 :: Int -> [[[a]]] -> [[a]]
+ Haskell.X.Prelude: seq :: a -> b -> b
+ Haskell.X.Prelude: sequence :: Monad m => [m a] -> m [a]
+ Haskell.X.Prelude: sequenceA :: (Traversable t, Applicative f) => t (f a) -> f (t a)
+ Haskell.X.Prelude: sequenceA_ :: (Foldable t, Applicative f) => t (f a) -> f ()
+ Haskell.X.Prelude: sequence_ :: (Foldable t, Monad m) => t (m a) -> m ()
+ Haskell.X.Prelude: show :: Show a => a -> String
+ Haskell.X.Prelude: showChar :: Char -> ShowS
+ Haskell.X.Prelude: showList :: Show a => [a] -> ShowS
+ Haskell.X.Prelude: showParen :: Bool -> ShowS -> ShowS
+ Haskell.X.Prelude: showString :: String -> ShowS
+ Haskell.X.Prelude: shows :: Show a => a -> ShowS
+ Haskell.X.Prelude: showsPrec :: Show a => Int -> a -> ShowS
+ Haskell.X.Prelude: significand :: RealFloat a => a -> a
+ Haskell.X.Prelude: signum :: Num a => a -> a
+ Haskell.X.Prelude: sin :: Floating a => a -> a
+ Haskell.X.Prelude: sinh :: Floating a => a -> a
+ Haskell.X.Prelude: snd :: AtLeastPair a => a -> Snd a
+ Haskell.X.Prelude: some :: Alternative f => f a -> f [a]
+ Haskell.X.Prelude: sort :: Ord a => [a] -> [a]
+ Haskell.X.Prelude: sortBy :: (a -> a -> Ordering) -> [a] -> [a]
+ Haskell.X.Prelude: span :: (a -> Bool) -> [a] -> ([a], [a])
+ Haskell.X.Prelude: splitAt :: Int -> [a] -> ([a], [a])
+ Haskell.X.Prelude: sqrt :: Floating a => a -> a
+ Haskell.X.Prelude: stripPrefix :: Eq a => [a] -> [a] -> Maybe [a]
+ Haskell.X.Prelude: subsequences :: [a] -> [[a]]
+ Haskell.X.Prelude: subtract :: Num a => a -> a -> a
+ Haskell.X.Prelude: succ :: Enum a => a -> a
+ Haskell.X.Prelude: sum :: (Foldable t, Num a) => t a -> a
+ Haskell.X.Prelude: swap :: (a, b) -> (b, a)
+ Haskell.X.Prelude: tail :: [a] -> [a]
+ Haskell.X.Prelude: tails :: [a] -> [[a]]
+ Haskell.X.Prelude: take :: Int -> [a] -> [a]
+ Haskell.X.Prelude: takeWhile :: (a -> Bool) -> [a] -> [a]
+ Haskell.X.Prelude: tan :: Floating a => a -> a
+ Haskell.X.Prelude: tanh :: Floating a => a -> a
+ Haskell.X.Prelude: throw :: Exception e => e -> a
+ Haskell.X.Prelude: throwIO :: Exception e => e -> IO a
+ Haskell.X.Prelude: throwTo :: Exception e => ThreadId -> e -> IO ()
+ Haskell.X.Prelude: toConstr :: Data a => a -> Constr
+ Haskell.X.Prelude: toEnum :: Enum a => Int -> a
+ Haskell.X.Prelude: toException :: Exception e => e -> SomeException
+ Haskell.X.Prelude: toInteger :: Integral a => a -> Integer
+ Haskell.X.Prelude: toList :: Foldable t => t a -> [a]
+ Haskell.X.Prelude: toLower :: Char -> Char
+ Haskell.X.Prelude: toRational :: Real a => a -> Rational
+ Haskell.X.Prelude: toTitle :: Char -> Char
+ Haskell.X.Prelude: toUpper :: Char -> Char
+ Haskell.X.Prelude: tr :: Eq a => a -> a -> [a] -> [a]
+ Haskell.X.Prelude: transpose :: [[a]] -> [[a]]
+ Haskell.X.Prelude: traverse :: (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
+ Haskell.X.Prelude: traverse_ :: (Foldable t, Applicative f) => (a -> f b) -> t a -> f ()
+ Haskell.X.Prelude: truncate :: (RealFrac a, Integral b) => a -> b
+ Haskell.X.Prelude: try :: Exception e => IO a -> IO (Either e a)
+ Haskell.X.Prelude: tryJust :: Exception e => (e -> Maybe b) -> IO a -> IO (Either b a)
+ Haskell.X.Prelude: type Rational = Ratio Integer
+ Haskell.X.Prelude: type ReadS a = String -> [(a, String)]
+ Haskell.X.Prelude: type ShowS = String -> String
+ Haskell.X.Prelude: typeOf :: Typeable a => a -> TypeRep
+ Haskell.X.Prelude: uncurry :: (a -> b -> c) -> (a, b) -> c
+ Haskell.X.Prelude: undefined :: a
+ Haskell.X.Prelude: uneither :: Either a a -> a
+ Haskell.X.Prelude: unfoldr :: (b -> Maybe (a, b)) -> b -> [a]
+ Haskell.X.Prelude: uninterruptibleMask :: ((forall a. IO a -> IO a) -> IO b) -> IO b
+ Haskell.X.Prelude: uninterruptibleMask_ :: IO a -> IO a
+ Haskell.X.Prelude: union :: Eq a => [a] -> [a] -> [a]
+ Haskell.X.Prelude: unionBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]
+ Haskell.X.Prelude: uniqSort :: Ord a => [a] -> [a]
+ Haskell.X.Prelude: unless :: Monad m => Bool -> m () -> m ()
+ Haskell.X.Prelude: unlines :: [String] -> String
+ Haskell.X.Prelude: until :: (a -> Bool) -> (a -> a) -> a -> a
+ Haskell.X.Prelude: unwords :: [String] -> String
+ Haskell.X.Prelude: unwrapArrow :: WrappedArrow b c -> a b c
+ Haskell.X.Prelude: unwrapMonad :: WrappedMonad a -> m a
+ Haskell.X.Prelude: unzip :: [(a, b)] -> ([a], [b])
+ Haskell.X.Prelude: unzip3 :: [(a, b, c)] -> ([a], [b], [c])
+ Haskell.X.Prelude: unzip4 :: [(a, b, c, d)] -> ([a], [b], [c], [d])
+ Haskell.X.Prelude: unzip5 :: [(a, b, c, d, e)] -> ([a], [b], [c], [d], [e])
+ Haskell.X.Prelude: unzip6 :: [(a, b, c, d, e, f)] -> ([a], [b], [c], [d], [e], [f])
+ Haskell.X.Prelude: unzip7 :: [(a, b, c, d, e, f, g)] -> ([a], [b], [c], [d], [e], [f], [g])
+ Haskell.X.Prelude: userError :: String -> IOError
+ Haskell.X.Prelude: void :: Functor f => f a -> f ()
+ Haskell.X.Prelude: when :: Monad m => Bool -> m () -> m ()
+ Haskell.X.Prelude: words :: String -> [String]
+ Haskell.X.Prelude: writeFile :: FilePath -> String -> IO ()
+ Haskell.X.Prelude: zeroArrow :: ArrowZero a => a b c
+ Haskell.X.Prelude: zip :: [a] -> [b] -> [(a, b)]
+ Haskell.X.Prelude: zip3 :: [a] -> [b] -> [c] -> [(a, b, c)]
+ Haskell.X.Prelude: zip4 :: [a] -> [b] -> [c] -> [d] -> [(a, b, c, d)]
+ Haskell.X.Prelude: zip5 :: [a] -> [b] -> [c] -> [d] -> [e] -> [(a, b, c, d, e)]
+ Haskell.X.Prelude: zip6 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [(a, b, c, d, e, f)]
+ Haskell.X.Prelude: zip7 :: [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [(a, b, c, d, e, f, g)]
+ Haskell.X.Prelude: zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
+ Haskell.X.Prelude: zipWith3 :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ Haskell.X.Prelude: zipWith4 :: (a -> b -> c -> d -> e) -> [a] -> [b] -> [c] -> [d] -> [e]
+ Haskell.X.Prelude: zipWith5 :: (a -> b -> c -> d -> e -> f) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f]
+ Haskell.X.Prelude: zipWith6 :: (a -> b -> c -> d -> e -> f -> g) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g]
+ Haskell.X.Prelude: zipWith7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> [a] -> [b] -> [c] -> [d] -> [e] -> [f] -> [g] -> [h]
+ Haskell.X.Prelude: zipWithM :: Monad m => (a -> b -> m c) -> [a] -> [b] -> m [c]
+ Haskell.X.Prelude: zipWithM_ :: Monad m => (a -> b -> m c) -> [a] -> [b] -> m ()

Files

hx.cabal view
@@ -1,5 +1,5 @@ Name:           hx-Version:        0.3+Version:        0.4 Synopsis:       Haskell extras (missing utility functions). Description:    Utility functions that some may feel are missing from Prelude and base.                 .@@ -20,8 +20,9 @@     Exposed-Modules:    Haskell.X                         , Haskell.X.Ops                         , Haskell.X.Unsafe+                        , Haskell.X.Prelude -    Build-Depends:      base >= 4 && < 5+    Build-Depends:      base >= 4.5 && < 5     Hs-Source-Dirs:     src  
src/Haskell/X.hs view
@@ -14,6 +14,7 @@ module Haskell.X where  import Prelude+import Data.Char import Data.List import Data.Ord import Control.Arrow@@ -118,5 +119,47 @@ -- unify it by dropping the Either wrapper. uneither :: Either a a -> a uneither = either id id+++data Version = Version {+    versionBranch :: [Integer],+    versionTags :: [String]+  } deriving (Eq, Ord)++instance Read Version where+    readsPrec _ = parseVersion++instance Show Version where+    showsPrec _ (Version branch tags) xs+      = tail (concatMap (('.':) . show) branch) ++ concatMap ('-':) tags ++ xs++parseVersion :: String -> [(Version, String)]+parseVersion string =+    let (digits, tagRest) = parseBranch string+        (tags, rest) = parseTags tagRest+    in if null digits then [] else [(Version (map read digits) tags, rest)]+  where+    parseBranch str =+        let next = span isDigit str+        in case next of+            ("", rest) -> ([], rest)+            (ds, '.':rest) -> let (dss, rest') = parseBranch rest+                              in  (ds : dss, rest')+            (ds, rest) -> ([ds], rest)++    parseTags ('-':str) =+        let next = span isAlphaNum str+        in case next of+            ("", rest) -> ([], rest)+            (xs, rest) -> let (xss, rest') = parseTags rest+                              in  (xs : xss, rest')+    parseTags xs = ([], xs)+++++++  
+ src/Haskell/X/Prelude.hs view
@@ -0,0 +1,297 @@+{-# LANGUAGE Haskell2010, Safe, TypeFamilies #-}+-- {-# OPTIONS -Wall #-}++module Haskell.X.Prelude (+    +    Bool (True, False), (&&), (||), not, otherwise,++    Maybe (Nothing, Just), maybe, isJust, isNothing,+    fromJust, fromMaybe, listToMaybe, maybeToList, catMaybes,+    mapMaybe,++    Either (Left, Right), either, lefts, rights,+    partitionEithers, uneither,++    Ordering (LT, EQ, GT),++    Char,+    isControl, isSpace, isLower, isUpper, isAlpha, isAlphaNum,+    isPrint, isDigit, isOctDigit, isHexDigit, isLetter, isMark,+    isNumber, isPunctuation, isSymbol, isSeparator,+    isAscii, isLatin1, isAsciiUpper, isAsciiLower,++    IsString (fromString),++    toUpper, toLower, toTitle,+    digitToInt, intToDigit, ord, chr,++    AtLeastPair (..),+    curry, uncurry, swap,++    Eq ((==), (/=)),+    Ord (compare, (<), (>=), (>), (<=), max, min),+    Enum (succ, pred, toEnum, fromEnum, enumFrom, enumFromThen, enumFromTo, enumFromThenTo),+    Bounded (minBound, maxBound),++    Int, Integer, Float, Double,+    Int8, Int16, Int32, Int64,+    Word8, Word16, Word32, Word64,++    Rational, Ratio,++    Num (+        (+), (*), (-), negate, abs, signum, fromInteger+    ),+    Real (toRational),+    Integral (+        quot, rem, div, mod, quotRem, divMod, toInteger+    ),+    Fractional (+        (/), recip, fromRational+    ),+    Floating (+        pi, exp, sqrt, log, (**), logBase,+        sin, tan, cos, asin, atan, acos,+        sinh, tanh, cosh, asinh, atanh, acosh+    ),+    RealFrac (+        properFraction, truncate, round, ceiling, floor+    ),+    RealFloat (+        floatRadix, floatDigits, floatRange,+        decodeFloat, encodeFloat, exponent, significand,+        scaleFloat, isNaN, isInfinite, isDenormalized,+        isNegativeZero, isIEEE, atan2+    ),++    Complex, realPart, imagPart, mkPolar, cis, polar,+    magnitude, phase, conjugate,++    subtract, even, odd, gcd, lcm, (^), (^^),+    fromIntegral, realToFrac,++    Functor (fmap, (<$)),+    id, const, (.), flip, ($), fix, on,+    until, asTypeOf, error, undefined, seq, ($!),++    Applicative (pure, (<*>), (*>), (<*)),++    Monad ((>>=), (>>), return, fail), (=<<), (>=>), (<=<),+    forever, void, join,++    MonadPlus (mzero, mplus),+    mapM, mapM_, forM, forM_, sequence, sequence_,+    msum, mfilter, filterM,+    mapAndUnzipM, zipWithM, zipWithM_,+    foldM, foldM_,+    replicateM, replicateM_,+    guard, when, unless,+    liftM, liftM2, liftM3, liftM4, liftM5,+    ap,++    Monoid (mempty, mappend, mconcat),+    (<>),+    Dual (..), Endo (..),+    All (..), Any (..),+    Sum (..), Product (..),+    First (..), Last (..),++    Alternative ((<|>), empty, some, many),++    Const (..),+    WrappedMonad (..),+    WrappedArrow (..),+    ZipList (..),++    (<$>), (<**>), liftA, liftA2, liftA3, optional,++    Arrow (arr, first, second, (***), (&&&)),+    Kleisli (..),+    returnA, (^>>), (>>^), (>>>), (<<<),+    (<<^), (^<<),+    ArrowZero (zeroArrow),+    ArrowPlus ((<+>)),+    ArrowChoice (left, right, (+++), (|||)),+    ArrowApply (app),+    ArrowMonad (..),+    leftApp,++    ArrowLoop (loop),++    map, (++), (!!), reverse,+    filter, head, last, tail, init, null, length,++    Traversable (traverse, sequenceA),++    Foldable (fold, foldMap, foldr, foldl, foldr1, foldl1),+    foldrM, foldlM, traverse_, for_, sequenceA_, asum,+    foldl', foldr', toList, find,++    and, or, any, all, sum, product, concat, concatMap,+    maximum, minimum,++    scanl, scanl1, scanr, scanr1,++    iterate, repeat, replicate, cycle,+    take, drop, splitAt, takeWhile, dropWhile,+    span, break,++    elem, notElem, lookup,++    intersperse, intercalate, transpose, subsequences, permutations,+    mapAccumL, mapAccumR, unfoldr,++    stripPrefix, group, inits, tails, isPrefixOf, isSuffixOf, isInfixOf,+    partition, elemIndex, elemIndices, findIndex, findIndices,++    zip, zip3, zip4, zip5, zip6, zip7,+    zipWith, zipWith3, zipWith4, zipWith5, zipWith6, zipWith7,+    unzip, unzip3, unzip4, unzip5, unzip6, unzip7,++    nub, delete, union, intersect, sort, insert,+    nubBy, deleteBy, deleteFirstsBy, unionBy, intersectBy, groupBy,+    sortBy, insertBy, maximumBy, minimumBy,++    lines, words, unlines, unwords,++    ShowS, Show (..), shows, showChar, showString, showParen,+    ReadS, Read (..), reads, readParen, read, lex,++    IO,++    putChar, putStr, putStrLn, print,+    getChar, getLine, getContents, interact,++    readFile, writeFile, appendFile,+    readIO, readLn,++    (->>),++    SomeException, Exception (toException, fromException),++    IOException, ioError, userError,+    throw, throwIO, throwTo,+    catch, catches,++    Handler (Handler),++    catchJust,+    handle, handleJust,+    try, tryJust,+    evaluate,+    mapException,+    mask, mask_,+    uninterruptibleMask, uninterruptibleMask_,+    getMaskingState, allowInterrupt,++    assert, bracket, bracket_, bracketOnError, finally, onException,+    +    Data (..),+    Typeable (..),++    exhaustively, exhaustivelyM, exhaustivelyBy, exhaustivelyByM,+    uniqSort, aggregate, aggregateBy, aggregateAL, tr,+    segment2, segment3, count2, count3, count4++  ) where++import Prelude hiding (+    fst, snd, id, (.), catch,+    map, foldl, foldl1, foldr, foldr1, and, or,+    concat, minimum, maximum, all, any, sum, product,+    concatMap, elem, notElem,+    mapM_, sequence_+ )+import qualified Prelude++import Control.Applicative+import Control.Arrow+import Control.Category+import Control.Exception+import Control.Monad hiding (mapM_, sequence_, forM_, forM, msum)++import Data.Bool+import Data.Char+import Data.Complex+import Data.Data+import Data.Either+import Data.Foldable+import Data.Function (fix, on)+import Data.Functor+import Data.Int+import Data.List hiding (+    map, foldl, foldl1, foldr, foldr1, and, or,+    concat, minimum, maximum, all, any, sum, product,+    concatMap, elem, notElem, foldl', minimumBy, maximumBy,+    find, mapAccumL, mapAccumR+ )+import Data.Maybe (+    Maybe (..),+    fromJust, isJust, isNothing, listToMaybe,+    maybeToList, catMaybes, fromMaybe, mapMaybe+ )+import Data.Monoid (+    Monoid (..), (<>),+    Dual (..), Endo (..), All (..), Any (..),+    Sum (..), Product (..), First (..), Last (..)+ )+import Data.Ratio (+    Ratio, Rational+ )+import Data.String (+    IsString (..),+    lines, unlines, words, unwords+ )+import Data.Traversable hiding (mapM, sequence)+import Data.Tuple+import Data.Typeable+import Data.Word++import System.Environment+import System.Exit+import System.IO++import Haskell.X+import Haskell.X.Ops++map :: Functor f => (a -> b) -> f a -> f b+map = fmap++class AtLeastPair a where+    type Fst a+    type Snd a++    fst :: a -> Fst a+    snd :: a -> Snd a++instance AtLeastPair (a, b) where+    type Fst (a, b) = a+    type Snd (a, b) = b++    fst (a, _) = a+    snd (_, b) = b++instance AtLeastPair (a, b, c) where+    type Fst (a, b, c) = a+    type Snd (a, b, c) = b+    +    fst (a, _, _) = a+    snd (_, b, _) = b++instance AtLeastPair (a, b, c, d) where+    type Fst (a, b, c, d) = a+    type Snd (a, b, c, d) = b+    +    fst (a, _, _, _) = a+    snd (_, b, _, _) = b++instance AtLeastPair (a, b, c, d, e) where+    type Fst (a, b, c, d, e) = a+    type Snd (a, b, c, d, e) = b+    +    fst (a, _, _, _, _) = a+    snd (_, b, _, _, _) = b++++