packages feed

himari 1.0.0.1 → 1.0.0.2

raw patch · 10 files changed

+260/−157 lines, 10 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Himari.Prelude: (-<.>) :: FilePath -> String -> FilePath
- Himari.Prelude: (.!=) :: Parser (Maybe a) -> a -> Parser a
- Himari.Prelude: (.:!) :: FromJSON a => Object -> Key -> Parser (Maybe a)
- Himari.Prelude: (.:!=) :: FromJSON a => Object -> Key -> Parser a
- Himari.Prelude: (.:) :: FromJSON a => Object -> Key -> Parser a
- Himari.Prelude: (.:?) :: FromJSON a => Object -> Key -> Parser (Maybe a)
- Himari.Prelude: (.:?=) :: FromJSON a => Object -> Key -> Parser a
- Himari.Prelude: (.?=) :: (KeyValueOmit e kv, ToJSON v) => Key -> v -> kv
- Himari.Prelude: (:*:) :: f p -> g p -> (:*:) (f :: k -> Type) (g :: k -> Type) (p :: k)
- Himari.Prelude: (</>) :: FilePath -> FilePath -> FilePath
- Himari.Prelude: (<<<) :: forall {k} cat (b :: k) (c :: k) (a :: k). Category cat => cat b c -> cat a b -> cat a c
- Himari.Prelude: (<?>) :: Parser a -> JSONPathElement -> Parser a
- Himari.Prelude: (>>>) :: forall {k} cat (a :: k) (b :: k) (c :: k). Category cat => cat a b -> cat b c -> cat a c
- Himari.Prelude: -- | Generic representation type
- Himari.Prelude: AesonException :: String -> AesonException
- Himari.Prelude: Array :: !Array -> Value
- Himari.Prelude: Bool :: !Bool -> Value
- Himari.Prelude: Comp1 :: f (g p) -> (:.:) (f :: k2 -> Type) (g :: k1 -> k2) (p :: k1)
- Himari.Prelude: DecidedLazy :: DecidedStrictness
- Himari.Prelude: DecidedStrict :: DecidedStrictness
- Himari.Prelude: DecidedUnpack :: DecidedStrictness
- Himari.Prelude: DotNetTime :: UTCTime -> DotNetTime
- Himari.Prelude: Error :: String -> Result a
- Himari.Prelude: Generically :: a -> Generically a
- Himari.Prelude: Infix :: Associativity -> Int -> Fixity
- Himari.Prelude: InfixI :: Associativity -> Nat -> FixityI
- Himari.Prelude: K1 :: c -> K1 i c (p :: k)
- Himari.Prelude: L1 :: f p -> (:+:) (f :: k -> Type) (g :: k -> Type) (p :: k)
- Himari.Prelude: LeftAssociative :: Associativity
- Himari.Prelude: M1 :: f p -> M1 i (c :: Meta) (f :: k -> Type) (p :: k)
- Himari.Prelude: MetaCons :: Symbol -> FixityI -> Bool -> Meta
- Himari.Prelude: MetaData :: Symbol -> Symbol -> Symbol -> Bool -> Meta
- Himari.Prelude: MetaSel :: Maybe Symbol -> SourceUnpackedness -> SourceStrictness -> DecidedStrictness -> Meta
- Himari.Prelude: NoSourceStrictness :: SourceStrictness
- Himari.Prelude: NoSourceUnpackedness :: SourceUnpackedness
- Himari.Prelude: NotAssociative :: Associativity
- Himari.Prelude: Null :: Value
- Himari.Prelude: Number :: !Scientific -> Value
- Himari.Prelude: Object :: !Object -> Value
- Himari.Prelude: ObjectWithSingleField :: SumEncoding
- Himari.Prelude: Par1 :: p -> Par1 p
- Himari.Prelude: Prefix :: Fixity
- Himari.Prelude: PrefixI :: FixityI
- Himari.Prelude: R1 :: g p -> (:+:) (f :: k -> Type) (g :: k -> Type) (p :: k)
- Himari.Prelude: Rec1 :: f p -> Rec1 (f :: k -> Type) (p :: k)
- Himari.Prelude: RightAssociative :: Associativity
- Himari.Prelude: SourceLazy :: SourceStrictness
- Himari.Prelude: SourceNoUnpack :: SourceUnpackedness
- Himari.Prelude: SourceStrict :: SourceStrictness
- Himari.Prelude: SourceUnpack :: SourceUnpackedness
- Himari.Prelude: String :: !Text -> Value
- Himari.Prelude: Success :: a -> Result a
- Himari.Prelude: TaggedObject :: String -> String -> SumEncoding
- Himari.Prelude: ToJSONKeyText :: !a -> Key -> !a -> Encoding' Key -> ToJSONKeyFunction a
- Himari.Prelude: ToJSONKeyValue :: !a -> Value -> !a -> Encoding -> ToJSONKeyFunction a
- Himari.Prelude: TwoElemArray :: SumEncoding
- Himari.Prelude: U1 :: U1 (p :: k)
- Himari.Prelude: UntaggedValue :: SumEncoding
- Himari.Prelude: [FromJSONKeyCoerce] :: forall a. Coercible Text a => FromJSONKeyFunction a
- Himari.Prelude: [FromJSONKeyTextParser] :: forall a. !Text -> Parser a -> FromJSONKeyFunction a
- Himari.Prelude: [FromJSONKeyText] :: forall a. !Text -> a -> FromJSONKeyFunction a
- Himari.Prelude: [FromJSONKeyValue] :: forall a. !Value -> Parser a -> FromJSONKeyFunction a
- Himari.Prelude: [Generically1] :: forall {k} (f :: k -> Type) (a :: k). f a -> Generically1 f a
- Himari.Prelude: [contentsFieldName] :: SumEncoding -> String
- Himari.Prelude: [fromDotNetTime] :: DotNetTime -> UTCTime
- Himari.Prelude: [tagFieldName] :: SumEncoding -> String
- Himari.Prelude: [unComp1] :: (:.:) (f :: k2 -> Type) (g :: k1 -> k2) (p :: k1) -> f (g p)
- Himari.Prelude: [unK1] :: K1 i c (p :: k) -> c
- Himari.Prelude: [unM1] :: M1 i (c :: Meta) (f :: k -> Type) (p :: k) -> f p
- Himari.Prelude: [unPar1] :: Par1 p -> p
- Himari.Prelude: [unRec1] :: Rec1 (f :: k -> Type) (p :: k) -> f p
- Himari.Prelude: addExtension :: FilePath -> String -> FilePath
- Himari.Prelude: addTrailingPathSeparator :: FilePath -> FilePath
- Himari.Prelude: aesonQQ :: QuasiQuoter
- Himari.Prelude: atDef :: a -> [a] -> Int -> a
- Himari.Prelude: atMay :: [a] -> Int -> Maybe a
- Himari.Prelude: camelTo2 :: Char -> String -> String
- Himari.Prelude: class Category (cat :: k -> k -> Type)
- Himari.Prelude: class Constructor (c :: k)
- Himari.Prelude: class Datatype (d :: k)
- Himari.Prelude: class FromJSON1 (f :: Type -> Type)
- Himari.Prelude: class FromJSON2 (f :: Type -> Type -> Type)
- Himari.Prelude: class FromJSONKey a
- Himari.Prelude: class GFromJSON arity (f :: Type -> Type)
- Himari.Prelude: class (ConstructorNames f, SumFromString f) => GFromJSONKey (f :: Type -> Type)
- Himari.Prelude: class GToJSON' enc arity (f :: Type -> Type)
- Himari.Prelude: class GetConName f => GToJSONKey (f :: k -> Type)
- Himari.Prelude: class Generic1 (f :: k -> Type) where {
- Himari.Prelude: class KeyValue e kv | kv -> e
- Himari.Prelude: class KeyValue e kv => KeyValueOmit e kv | kv -> e
- Himari.Prelude: class MonadThrow m => MonadCatch (m :: Type -> Type)
- Himari.Prelude: class MonadCatch m => MonadMask (m :: Type -> Type)
- Himari.Prelude: class Monad m => MonadThrow (m :: Type -> Type)
- Himari.Prelude: class Selector (s :: k)
- Himari.Prelude: class ToJSON1 (f :: Type -> Type)
- Himari.Prelude: class ToJSON2 (f :: Type -> Type -> Type)
- Himari.Prelude: class ToJSONKey a
- Himari.Prelude: combine :: FilePath -> FilePath -> FilePath
- Himari.Prelude: conFixity :: forall k1 t (f :: k1 -> Type) (a :: k1). Constructor c => t c f a -> Fixity
- Himari.Prelude: conIsRecord :: forall k1 t (f :: k1 -> Type) (a :: k1). Constructor c => t c f a -> Bool
- Himari.Prelude: conName :: forall k1 t (f :: k1 -> Type) (a :: k1). Constructor c => t c f a -> [Char]
- Himari.Prelude: cycleDef :: [a] -> [a] -> [a]
- Himari.Prelude: cycleMay :: [a] -> Maybe [a]
- Himari.Prelude: data ( (f :: k -> Type) :*: (g :: k -> Type) ) (p :: k)
- Himari.Prelude: data Associativity
- Himari.Prelude: data ByteString
- Himari.Prelude: data C
- Himari.Prelude: data D
- Himari.Prelude: data DecidedStrictness
- Himari.Prelude: data Fixity
- Himari.Prelude: data FixityI
- Himari.Prelude: data FromArgs arity a
- Himari.Prelude: data FromJSONKeyFunction a
- Himari.Prelude: data HashMap k v
- Himari.Prelude: data HashSet a
- Himari.Prelude: data IntMap a
- Himari.Prelude: data IntSet
- Himari.Prelude: data JSONKeyOptions
- Himari.Prelude: data Key
- Himari.Prelude: data MVector s a
- Himari.Prelude: data Map k a
- Himari.Prelude: data Meta
- Himari.Prelude: data NonEmpty a
- Himari.Prelude: data One
- Himari.Prelude: data Options
- Himari.Prelude: data R
- Himari.Prelude: data Result a
- Himari.Prelude: data S
- Himari.Prelude: data Seq a
- Himari.Prelude: data Series
- Himari.Prelude: data Set a
- Himari.Prelude: data ShortByteString
- Himari.Prelude: data SourceStrictness
- Himari.Prelude: data SourceUnpackedness
- Himari.Prelude: data SumEncoding
- Himari.Prelude: data Text
- Himari.Prelude: data ToArgs res arity a
- Himari.Prelude: data ToJSONKeyFunction a
- Himari.Prelude: data Tree a
- Himari.Prelude: data U1 (p :: k)
- Himari.Prelude: data V1 (p :: k)
- Himari.Prelude: data Value
- Himari.Prelude: data Vector a
- Himari.Prelude: data Zero
- Himari.Prelude: data [] a
- Himari.Prelude: data family URec a (p :: k)
- Himari.Prelude: datatypeName :: forall k1 t (f :: k1 -> Type) (a :: k1). Datatype d => t d f a -> [Char]
- Himari.Prelude: defaultJSONKeyOptions :: JSONKeyOptions
- Himari.Prelude: defaultOptions :: Options
- Himari.Prelude: defaultTaggedObject :: SumEncoding
- Himari.Prelude: dropDrive :: FilePath -> FilePath
- Himari.Prelude: dropExactDef :: [a] -> Int -> [a] -> [a]
- Himari.Prelude: dropExactMay :: Int -> [a] -> Maybe [a]
- Himari.Prelude: dropExtension :: FilePath -> FilePath
- Himari.Prelude: dropExtensions :: FilePath -> FilePath
- Himari.Prelude: dropFileName :: FilePath -> FilePath
- Himari.Prelude: dropTrailingPathSeparator :: FilePath -> FilePath
- Himari.Prelude: eitherDecode :: FromJSON a => ByteString -> Either String a
- Himari.Prelude: eitherDecodeFileStrict :: FromJSON a => FilePath -> IO (Either String a)
- Himari.Prelude: eitherDecodeStrict :: FromJSON a => ByteString -> Either String a
- Himari.Prelude: eitherDecodeStrictText :: FromJSON a => Text -> Either String a
- Himari.Prelude: elemIndexJustDef :: Eq a => Int -> a -> [a] -> Int
- Himari.Prelude: encode :: ToJSON a => a -> ByteString
- Himari.Prelude: encodeFile :: ToJSON a => FilePath -> a -> IO ()
- Himari.Prelude: encodePretty :: ToJSON a => a -> ByteString
- Himari.Prelude: encodePretty' :: ToJSON a => Config -> a -> ByteString
- Himari.Prelude: encodePrettyToTextBuilder :: ToJSON a => a -> Builder
- Himari.Prelude: encodePrettyToTextBuilder' :: ToJSON a => Config -> a -> Builder
- Himari.Prelude: equalFilePath :: FilePath -> FilePath -> Bool
- Himari.Prelude: explicitToField :: KeyValue e kv => (v -> e) -> Key -> v -> kv
- Himari.Prelude: explicitToFieldOmit :: KeyValueOmit e kv => (v -> Bool) -> (v -> e) -> Key -> v -> kv
- Himari.Prelude: extSeparator :: Char
- Himari.Prelude: findIndexJustDef :: Int -> (a -> Bool) -> [a] -> Int
- Himari.Prelude: findJustDef :: Foldable t => a -> (a -> Bool) -> t a -> a
- Himari.Prelude: findJustSafe :: (Monoid m, Foldable t) => (m -> Bool) -> t m -> m
- Himari.Prelude: foldable :: (Foldable t, ToJSON a) => t a -> Encoding
- Himari.Prelude: foldl1Def :: Foldable t => a -> (a -> a -> a) -> t a -> a
- Himari.Prelude: foldl1Def' :: a -> (a -> a -> a) -> [a] -> a
- Himari.Prelude: foldl1May :: Foldable t => (a -> a -> a) -> t a -> Maybe a
- Himari.Prelude: foldl1May' :: (a -> a -> a) -> [a] -> Maybe a
- Himari.Prelude: foldl1Safe :: (Monoid m, Foldable t) => (m -> m -> m) -> t m -> m
- Himari.Prelude: foldr1Def :: Foldable t => a -> (a -> a -> a) -> t a -> a
- Himari.Prelude: foldr1May :: Foldable t => (a -> a -> a) -> t a -> Maybe a
- Himari.Prelude: foldr1Safe :: (Monoid m, Foldable t) => (m -> m -> m) -> t m -> m
- Himari.Prelude: from1 :: forall (a :: k). Generic1 f => f a -> Rep1 f a
- Himari.Prelude: fromEncoding :: Encoding' tag -> Builder
- Himari.Prelude: fromJSON :: FromJSON a => Value -> Result a
- Himari.Prelude: fromJSONKey :: FromJSONKey a => FromJSONKeyFunction a
- Himari.Prelude: fromJSONKeyList :: FromJSONKey a => FromJSONKeyFunction [a]
- Himari.Prelude: fromJustDef :: a -> Maybe a -> a
- Himari.Prelude: genericFromJSONKey :: (Generic a, GFromJSONKey (Rep a)) => JSONKeyOptions -> FromJSONKeyFunction a
- Himari.Prelude: genericLiftParseJSON :: (Generic1 f, GFromJSON One (Rep1 f)) => Options -> Maybe a -> (Value -> Parser a) -> (Value -> Parser [a]) -> Value -> Parser (f a)
- Himari.Prelude: genericLiftToEncoding :: (Generic1 f, GToJSON' Encoding One (Rep1 f)) => Options -> (a -> Bool) -> (a -> Encoding) -> ([a] -> Encoding) -> f a -> Encoding
- Himari.Prelude: genericLiftToJSON :: (Generic1 f, GToJSON' Value One (Rep1 f)) => Options -> (a -> Bool) -> (a -> Value) -> ([a] -> Value) -> f a -> Value
- Himari.Prelude: genericParseJSON :: (Generic a, GFromJSON Zero (Rep a)) => Options -> Value -> Parser a
- Himari.Prelude: genericToEncoding :: (Generic a, GToJSON' Encoding Zero (Rep a)) => Options -> a -> Encoding
- Himari.Prelude: genericToJSON :: (Generic a, GToJSON' Value Zero (Rep a)) => Options -> a -> Value
- Himari.Prelude: genericToJSONKey :: (Generic a, GToJSONKey (Rep a)) => JSONKeyOptions -> ToJSONKeyFunction a
- Himari.Prelude: getSearchPath :: IO [FilePath]
- Himari.Prelude: hasDrive :: FilePath -> Bool
- Himari.Prelude: hasExtension :: FilePath -> Bool
- Himari.Prelude: hasTrailingPathSeparator :: FilePath -> Bool
- Himari.Prelude: headDef :: a -> [a] -> a
- Himari.Prelude: headMay :: [a] -> Maybe a
- Himari.Prelude: indexDef :: Ix a => Int -> (a, a) -> a -> Int
- Himari.Prelude: indexMay :: Ix a => (a, a) -> a -> Maybe Int
- Himari.Prelude: infixr 1 <<<
- Himari.Prelude: infixr 5 </>
- Himari.Prelude: infixr 6 :*:
- Himari.Prelude: infixr 7 -<.>
- Himari.Prelude: initDef :: [a] -> [a] -> [a]
- Himari.Prelude: initMay :: [a] -> Maybe [a]
- Himari.Prelude: initSafe :: [a] -> [a]
- Himari.Prelude: isAbsolute :: FilePath -> Bool
- Himari.Prelude: isDrive :: FilePath -> Bool
- Himari.Prelude: isExtSeparator :: Char -> Bool
- Himari.Prelude: isExtensionOf :: String -> FilePath -> Bool
- Himari.Prelude: isNewtype :: forall k1 t (f :: k1 -> Type) (a :: k1). Datatype d => t d f a -> Bool
- Himari.Prelude: isPathSeparator :: Char -> Bool
- Himari.Prelude: isRelative :: FilePath -> Bool
- Himari.Prelude: isSearchPathSeparator :: Char -> Bool
- Himari.Prelude: isValid :: FilePath -> Bool
- Himari.Prelude: joinDrive :: FilePath -> FilePath -> FilePath
- Himari.Prelude: joinPath :: [FilePath] -> FilePath
- Himari.Prelude: lastDef :: a -> [a] -> a
- Himari.Prelude: lastMay :: [a] -> Maybe a
- Himari.Prelude: liftOmitField :: ToJSON1 f => (a -> Bool) -> f a -> Bool
- Himari.Prelude: liftOmitField2 :: ToJSON2 f => (a -> Bool) -> (b -> Bool) -> f a b -> Bool
- Himari.Prelude: liftOmittedField :: FromJSON1 f => Maybe a -> Maybe (f a)
- Himari.Prelude: liftOmittedField2 :: FromJSON2 f => Maybe a -> Maybe b -> Maybe (f a b)
- Himari.Prelude: liftParseJSON :: FromJSON1 f => Maybe a -> (Value -> Parser a) -> (Value -> Parser [a]) -> Value -> Parser (f a)
- Himari.Prelude: liftParseJSON2 :: FromJSON2 f => Maybe a -> (Value -> Parser a) -> (Value -> Parser [a]) -> Maybe b -> (Value -> Parser b) -> (Value -> Parser [b]) -> Value -> Parser (f a b)
- Himari.Prelude: liftParseJSONList :: FromJSON1 f => Maybe a -> (Value -> Parser a) -> (Value -> Parser [a]) -> Value -> Parser [f a]
- Himari.Prelude: liftParseJSONList2 :: FromJSON2 f => Maybe a -> (Value -> Parser a) -> (Value -> Parser [a]) -> Maybe b -> (Value -> Parser b) -> (Value -> Parser [b]) -> Value -> Parser [f a b]
- Himari.Prelude: liftToEncoding :: ToJSON1 f => (a -> Bool) -> (a -> Encoding) -> ([a] -> Encoding) -> f a -> Encoding
- Himari.Prelude: liftToEncoding2 :: ToJSON2 f => (a -> Bool) -> (a -> Encoding) -> ([a] -> Encoding) -> (b -> Bool) -> (b -> Encoding) -> ([b] -> Encoding) -> f a b -> Encoding
- Himari.Prelude: liftToEncodingList :: ToJSON1 f => (a -> Bool) -> (a -> Encoding) -> ([a] -> Encoding) -> [f a] -> Encoding
- Himari.Prelude: liftToEncodingList2 :: ToJSON2 f => (a -> Bool) -> (a -> Encoding) -> ([a] -> Encoding) -> (b -> Bool) -> (b -> Encoding) -> ([b] -> Encoding) -> [f a b] -> Encoding
- Himari.Prelude: liftToJSON :: ToJSON1 f => (a -> Bool) -> (a -> Value) -> ([a] -> Value) -> f a -> Value
- Himari.Prelude: liftToJSON2 :: ToJSON2 f => (a -> Bool) -> (a -> Value) -> ([a] -> Value) -> (b -> Bool) -> (b -> Value) -> ([b] -> Value) -> f a b -> Value
- Himari.Prelude: liftToJSONList :: ToJSON1 f => (a -> Bool) -> (a -> Value) -> ([a] -> Value) -> [f a] -> Value
- Himari.Prelude: liftToJSONList2 :: ToJSON2 f => (a -> Bool) -> (a -> Value) -> ([a] -> Value) -> (b -> Bool) -> (b -> Value) -> ([b] -> Value) -> [f a b] -> Value
- Himari.Prelude: lookupJustDef :: Eq a => b -> a -> [(a, b)] -> b
- Himari.Prelude: makeRelative :: FilePath -> FilePath -> FilePath
- Himari.Prelude: makeValid :: FilePath -> FilePath
- Himari.Prelude: maximumBound :: (Foldable f, Ord a) => a -> f a -> a
- Himari.Prelude: maximumBoundBy :: Foldable f => a -> (a -> a -> Ordering) -> f a -> a
- Himari.Prelude: maximumBounded :: (Foldable f, Ord a, Bounded a) => f a -> a
- Himari.Prelude: maximumByDef :: Foldable t => a -> (a -> a -> Ordering) -> t a -> a
- Himari.Prelude: maximumByMay :: Foldable t => (a -> a -> Ordering) -> t a -> Maybe a
- Himari.Prelude: maximumDef :: (Foldable t, Ord a) => a -> t a -> a
- Himari.Prelude: maximumMay :: (Foldable t, Ord a) => t a -> Maybe a
- Himari.Prelude: minimumBound :: (Foldable f, Ord a) => a -> f a -> a
- Himari.Prelude: minimumBoundBy :: Foldable f => a -> (a -> a -> Ordering) -> f a -> a
- Himari.Prelude: minimumBounded :: (Foldable f, Ord a, Bounded a) => f a -> a
- Himari.Prelude: minimumByDef :: Foldable t => a -> (a -> a -> Ordering) -> t a -> a
- Himari.Prelude: minimumByMay :: Foldable t => (a -> a -> Ordering) -> t a -> Maybe a
- Himari.Prelude: minimumDef :: (Foldable t, Ord a) => a -> t a -> a
- Himari.Prelude: minimumMay :: (Foldable t, Ord a) => t a -> Maybe a
- Himari.Prelude: moduleName :: forall k1 t (f :: k1 -> Type) (a :: k1). Datatype d => t d f a -> [Char]
- Himari.Prelude: newtype ( (f :: k2 -> Type) :.: (g :: k1 -> k2) ) (p :: k1)
- Himari.Prelude: newtype AesonException
- Himari.Prelude: newtype DotNetTime
- Himari.Prelude: newtype Generically a
- Himari.Prelude: newtype Generically1 (f :: k -> Type) (a :: k)
- Himari.Prelude: newtype K1 i c (p :: k)
- Himari.Prelude: newtype M1 i (c :: Meta) (f :: k -> Type) (p :: k)
- Himari.Prelude: newtype Par1 p
- Himari.Prelude: newtype Rec1 (f :: k -> Type) (p :: k)
- Himari.Prelude: normalise :: FilePath -> FilePath
- Himari.Prelude: object :: [Pair] -> Value
- Himari.Prelude: omitField :: ToJSON a => a -> Bool
- Himari.Prelude: omitField1 :: (ToJSON1 f, ToJSON a) => f a -> Bool
- Himari.Prelude: omitField2 :: (ToJSON2 f, ToJSON a, ToJSON b) => f a b -> Bool
- Himari.Prelude: omittedField :: FromJSON a => Maybe a
- Himari.Prelude: omittedField1 :: (FromJSON1 f, FromJSON a) => Maybe (f a)
- Himari.Prelude: omittedField2 :: (FromJSON2 f, FromJSON a, FromJSON b) => Maybe (f a b)
- Himari.Prelude: packageName :: forall k1 t (f :: k1 -> Type) (a :: k1). Datatype d => t d f a -> [Char]
- Himari.Prelude: pairs :: Series -> Encoding
- Himari.Prelude: parseIndexedJSON :: (Value -> Parser a) -> Int -> Value -> Parser a
- Himari.Prelude: parseJSON :: FromJSON a => Value -> Parser a
- Himari.Prelude: parseJSON1 :: (FromJSON1 f, FromJSON a) => Value -> Parser (f a)
- Himari.Prelude: parseJSON2 :: (FromJSON2 f, FromJSON a, FromJSON b) => Value -> Parser (f a b)
- Himari.Prelude: parseJSONList :: FromJSON a => Value -> Parser [a]
- Himari.Prelude: pathSeparator :: Char
- Himari.Prelude: pathSeparators :: [Char]
- Himari.Prelude: prec :: Fixity -> Int
- Himari.Prelude: predDef :: (Enum a, Eq a, Bounded a) => a -> a -> a
- Himari.Prelude: predMay :: (Enum a, Eq a, Bounded a) => a -> Maybe a
- Himari.Prelude: predSafe :: (Enum a, Eq a, Bounded a) => a -> a
- Himari.Prelude: readDef :: Read a => a -> String -> a
- Himari.Prelude: readEitherSafe :: Read a => String -> Either String a
- Himari.Prelude: readMay :: Read a => String -> Maybe a
- Himari.Prelude: replaceBaseName :: FilePath -> String -> FilePath
- Himari.Prelude: replaceDirectory :: FilePath -> String -> FilePath
- Himari.Prelude: replaceExtension :: FilePath -> String -> FilePath
- Himari.Prelude: replaceExtensions :: FilePath -> String -> FilePath
- Himari.Prelude: replaceFileName :: FilePath -> String -> FilePath
- Himari.Prelude: scanl1Def :: [a] -> (a -> a -> a) -> [a] -> [a]
- Himari.Prelude: scanl1May :: (a -> a -> a) -> [a] -> Maybe [a]
- Himari.Prelude: scanr1Def :: [a] -> (a -> a -> a) -> [a] -> [a]
- Himari.Prelude: scanr1May :: (a -> a -> a) -> [a] -> Maybe [a]
- Himari.Prelude: searchPathSeparator :: Char
- Himari.Prelude: selDecidedStrictness :: forall k1 t (f :: k1 -> Type) (a :: k1). Selector s => t s f a -> DecidedStrictness
- Himari.Prelude: selName :: forall k1 t (f :: k1 -> Type) (a :: k1). Selector s => t s f a -> [Char]
- Himari.Prelude: selSourceStrictness :: forall k1 t (f :: k1 -> Type) (a :: k1). Selector s => t s f a -> SourceStrictness
- Himari.Prelude: selSourceUnpackedness :: forall k1 t (f :: k1 -> Type) (a :: k1). Selector s => t s f a -> SourceUnpackedness
- Himari.Prelude: splitAtExactDef :: ([a], [a]) -> Int -> [a] -> ([a], [a])
- Himari.Prelude: splitAtExactMay :: Int -> [a] -> Maybe ([a], [a])
- Himari.Prelude: splitDirectories :: FilePath -> [FilePath]
- Himari.Prelude: splitDrive :: FilePath -> (FilePath, FilePath)
- Himari.Prelude: splitExtension :: FilePath -> (String, String)
- Himari.Prelude: splitExtensions :: FilePath -> (FilePath, String)
- Himari.Prelude: splitFileName :: FilePath -> (String, String)
- Himari.Prelude: splitPath :: FilePath -> [FilePath]
- Himari.Prelude: splitSearchPath :: String -> [FilePath]
- Himari.Prelude: stripExtension :: String -> FilePath -> Maybe FilePath
- Himari.Prelude: succDef :: (Enum a, Eq a, Bounded a) => a -> a -> a
- Himari.Prelude: succMay :: (Enum a, Eq a, Bounded a) => a -> Maybe a
- Himari.Prelude: succSafe :: (Enum a, Eq a, Bounded a) => a -> a
- Himari.Prelude: tailDef :: [a] -> [a] -> [a]
- Himari.Prelude: tailMay :: [a] -> Maybe [a]
- Himari.Prelude: tailSafe :: [a] -> [a]
- Himari.Prelude: takeBaseName :: FilePath -> String
- Himari.Prelude: takeDirectory :: FilePath -> FilePath
- Himari.Prelude: takeDrive :: FilePath -> FilePath
- Himari.Prelude: takeExactDef :: [a] -> Int -> [a] -> [a]
- Himari.Prelude: takeExactMay :: Int -> [a] -> Maybe [a]
- Himari.Prelude: takeExtension :: FilePath -> String
- Himari.Prelude: takeExtensions :: FilePath -> String
- Himari.Prelude: takeFileName :: FilePath -> FilePath
- Himari.Prelude: throwDecode :: (FromJSON a, MonadThrow m) => ByteString -> m a
- Himari.Prelude: throwDecodeStrict :: (FromJSON a, MonadThrow m) => ByteString -> m a
- Himari.Prelude: throwDecodeStrictText :: (FromJSON a, MonadThrow m) => Text -> m a
- Himari.Prelude: to1 :: forall (a :: k). Generic1 f => Rep1 f a -> f a
- Himari.Prelude: toEncoding :: ToJSON a => a -> Encoding
- Himari.Prelude: toEncoding1 :: (ToJSON1 f, ToJSON a) => f a -> Encoding
- Himari.Prelude: toEncoding2 :: (ToJSON2 f, ToJSON a, ToJSON b) => f a b -> Encoding
- Himari.Prelude: toEncodingList :: ToJSON a => [a] -> Encoding
- Himari.Prelude: toEnumDef :: (Enum a, Bounded a) => a -> Int -> a
- Himari.Prelude: toEnumMay :: (Enum a, Bounded a) => Int -> Maybe a
- Himari.Prelude: toEnumSafe :: (Enum a, Bounded a) => Int -> a
- Himari.Prelude: toJSON :: ToJSON a => a -> Value
- Himari.Prelude: toJSON1 :: (ToJSON1 f, ToJSON a) => f a -> Value
- Himari.Prelude: toJSON2 :: (ToJSON2 f, ToJSON a, ToJSON b) => f a b -> Value
- Himari.Prelude: toJSONKey :: ToJSONKey a => ToJSONKeyFunction a
- Himari.Prelude: toJSONKeyList :: ToJSONKey a => ToJSONKeyFunction [a]
- Himari.Prelude: toJSONList :: ToJSON a => [a] -> Value
- Himari.Prelude: type Array = Vector Value
- Himari.Prelude: type C1 = M1 C :: Meta -> k -> Type -> k -> Type
- Himari.Prelude: type D1 = M1 D :: Meta -> k -> Type -> k -> Type
- Himari.Prelude: type Encoding = Encoding' Value
- Himari.Prelude: type GToEncoding = GToJSON' Encoding
- Himari.Prelude: type GToJSON = GToJSON' Value
- Himari.Prelude: type JSONPath = [JSONPathElement]
- Himari.Prelude: type LazyByteString = ByteString
- Himari.Prelude: type LazyText = Text
- Himari.Prelude: type Object = KeyMap Value
- Himari.Prelude: type Rec0 = K1 R :: Type -> k -> Type
- Himari.Prelude: type Rep1 (f :: k -> Type) :: k -> Type;
- Himari.Prelude: type S1 = M1 S :: Meta -> k -> Type -> k -> Type
- Himari.Prelude: type StrictByteString = ByteString
- Himari.Prelude: type StrictText = Text
- Himari.Prelude: type UAddr = URec Ptr () :: k -> Type
- Himari.Prelude: type UChar = URec Char :: k -> Type
- Himari.Prelude: type UDouble = URec Double :: k -> Type
- Himari.Prelude: type UFloat = URec Float :: k -> Type
- Himari.Prelude: type UInt = URec Int :: k -> Type
- Himari.Prelude: type UWord = URec Word :: k -> Type
- Himari.Prelude: type family Rep1 (f :: k -> Type) :: k -> Type
- Himari.Prelude: withArray :: String -> (Array -> Parser a) -> Value -> Parser a
- Himari.Prelude: withBool :: String -> (Bool -> Parser a) -> Value -> Parser a
- Himari.Prelude: withEmbeddedJSON :: String -> (Value -> Parser a) -> Value -> Parser a
- Himari.Prelude: withObject :: String -> (Object -> Parser a) -> Value -> Parser a
- Himari.Prelude: withScientific :: String -> (Scientific -> Parser a) -> Value -> Parser a
- Himari.Prelude: withText :: String -> (Text -> Parser a) -> Value -> Parser a
- Himari.Prelude: zip3ExactDef :: [(a, b, c)] -> [a] -> [b] -> [c] -> [(a, b, c)]
- Himari.Prelude: zip3ExactMay :: [a] -> [b] -> [c] -> Maybe [(a, b, c)]
- Himari.Prelude: zipExactDef :: [(a, b)] -> [a] -> [b] -> [(a, b)]
- Himari.Prelude: zipExactMay :: [a] -> [b] -> Maybe [(a, b)]
- Himari.Prelude: zipWith3ExactDef :: [d] -> (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
- Himari.Prelude: zipWith3ExactMay :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> Maybe [d]
- Himari.Prelude: zipWithExactDef :: [c] -> (a -> b -> c) -> [a] -> [b] -> [c]
- Himari.Prelude: zipWithExactMay :: (a -> b -> c) -> [a] -> [b] -> Maybe [c]
- Himari.Prelude: }
+ Himari.Prelude.Aeson: (.!=) :: Parser (Maybe a) -> a -> Parser a
+ Himari.Prelude.Aeson: (.:!) :: FromJSON a => Object -> Key -> Parser (Maybe a)
+ Himari.Prelude.Aeson: (.:!=) :: FromJSON a => Object -> Key -> Parser a
+ Himari.Prelude.Aeson: (.:) :: FromJSON a => Object -> Key -> Parser a
+ Himari.Prelude.Aeson: (.:?) :: FromJSON a => Object -> Key -> Parser (Maybe a)
+ Himari.Prelude.Aeson: (.:?=) :: FromJSON a => Object -> Key -> Parser a
+ Himari.Prelude.Aeson: (.?=) :: (KeyValueOmit e kv, ToJSON v) => Key -> v -> kv
+ Himari.Prelude.Aeson: (<?>) :: Parser a -> JSONPathElement -> Parser a
+ Himari.Prelude.Aeson: AesonException :: String -> AesonException
+ Himari.Prelude.Aeson: Array :: !Array -> Value
+ Himari.Prelude.Aeson: Bool :: !Bool -> Value
+ Himari.Prelude.Aeson: DotNetTime :: UTCTime -> DotNetTime
+ Himari.Prelude.Aeson: Error :: String -> Result a
+ Himari.Prelude.Aeson: Null :: Value
+ Himari.Prelude.Aeson: Number :: !Scientific -> Value
+ Himari.Prelude.Aeson: Object :: !Object -> Value
+ Himari.Prelude.Aeson: ObjectWithSingleField :: SumEncoding
+ Himari.Prelude.Aeson: String :: !Text -> Value
+ Himari.Prelude.Aeson: Success :: a -> Result a
+ Himari.Prelude.Aeson: TaggedObject :: String -> String -> SumEncoding
+ Himari.Prelude.Aeson: ToJSONKeyText :: !a -> Key -> !a -> Encoding' Key -> ToJSONKeyFunction a
+ Himari.Prelude.Aeson: ToJSONKeyValue :: !a -> Value -> !a -> Encoding -> ToJSONKeyFunction a
+ Himari.Prelude.Aeson: TwoElemArray :: SumEncoding
+ Himari.Prelude.Aeson: UntaggedValue :: SumEncoding
+ Himari.Prelude.Aeson: [FromJSONKeyCoerce] :: forall a. Coercible Text a => FromJSONKeyFunction a
+ Himari.Prelude.Aeson: [FromJSONKeyTextParser] :: forall a. !Text -> Parser a -> FromJSONKeyFunction a
+ Himari.Prelude.Aeson: [FromJSONKeyText] :: forall a. !Text -> a -> FromJSONKeyFunction a
+ Himari.Prelude.Aeson: [FromJSONKeyValue] :: forall a. !Value -> Parser a -> FromJSONKeyFunction a
+ Himari.Prelude.Aeson: [contentsFieldName] :: SumEncoding -> String
+ Himari.Prelude.Aeson: [fromDotNetTime] :: DotNetTime -> UTCTime
+ Himari.Prelude.Aeson: [tagFieldName] :: SumEncoding -> String
+ Himari.Prelude.Aeson: aesonQQ :: QuasiQuoter
+ Himari.Prelude.Aeson: camelTo2 :: Char -> String -> String
+ Himari.Prelude.Aeson: class FromJSON1 (f :: Type -> Type)
+ Himari.Prelude.Aeson: class FromJSON2 (f :: Type -> Type -> Type)
+ Himari.Prelude.Aeson: class FromJSONKey a
+ Himari.Prelude.Aeson: class GFromJSON arity (f :: Type -> Type)
+ Himari.Prelude.Aeson: class (ConstructorNames f, SumFromString f) => GFromJSONKey (f :: Type -> Type)
+ Himari.Prelude.Aeson: class GToJSON' enc arity (f :: Type -> Type)
+ Himari.Prelude.Aeson: class GetConName f => GToJSONKey (f :: k -> Type)
+ Himari.Prelude.Aeson: class KeyValue e kv | kv -> e
+ Himari.Prelude.Aeson: class KeyValue e kv => KeyValueOmit e kv | kv -> e
+ Himari.Prelude.Aeson: class ToJSON1 (f :: Type -> Type)
+ Himari.Prelude.Aeson: class ToJSON2 (f :: Type -> Type -> Type)
+ Himari.Prelude.Aeson: class ToJSONKey a
+ Himari.Prelude.Aeson: data FromArgs arity a
+ Himari.Prelude.Aeson: data FromJSONKeyFunction a
+ Himari.Prelude.Aeson: data JSONKeyOptions
+ Himari.Prelude.Aeson: data Key
+ Himari.Prelude.Aeson: data One
+ Himari.Prelude.Aeson: data Options
+ Himari.Prelude.Aeson: data Result a
+ Himari.Prelude.Aeson: data Series
+ Himari.Prelude.Aeson: data SumEncoding
+ Himari.Prelude.Aeson: data ToArgs res arity a
+ Himari.Prelude.Aeson: data ToJSONKeyFunction a
+ Himari.Prelude.Aeson: data Value
+ Himari.Prelude.Aeson: data Zero
+ Himari.Prelude.Aeson: defaultJSONKeyOptions :: JSONKeyOptions
+ Himari.Prelude.Aeson: defaultOptions :: Options
+ Himari.Prelude.Aeson: defaultTaggedObject :: SumEncoding
+ Himari.Prelude.Aeson: eitherDecode :: FromJSON a => ByteString -> Either String a
+ Himari.Prelude.Aeson: eitherDecodeFileStrict :: FromJSON a => FilePath -> IO (Either String a)
+ Himari.Prelude.Aeson: eitherDecodeStrict :: FromJSON a => ByteString -> Either String a
+ Himari.Prelude.Aeson: eitherDecodeStrictText :: FromJSON a => Text -> Either String a
+ Himari.Prelude.Aeson: encode :: ToJSON a => a -> ByteString
+ Himari.Prelude.Aeson: encodeFile :: ToJSON a => FilePath -> a -> IO ()
+ Himari.Prelude.Aeson: encodePretty :: ToJSON a => a -> ByteString
+ Himari.Prelude.Aeson: encodePretty' :: ToJSON a => Config -> a -> ByteString
+ Himari.Prelude.Aeson: encodePrettyToTextBuilder :: ToJSON a => a -> Builder
+ Himari.Prelude.Aeson: encodePrettyToTextBuilder' :: ToJSON a => Config -> a -> Builder
+ Himari.Prelude.Aeson: explicitToField :: KeyValue e kv => (v -> e) -> Key -> v -> kv
+ Himari.Prelude.Aeson: explicitToFieldOmit :: KeyValueOmit e kv => (v -> Bool) -> (v -> e) -> Key -> v -> kv
+ Himari.Prelude.Aeson: foldable :: (Foldable t, ToJSON a) => t a -> Encoding
+ Himari.Prelude.Aeson: fromEncoding :: Encoding' tag -> Builder
+ Himari.Prelude.Aeson: fromJSON :: FromJSON a => Value -> Result a
+ Himari.Prelude.Aeson: fromJSONKey :: FromJSONKey a => FromJSONKeyFunction a
+ Himari.Prelude.Aeson: fromJSONKeyList :: FromJSONKey a => FromJSONKeyFunction [a]
+ Himari.Prelude.Aeson: genericFromJSONKey :: (Generic a, GFromJSONKey (Rep a)) => JSONKeyOptions -> FromJSONKeyFunction a
+ Himari.Prelude.Aeson: genericLiftParseJSON :: (Generic1 f, GFromJSON One (Rep1 f)) => Options -> Maybe a -> (Value -> Parser a) -> (Value -> Parser [a]) -> Value -> Parser (f a)
+ Himari.Prelude.Aeson: genericLiftToEncoding :: (Generic1 f, GToJSON' Encoding One (Rep1 f)) => Options -> (a -> Bool) -> (a -> Encoding) -> ([a] -> Encoding) -> f a -> Encoding
+ Himari.Prelude.Aeson: genericLiftToJSON :: (Generic1 f, GToJSON' Value One (Rep1 f)) => Options -> (a -> Bool) -> (a -> Value) -> ([a] -> Value) -> f a -> Value
+ Himari.Prelude.Aeson: genericParseJSON :: (Generic a, GFromJSON Zero (Rep a)) => Options -> Value -> Parser a
+ Himari.Prelude.Aeson: genericToEncoding :: (Generic a, GToJSON' Encoding Zero (Rep a)) => Options -> a -> Encoding
+ Himari.Prelude.Aeson: genericToJSON :: (Generic a, GToJSON' Value Zero (Rep a)) => Options -> a -> Value
+ Himari.Prelude.Aeson: genericToJSONKey :: (Generic a, GToJSONKey (Rep a)) => JSONKeyOptions -> ToJSONKeyFunction a
+ Himari.Prelude.Aeson: liftOmitField :: ToJSON1 f => (a -> Bool) -> f a -> Bool
+ Himari.Prelude.Aeson: liftOmitField2 :: ToJSON2 f => (a -> Bool) -> (b -> Bool) -> f a b -> Bool
+ Himari.Prelude.Aeson: liftOmittedField :: FromJSON1 f => Maybe a -> Maybe (f a)
+ Himari.Prelude.Aeson: liftOmittedField2 :: FromJSON2 f => Maybe a -> Maybe b -> Maybe (f a b)
+ Himari.Prelude.Aeson: liftParseJSON :: FromJSON1 f => Maybe a -> (Value -> Parser a) -> (Value -> Parser [a]) -> Value -> Parser (f a)
+ Himari.Prelude.Aeson: liftParseJSON2 :: FromJSON2 f => Maybe a -> (Value -> Parser a) -> (Value -> Parser [a]) -> Maybe b -> (Value -> Parser b) -> (Value -> Parser [b]) -> Value -> Parser (f a b)
+ Himari.Prelude.Aeson: liftParseJSONList :: FromJSON1 f => Maybe a -> (Value -> Parser a) -> (Value -> Parser [a]) -> Value -> Parser [f a]
+ Himari.Prelude.Aeson: liftParseJSONList2 :: FromJSON2 f => Maybe a -> (Value -> Parser a) -> (Value -> Parser [a]) -> Maybe b -> (Value -> Parser b) -> (Value -> Parser [b]) -> Value -> Parser [f a b]
+ Himari.Prelude.Aeson: liftToEncoding :: ToJSON1 f => (a -> Bool) -> (a -> Encoding) -> ([a] -> Encoding) -> f a -> Encoding
+ Himari.Prelude.Aeson: liftToEncoding2 :: ToJSON2 f => (a -> Bool) -> (a -> Encoding) -> ([a] -> Encoding) -> (b -> Bool) -> (b -> Encoding) -> ([b] -> Encoding) -> f a b -> Encoding
+ Himari.Prelude.Aeson: liftToEncodingList :: ToJSON1 f => (a -> Bool) -> (a -> Encoding) -> ([a] -> Encoding) -> [f a] -> Encoding
+ Himari.Prelude.Aeson: liftToEncodingList2 :: ToJSON2 f => (a -> Bool) -> (a -> Encoding) -> ([a] -> Encoding) -> (b -> Bool) -> (b -> Encoding) -> ([b] -> Encoding) -> [f a b] -> Encoding
+ Himari.Prelude.Aeson: liftToJSON :: ToJSON1 f => (a -> Bool) -> (a -> Value) -> ([a] -> Value) -> f a -> Value
+ Himari.Prelude.Aeson: liftToJSON2 :: ToJSON2 f => (a -> Bool) -> (a -> Value) -> ([a] -> Value) -> (b -> Bool) -> (b -> Value) -> ([b] -> Value) -> f a b -> Value
+ Himari.Prelude.Aeson: liftToJSONList :: ToJSON1 f => (a -> Bool) -> (a -> Value) -> ([a] -> Value) -> [f a] -> Value
+ Himari.Prelude.Aeson: liftToJSONList2 :: ToJSON2 f => (a -> Bool) -> (a -> Value) -> ([a] -> Value) -> (b -> Bool) -> (b -> Value) -> ([b] -> Value) -> [f a b] -> Value
+ Himari.Prelude.Aeson: newtype AesonException
+ Himari.Prelude.Aeson: newtype DotNetTime
+ Himari.Prelude.Aeson: object :: [Pair] -> Value
+ Himari.Prelude.Aeson: omitField :: ToJSON a => a -> Bool
+ Himari.Prelude.Aeson: omitField1 :: (ToJSON1 f, ToJSON a) => f a -> Bool
+ Himari.Prelude.Aeson: omitField2 :: (ToJSON2 f, ToJSON a, ToJSON b) => f a b -> Bool
+ Himari.Prelude.Aeson: omittedField :: FromJSON a => Maybe a
+ Himari.Prelude.Aeson: omittedField1 :: (FromJSON1 f, FromJSON a) => Maybe (f a)
+ Himari.Prelude.Aeson: omittedField2 :: (FromJSON2 f, FromJSON a, FromJSON b) => Maybe (f a b)
+ Himari.Prelude.Aeson: pairs :: Series -> Encoding
+ Himari.Prelude.Aeson: parseIndexedJSON :: (Value -> Parser a) -> Int -> Value -> Parser a
+ Himari.Prelude.Aeson: parseJSON :: FromJSON a => Value -> Parser a
+ Himari.Prelude.Aeson: parseJSON1 :: (FromJSON1 f, FromJSON a) => Value -> Parser (f a)
+ Himari.Prelude.Aeson: parseJSON2 :: (FromJSON2 f, FromJSON a, FromJSON b) => Value -> Parser (f a b)
+ Himari.Prelude.Aeson: parseJSONList :: FromJSON a => Value -> Parser [a]
+ Himari.Prelude.Aeson: throwDecode :: (FromJSON a, MonadThrow m) => ByteString -> m a
+ Himari.Prelude.Aeson: throwDecodeStrict :: (FromJSON a, MonadThrow m) => ByteString -> m a
+ Himari.Prelude.Aeson: throwDecodeStrictText :: (FromJSON a, MonadThrow m) => Text -> m a
+ Himari.Prelude.Aeson: toEncoding :: ToJSON a => a -> Encoding
+ Himari.Prelude.Aeson: toEncoding1 :: (ToJSON1 f, ToJSON a) => f a -> Encoding
+ Himari.Prelude.Aeson: toEncoding2 :: (ToJSON2 f, ToJSON a, ToJSON b) => f a b -> Encoding
+ Himari.Prelude.Aeson: toEncodingList :: ToJSON a => [a] -> Encoding
+ Himari.Prelude.Aeson: toJSON :: ToJSON a => a -> Value
+ Himari.Prelude.Aeson: toJSON1 :: (ToJSON1 f, ToJSON a) => f a -> Value
+ Himari.Prelude.Aeson: toJSON2 :: (ToJSON2 f, ToJSON a, ToJSON b) => f a b -> Value
+ Himari.Prelude.Aeson: toJSONKey :: ToJSONKey a => ToJSONKeyFunction a
+ Himari.Prelude.Aeson: toJSONKeyList :: ToJSONKey a => ToJSONKeyFunction [a]
+ Himari.Prelude.Aeson: toJSONList :: ToJSON a => [a] -> Value
+ Himari.Prelude.Aeson: type Array = Vector Value
+ Himari.Prelude.Aeson: type Encoding = Encoding' Value
+ Himari.Prelude.Aeson: type GToEncoding = GToJSON' Encoding
+ Himari.Prelude.Aeson: type GToJSON = GToJSON' Value
+ Himari.Prelude.Aeson: type JSONPath = [JSONPathElement]
+ Himari.Prelude.Aeson: type Object = KeyMap Value
+ Himari.Prelude.Aeson: withArray :: String -> (Array -> Parser a) -> Value -> Parser a
+ Himari.Prelude.Aeson: withBool :: String -> (Bool -> Parser a) -> Value -> Parser a
+ Himari.Prelude.Aeson: withEmbeddedJSON :: String -> (Value -> Parser a) -> Value -> Parser a
+ Himari.Prelude.Aeson: withObject :: String -> (Object -> Parser a) -> Value -> Parser a
+ Himari.Prelude.Aeson: withScientific :: String -> (Scientific -> Parser a) -> Value -> Parser a
+ Himari.Prelude.Aeson: withText :: String -> (Text -> Parser a) -> Value -> Parser a
+ Himari.Prelude.Category: (<<<) :: forall {k} cat (b :: k) (c :: k) (a :: k). Category cat => cat b c -> cat a b -> cat a c
+ Himari.Prelude.Category: (>>>) :: forall {k} cat (a :: k) (b :: k) (c :: k). Category cat => cat a b -> cat b c -> cat a c
+ Himari.Prelude.Category: class Category (cat :: k -> k -> Type)
+ Himari.Prelude.Category: infixr 1 <<<
+ Himari.Prelude.FilePath: (-<.>) :: FilePath -> String -> FilePath
+ Himari.Prelude.FilePath: (</>) :: FilePath -> FilePath -> FilePath
+ Himari.Prelude.FilePath: addExtension :: FilePath -> String -> FilePath
+ Himari.Prelude.FilePath: addTrailingPathSeparator :: FilePath -> FilePath
+ Himari.Prelude.FilePath: combine :: FilePath -> FilePath -> FilePath
+ Himari.Prelude.FilePath: dropDrive :: FilePath -> FilePath
+ Himari.Prelude.FilePath: dropExtension :: FilePath -> FilePath
+ Himari.Prelude.FilePath: dropExtensions :: FilePath -> FilePath
+ Himari.Prelude.FilePath: dropFileName :: FilePath -> FilePath
+ Himari.Prelude.FilePath: dropTrailingPathSeparator :: FilePath -> FilePath
+ Himari.Prelude.FilePath: equalFilePath :: FilePath -> FilePath -> Bool
+ Himari.Prelude.FilePath: extSeparator :: Char
+ Himari.Prelude.FilePath: getSearchPath :: IO [FilePath]
+ Himari.Prelude.FilePath: hasDrive :: FilePath -> Bool
+ Himari.Prelude.FilePath: hasExtension :: FilePath -> Bool
+ Himari.Prelude.FilePath: hasTrailingPathSeparator :: FilePath -> Bool
+ Himari.Prelude.FilePath: infixr 5 </>
+ Himari.Prelude.FilePath: infixr 7 -<.>
+ Himari.Prelude.FilePath: isAbsolute :: FilePath -> Bool
+ Himari.Prelude.FilePath: isDrive :: FilePath -> Bool
+ Himari.Prelude.FilePath: isExtSeparator :: Char -> Bool
+ Himari.Prelude.FilePath: isExtensionOf :: String -> FilePath -> Bool
+ Himari.Prelude.FilePath: isPathSeparator :: Char -> Bool
+ Himari.Prelude.FilePath: isRelative :: FilePath -> Bool
+ Himari.Prelude.FilePath: isSearchPathSeparator :: Char -> Bool
+ Himari.Prelude.FilePath: isValid :: FilePath -> Bool
+ Himari.Prelude.FilePath: joinDrive :: FilePath -> FilePath -> FilePath
+ Himari.Prelude.FilePath: joinPath :: [FilePath] -> FilePath
+ Himari.Prelude.FilePath: makeRelative :: FilePath -> FilePath -> FilePath
+ Himari.Prelude.FilePath: makeValid :: FilePath -> FilePath
+ Himari.Prelude.FilePath: normalise :: FilePath -> FilePath
+ Himari.Prelude.FilePath: pathSeparator :: Char
+ Himari.Prelude.FilePath: pathSeparators :: [Char]
+ Himari.Prelude.FilePath: replaceBaseName :: FilePath -> String -> FilePath
+ Himari.Prelude.FilePath: replaceDirectory :: FilePath -> String -> FilePath
+ Himari.Prelude.FilePath: replaceExtension :: FilePath -> String -> FilePath
+ Himari.Prelude.FilePath: replaceExtensions :: FilePath -> String -> FilePath
+ Himari.Prelude.FilePath: replaceFileName :: FilePath -> String -> FilePath
+ Himari.Prelude.FilePath: searchPathSeparator :: Char
+ Himari.Prelude.FilePath: splitDirectories :: FilePath -> [FilePath]
+ Himari.Prelude.FilePath: splitDrive :: FilePath -> (FilePath, FilePath)
+ Himari.Prelude.FilePath: splitExtension :: FilePath -> (String, String)
+ Himari.Prelude.FilePath: splitExtensions :: FilePath -> (FilePath, String)
+ Himari.Prelude.FilePath: splitFileName :: FilePath -> (String, String)
+ Himari.Prelude.FilePath: splitPath :: FilePath -> [FilePath]
+ Himari.Prelude.FilePath: splitSearchPath :: String -> [FilePath]
+ Himari.Prelude.FilePath: stripExtension :: String -> FilePath -> Maybe FilePath
+ Himari.Prelude.FilePath: takeBaseName :: FilePath -> String
+ Himari.Prelude.FilePath: takeDirectory :: FilePath -> FilePath
+ Himari.Prelude.FilePath: takeDrive :: FilePath -> FilePath
+ Himari.Prelude.FilePath: takeExtension :: FilePath -> String
+ Himari.Prelude.FilePath: takeExtensions :: FilePath -> String
+ Himari.Prelude.FilePath: takeFileName :: FilePath -> FilePath
+ Himari.Prelude.FilePath: type FilePath = String
+ Himari.Prelude.Generics: (:*:) :: f p -> g p -> (:*:) (f :: k -> Type) (g :: k -> Type) (p :: k)
+ Himari.Prelude.Generics: -- | Generic representation type
+ Himari.Prelude.Generics: Comp1 :: f (g p) -> (:.:) (f :: k2 -> Type) (g :: k1 -> k2) (p :: k1)
+ Himari.Prelude.Generics: DecidedLazy :: DecidedStrictness
+ Himari.Prelude.Generics: DecidedStrict :: DecidedStrictness
+ Himari.Prelude.Generics: DecidedUnpack :: DecidedStrictness
+ Himari.Prelude.Generics: Generically :: a -> Generically a
+ Himari.Prelude.Generics: Infix :: Associativity -> Int -> Fixity
+ Himari.Prelude.Generics: InfixI :: Associativity -> Nat -> FixityI
+ Himari.Prelude.Generics: K1 :: c -> K1 i c (p :: k)
+ Himari.Prelude.Generics: L1 :: f p -> (:+:) (f :: k -> Type) (g :: k -> Type) (p :: k)
+ Himari.Prelude.Generics: LeftAssociative :: Associativity
+ Himari.Prelude.Generics: M1 :: f p -> M1 i (c :: Meta) (f :: k -> Type) (p :: k)
+ Himari.Prelude.Generics: MetaCons :: Symbol -> FixityI -> Bool -> Meta
+ Himari.Prelude.Generics: MetaData :: Symbol -> Symbol -> Symbol -> Bool -> Meta
+ Himari.Prelude.Generics: MetaSel :: Maybe Symbol -> SourceUnpackedness -> SourceStrictness -> DecidedStrictness -> Meta
+ Himari.Prelude.Generics: NoSourceStrictness :: SourceStrictness
+ Himari.Prelude.Generics: NoSourceUnpackedness :: SourceUnpackedness
+ Himari.Prelude.Generics: NotAssociative :: Associativity
+ Himari.Prelude.Generics: Par1 :: p -> Par1 p
+ Himari.Prelude.Generics: Prefix :: Fixity
+ Himari.Prelude.Generics: PrefixI :: FixityI
+ Himari.Prelude.Generics: R1 :: g p -> (:+:) (f :: k -> Type) (g :: k -> Type) (p :: k)
+ Himari.Prelude.Generics: Rec1 :: f p -> Rec1 (f :: k -> Type) (p :: k)
+ Himari.Prelude.Generics: RightAssociative :: Associativity
+ Himari.Prelude.Generics: SourceLazy :: SourceStrictness
+ Himari.Prelude.Generics: SourceNoUnpack :: SourceUnpackedness
+ Himari.Prelude.Generics: SourceStrict :: SourceStrictness
+ Himari.Prelude.Generics: SourceUnpack :: SourceUnpackedness
+ Himari.Prelude.Generics: U1 :: U1 (p :: k)
+ Himari.Prelude.Generics: [Generically1] :: forall {k} (f :: k -> Type) (a :: k). f a -> Generically1 f a
+ Himari.Prelude.Generics: [unComp1] :: (:.:) (f :: k2 -> Type) (g :: k1 -> k2) (p :: k1) -> f (g p)
+ Himari.Prelude.Generics: [unK1] :: K1 i c (p :: k) -> c
+ Himari.Prelude.Generics: [unM1] :: M1 i (c :: Meta) (f :: k -> Type) (p :: k) -> f p
+ Himari.Prelude.Generics: [unPar1] :: Par1 p -> p
+ Himari.Prelude.Generics: [unRec1] :: Rec1 (f :: k -> Type) (p :: k) -> f p
+ Himari.Prelude.Generics: class Constructor (c :: k)
+ Himari.Prelude.Generics: class Datatype (d :: k)
+ Himari.Prelude.Generics: class Generic a where {
+ Himari.Prelude.Generics: class Generic1 (f :: k -> Type) where {
+ Himari.Prelude.Generics: class Selector (s :: k)
+ Himari.Prelude.Generics: conFixity :: forall k1 t (f :: k1 -> Type) (a :: k1). Constructor c => t c f a -> Fixity
+ Himari.Prelude.Generics: conIsRecord :: forall k1 t (f :: k1 -> Type) (a :: k1). Constructor c => t c f a -> Bool
+ Himari.Prelude.Generics: conName :: forall k1 t (f :: k1 -> Type) (a :: k1). Constructor c => t c f a -> [Char]
+ Himari.Prelude.Generics: data ( (f :: k -> Type) :*: (g :: k -> Type) ) (p :: k)
+ Himari.Prelude.Generics: data Associativity
+ Himari.Prelude.Generics: data C
+ Himari.Prelude.Generics: data D
+ Himari.Prelude.Generics: data DecidedStrictness
+ Himari.Prelude.Generics: data Fixity
+ Himari.Prelude.Generics: data FixityI
+ Himari.Prelude.Generics: data Meta
+ Himari.Prelude.Generics: data R
+ Himari.Prelude.Generics: data S
+ Himari.Prelude.Generics: data SourceStrictness
+ Himari.Prelude.Generics: data SourceUnpackedness
+ Himari.Prelude.Generics: data U1 (p :: k)
+ Himari.Prelude.Generics: data V1 (p :: k)
+ Himari.Prelude.Generics: data family URec a (p :: k)
+ Himari.Prelude.Generics: datatypeName :: forall k1 t (f :: k1 -> Type) (a :: k1). Datatype d => t d f a -> [Char]
+ Himari.Prelude.Generics: from1 :: forall (a :: k). Generic1 f => f a -> Rep1 f a
+ Himari.Prelude.Generics: infixr 5 :+:
+ Himari.Prelude.Generics: infixr 6 :*:
+ Himari.Prelude.Generics: infixr 7 :.:
+ Himari.Prelude.Generics: isNewtype :: forall k1 t (f :: k1 -> Type) (a :: k1). Datatype d => t d f a -> Bool
+ Himari.Prelude.Generics: moduleName :: forall k1 t (f :: k1 -> Type) (a :: k1). Datatype d => t d f a -> [Char]
+ Himari.Prelude.Generics: newtype ( (f :: k2 -> Type) :.: (g :: k1 -> k2) ) (p :: k1)
+ Himari.Prelude.Generics: newtype Generically a
+ Himari.Prelude.Generics: newtype Generically1 (f :: k -> Type) (a :: k)
+ Himari.Prelude.Generics: newtype K1 i c (p :: k)
+ Himari.Prelude.Generics: newtype M1 i (c :: Meta) (f :: k -> Type) (p :: k)
+ Himari.Prelude.Generics: newtype Par1 p
+ Himari.Prelude.Generics: newtype Rec1 (f :: k -> Type) (p :: k)
+ Himari.Prelude.Generics: packageName :: forall k1 t (f :: k1 -> Type) (a :: k1). Datatype d => t d f a -> [Char]
+ Himari.Prelude.Generics: prec :: Fixity -> Int
+ Himari.Prelude.Generics: selDecidedStrictness :: forall k1 t (f :: k1 -> Type) (a :: k1). Selector s => t s f a -> DecidedStrictness
+ Himari.Prelude.Generics: selName :: forall k1 t (f :: k1 -> Type) (a :: k1). Selector s => t s f a -> [Char]
+ Himari.Prelude.Generics: selSourceStrictness :: forall k1 t (f :: k1 -> Type) (a :: k1). Selector s => t s f a -> SourceStrictness
+ Himari.Prelude.Generics: selSourceUnpackedness :: forall k1 t (f :: k1 -> Type) (a :: k1). Selector s => t s f a -> SourceUnpackedness
+ Himari.Prelude.Generics: to1 :: forall (a :: k). Generic1 f => Rep1 f a -> f a
+ Himari.Prelude.Generics: type C1 = M1 C :: Meta -> k -> Type -> k -> Type
+ Himari.Prelude.Generics: type D1 = M1 D :: Meta -> k -> Type -> k -> Type
+ Himari.Prelude.Generics: type Rec0 = K1 R :: Type -> k -> Type
+ Himari.Prelude.Generics: type Rep a :: Type -> Type;
+ Himari.Prelude.Generics: type Rep1 (f :: k -> Type) :: k -> Type;
+ Himari.Prelude.Generics: type S1 = M1 S :: Meta -> k -> Type -> k -> Type
+ Himari.Prelude.Generics: type UAddr = URec Ptr () :: k -> Type
+ Himari.Prelude.Generics: type UChar = URec Char :: k -> Type
+ Himari.Prelude.Generics: type UDouble = URec Double :: k -> Type
+ Himari.Prelude.Generics: type UFloat = URec Float :: k -> Type
+ Himari.Prelude.Generics: type UInt = URec Int :: k -> Type
+ Himari.Prelude.Generics: type UWord = URec Word :: k -> Type
+ Himari.Prelude.Generics: type family Rep1 (f :: k -> Type) :: k -> Type
+ Himari.Prelude.Generics: }
+ Himari.Prelude.Safe: atDef :: a -> [a] -> Int -> a
+ Himari.Prelude.Safe: atMay :: [a] -> Int -> Maybe a
+ Himari.Prelude.Safe: cycleDef :: [a] -> [a] -> [a]
+ Himari.Prelude.Safe: cycleMay :: [a] -> Maybe [a]
+ Himari.Prelude.Safe: dropExactDef :: [a] -> Int -> [a] -> [a]
+ Himari.Prelude.Safe: dropExactMay :: Int -> [a] -> Maybe [a]
+ Himari.Prelude.Safe: elemIndexJustDef :: Eq a => Int -> a -> [a] -> Int
+ Himari.Prelude.Safe: findIndexJustDef :: Int -> (a -> Bool) -> [a] -> Int
+ Himari.Prelude.Safe: findJustDef :: Foldable t => a -> (a -> Bool) -> t a -> a
+ Himari.Prelude.Safe: findJustSafe :: (Monoid m, Foldable t) => (m -> Bool) -> t m -> m
+ Himari.Prelude.Safe: foldl1Def :: Foldable t => a -> (a -> a -> a) -> t a -> a
+ Himari.Prelude.Safe: foldl1Def' :: a -> (a -> a -> a) -> [a] -> a
+ Himari.Prelude.Safe: foldl1May :: Foldable t => (a -> a -> a) -> t a -> Maybe a
+ Himari.Prelude.Safe: foldl1May' :: (a -> a -> a) -> [a] -> Maybe a
+ Himari.Prelude.Safe: foldl1Safe :: (Monoid m, Foldable t) => (m -> m -> m) -> t m -> m
+ Himari.Prelude.Safe: foldr1Def :: Foldable t => a -> (a -> a -> a) -> t a -> a
+ Himari.Prelude.Safe: foldr1May :: Foldable t => (a -> a -> a) -> t a -> Maybe a
+ Himari.Prelude.Safe: foldr1Safe :: (Monoid m, Foldable t) => (m -> m -> m) -> t m -> m
+ Himari.Prelude.Safe: fromJustDef :: a -> Maybe a -> a
+ Himari.Prelude.Safe: headDef :: a -> [a] -> a
+ Himari.Prelude.Safe: headMay :: [a] -> Maybe a
+ Himari.Prelude.Safe: indexDef :: Ix a => Int -> (a, a) -> a -> Int
+ Himari.Prelude.Safe: indexMay :: Ix a => (a, a) -> a -> Maybe Int
+ Himari.Prelude.Safe: initDef :: [a] -> [a] -> [a]
+ Himari.Prelude.Safe: initMay :: [a] -> Maybe [a]
+ Himari.Prelude.Safe: initSafe :: [a] -> [a]
+ Himari.Prelude.Safe: lastDef :: a -> [a] -> a
+ Himari.Prelude.Safe: lastMay :: [a] -> Maybe a
+ Himari.Prelude.Safe: lookupJustDef :: Eq a => b -> a -> [(a, b)] -> b
+ Himari.Prelude.Safe: maximumBound :: (Foldable f, Ord a) => a -> f a -> a
+ Himari.Prelude.Safe: maximumBoundBy :: Foldable f => a -> (a -> a -> Ordering) -> f a -> a
+ Himari.Prelude.Safe: maximumBounded :: (Foldable f, Ord a, Bounded a) => f a -> a
+ Himari.Prelude.Safe: maximumByDef :: Foldable t => a -> (a -> a -> Ordering) -> t a -> a
+ Himari.Prelude.Safe: maximumByMay :: Foldable t => (a -> a -> Ordering) -> t a -> Maybe a
+ Himari.Prelude.Safe: maximumDef :: (Foldable t, Ord a) => a -> t a -> a
+ Himari.Prelude.Safe: maximumMay :: (Foldable t, Ord a) => t a -> Maybe a
+ Himari.Prelude.Safe: minimumBound :: (Foldable f, Ord a) => a -> f a -> a
+ Himari.Prelude.Safe: minimumBoundBy :: Foldable f => a -> (a -> a -> Ordering) -> f a -> a
+ Himari.Prelude.Safe: minimumBounded :: (Foldable f, Ord a, Bounded a) => f a -> a
+ Himari.Prelude.Safe: minimumByDef :: Foldable t => a -> (a -> a -> Ordering) -> t a -> a
+ Himari.Prelude.Safe: minimumByMay :: Foldable t => (a -> a -> Ordering) -> t a -> Maybe a
+ Himari.Prelude.Safe: minimumDef :: (Foldable t, Ord a) => a -> t a -> a
+ Himari.Prelude.Safe: minimumMay :: (Foldable t, Ord a) => t a -> Maybe a
+ Himari.Prelude.Safe: predDef :: (Enum a, Eq a, Bounded a) => a -> a -> a
+ Himari.Prelude.Safe: predMay :: (Enum a, Eq a, Bounded a) => a -> Maybe a
+ Himari.Prelude.Safe: predSafe :: (Enum a, Eq a, Bounded a) => a -> a
+ Himari.Prelude.Safe: readDef :: Read a => a -> String -> a
+ Himari.Prelude.Safe: readEitherSafe :: Read a => String -> Either String a
+ Himari.Prelude.Safe: readMay :: Read a => String -> Maybe a
+ Himari.Prelude.Safe: scanl1Def :: [a] -> (a -> a -> a) -> [a] -> [a]
+ Himari.Prelude.Safe: scanl1May :: (a -> a -> a) -> [a] -> Maybe [a]
+ Himari.Prelude.Safe: scanr1Def :: [a] -> (a -> a -> a) -> [a] -> [a]
+ Himari.Prelude.Safe: scanr1May :: (a -> a -> a) -> [a] -> Maybe [a]
+ Himari.Prelude.Safe: splitAtExactDef :: ([a], [a]) -> Int -> [a] -> ([a], [a])
+ Himari.Prelude.Safe: splitAtExactMay :: Int -> [a] -> Maybe ([a], [a])
+ Himari.Prelude.Safe: succDef :: (Enum a, Eq a, Bounded a) => a -> a -> a
+ Himari.Prelude.Safe: succMay :: (Enum a, Eq a, Bounded a) => a -> Maybe a
+ Himari.Prelude.Safe: succSafe :: (Enum a, Eq a, Bounded a) => a -> a
+ Himari.Prelude.Safe: tailDef :: [a] -> [a] -> [a]
+ Himari.Prelude.Safe: tailMay :: [a] -> Maybe [a]
+ Himari.Prelude.Safe: tailSafe :: [a] -> [a]
+ Himari.Prelude.Safe: takeExactDef :: [a] -> Int -> [a] -> [a]
+ Himari.Prelude.Safe: takeExactMay :: Int -> [a] -> Maybe [a]
+ Himari.Prelude.Safe: toEnumDef :: (Enum a, Bounded a) => a -> Int -> a
+ Himari.Prelude.Safe: toEnumMay :: (Enum a, Bounded a) => Int -> Maybe a
+ Himari.Prelude.Safe: toEnumSafe :: (Enum a, Bounded a) => Int -> a
+ Himari.Prelude.Safe: zip3ExactDef :: [(a, b, c)] -> [a] -> [b] -> [c] -> [(a, b, c)]
+ Himari.Prelude.Safe: zip3ExactMay :: [a] -> [b] -> [c] -> Maybe [(a, b, c)]
+ Himari.Prelude.Safe: zipExactDef :: [(a, b)] -> [a] -> [b] -> [(a, b)]
+ Himari.Prelude.Safe: zipExactMay :: [a] -> [b] -> Maybe [(a, b)]
+ Himari.Prelude.Safe: zipWith3ExactDef :: [d] -> (a -> b -> c -> d) -> [a] -> [b] -> [c] -> [d]
+ Himari.Prelude.Safe: zipWith3ExactMay :: (a -> b -> c -> d) -> [a] -> [b] -> [c] -> Maybe [d]
+ Himari.Prelude.Safe: zipWithExactDef :: [c] -> (a -> b -> c) -> [a] -> [b] -> [c]
+ Himari.Prelude.Safe: zipWithExactMay :: (a -> b -> c) -> [a] -> [b] -> Maybe [c]
+ Himari.Prelude.Type: class MonadThrow m => MonadCatch (m :: Type -> Type)
+ Himari.Prelude.Type: class MonadCatch m => MonadMask (m :: Type -> Type)
+ Himari.Prelude.Type: class Monad m => MonadThrow (m :: Type -> Type)
+ Himari.Prelude.Type: data ByteString
+ Himari.Prelude.Type: data HashMap k v
+ Himari.Prelude.Type: data HashSet a
+ Himari.Prelude.Type: data IntMap a
+ Himari.Prelude.Type: data IntSet
+ Himari.Prelude.Type: data MVector s a
+ Himari.Prelude.Type: data Map k a
+ Himari.Prelude.Type: data NonEmpty a
+ Himari.Prelude.Type: data Seq a
+ Himari.Prelude.Type: data Set a
+ Himari.Prelude.Type: data ShortByteString
+ Himari.Prelude.Type: data Text
+ Himari.Prelude.Type: data Tree a
+ Himari.Prelude.Type: data Vector a
+ Himari.Prelude.Type: data [] a
+ Himari.Prelude.Type: type LazyByteString = ByteString
+ Himari.Prelude.Type: type LazyText = Text
+ Himari.Prelude.Type: type StrictByteString = ByteString
+ Himari.Prelude.Type: type StrictText = Text

Files

CHANGELOG.md view
@@ -7,6 +7,23 @@  ## [Unreleased] +## [1.0.0.2] - 2026-01-03++### Added++- Support for Windows+- Support for macOS (x86_64-darwin, aarch64-darwin) and Linux ARM (aarch64-linux)+- `Himari.Prelude.Aeson` module for JSON-related re-exports+- `Himari.Prelude.Safe` module for safe function re-exports+- `Himari.Prelude.Category` module for `Control.Category` re-exports (hiding `id` and `.`)+- `Himari.Prelude.Generics` module for `GHC.Generics` re-exports (hiding `from` and `to`)+- `Himari.Prelude.FilePath` module for `System.FilePath` re-exports (hiding `<.>`)+- `Himari.Prelude.Type` module for type-only re-exports (`ByteString`, `Text`, `Map`, `Vector`, etc.)++### Changed++- Refactor `Himari.Prelude` to use submodules for cleaner Haddock documentation+ ## [1.0.0.1] - 2026-01-01  ### Changed
README.md view
@@ -1,5 +1,16 @@ # himari +[![CI](https://github.com/ncaq/himari/actions/workflows/push.yml/badge.svg)](https://github.com/ncaq/himari/actions/workflows/push.yml)+[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](https://github.com/ncaq/himari/blob/master/LICENSE)++[![Haskell](https://img.shields.io/badge/language-Haskell-5D4F85.svg)](https://www.haskell.org/)+[![Hackage](https://img.shields.io/hackage/v/himari.svg?logo=haskell)](https://hackage.haskell.org/package/himari)+[![Haddock](https://img.shields.io/badge/docs-Haddock-purple.svg)](https://hackage.haskell.org/package/himari/docs/Himari.html)++![Linux](https://img.shields.io/badge/linux-x86__64%20|%20ARM64-brightgreen?logo=linux&logoColor=white)+![macOS](https://img.shields.io/badge/macOS-x86__64%20|%20ARM64-brightgreen?logo=apple&logoColor=white)+![Windows](https://img.shields.io/badge/windows-x86__64-brightgreen?logo=windows&logoColor=white)+ A standard library for Haskell to replace rio  ## 注意@@ -29,8 +40,12 @@ なのでhimariはhlintのルールで警告を出すことで対処しています。  プロジェクトルートにある[.hlint.yaml](./.hlint.yaml)ファイルを、-あなたのプロジェクトにコピーしてください。+以下のような方法であなたのプロジェクトにコピーしてください。 +```console+curl -L 'https://raw.githubusercontent.com/ncaq/himari/master/.hlint.yaml' -o '.hlint.yaml'+```+ ## 背景  私は、@@ -81,3 +96,25 @@ himariはrioで言う`RIO.Text`のような独自のシンボルを定義することをなるべく避けます。 LLMのコーディングエージェントに独自のシンボルを使うことを守ってもらうのが難しいからです。 しばしばオリジナルのシンボルをimportしてしまいます。++ただし`Himari.Prelude`のサブモジュール(`Himari.Prelude.Aeson`など)は例外的に存在します。+これはHaddockの制限により、`hiding`を使ったre-exportはシンボルが全て展開されてドキュメントが肥大化してしまうためです。+サブモジュールでhidingを隠蔽することで、`Himari.Prelude`のドキュメントをコンパクトに保っています。++これらのサブモジュールは`Himari.Prelude`から自動的にre-exportされるため、+rioの`RIO.Text`のように個別にimportする必要はありません。+万が一誤ってサブモジュールを直接importした場合でも、+`Himari.Prelude`と重複importすることになり、GHCが警告を出してくれます。++## Nix++このプロジェクトは[haskell.nix](https://input-output-hk.github.io/haskell.nix/)を使用しています。++### `nix flake show`が失敗する場合++haskell.nixはIFD(Import From Derivation)を使用するため、+複数システムをサポートするflakeで`nix flake show`を実行すると、+異なるシステム向けのビルドを評価しようとして失敗することがあります。++これはhaskell.nixの既知の制限であり、+現在のところ完全な回避策はありません。
himari.cabal view
@@ -1,14 +1,12 @@ cabal-version: 3.0 name: himari-version: 1.0.0.1+version: 1.0.0.2 synopsis: A standard library for Haskell as an alternative to rio description:   A standard library for Haskell inspired by rio.-  .   Unlike rio, himari uses the full lens library instead of microlens,   and provides hlint rules to warn against partial functions   instead of providing safe wrapper modules.-  .   See the README at <https://github.com/ncaq/himari#readme> for more information.  homepage: https://github.com/ncaq/himari@@ -84,6 +82,12 @@     Himari.Env.Simple     Himari.Logger     Himari.Prelude+    Himari.Prelude.Aeson+    Himari.Prelude.Category+    Himari.Prelude.FilePath+    Himari.Prelude.Generics+    Himari.Prelude.Safe+    Himari.Prelude.Type  test-suite himari-test   import: basic
src/Himari/Prelude.hs view
@@ -1,30 +1,9 @@ -- | Alternative to "Prelude". module Himari.Prelude   ( module Export-  -- Type only re-exports.-  , ByteString-  , StrictByteString-  , LazyByteString-  , ShortByteString-  , HashMap-  , HashSet-  , IntMap-  , IntSet-  , List-  , NonEmpty-  , Map-  , Seq-  , Set-  , StrictText-  , Text-  , LazyText-  , Tree-  , MVector-  , Vector   ) where  import Control.Applicative as Export-import Control.Category as Export hiding (id, (.)) import Control.DeepSeq as Export import Control.Lens as Export import Control.Monad as Export@@ -56,140 +35,14 @@ import Data.Void as Export import Data.Word as Export import Debug.Pretty.Simple as Export-import GHC.Generics as Export hiding (from, to)-import System.FilePath as Export hiding ((<.>))+import Himari.Prelude.Aeson as Export+import Himari.Prelude.Category as Export+import Himari.Prelude.FilePath as Export+import Himari.Prelude.Generics as Export+import Himari.Prelude.Safe as Export+import Himari.Prelude.Type as Export import System.Process.Typed as Export import Text.Pretty.Simple as Export import Text.Show as Export import UnliftIO as Export import Prelude as Export---- 部分関数ではない代替関数を提供してくれるsafeライブラリからシンボルを持ってきます。--- 必要なのは部分関数ではない関数なので、部分関数はいらないのでhidingします。--- `Safe.Foldable`の方がより汎用的なので、そちらを優先してコンフリクトするものはhidingします。-import Safe as Export hiding-  ( abort-  , assertNote-  , at-  , atNote-  , cycleNote-  , elemIndexJust-  , elemIndexJustNote-  , findIndexJust-  , findIndexJustNote-  , findJust-  , findJustDef-  , findJustNote-  , foldl1Def-  , foldl1May-  , foldl1Note-  , foldl1Note'-  , foldr1Def-  , foldr1May-  , foldr1Note-  , fromJustNote-  , headErr-  , headNote-  , indexNote-  , initNote-  , lastNote-  , lookupJust-  , lookupJustNote-  , maximumBound-  , maximumBoundBy-  , maximumBounded-  , maximumByDef-  , maximumByMay-  , maximumByNote-  , maximumDef-  , maximumMay-  , maximumNote-  , minimumBound-  , minimumBoundBy-  , minimumBounded-  , minimumByDef-  , minimumByMay-  , minimumByNote-  , minimumDef-  , minimumMay-  , minimumNote-  , predNote-  , readNote-  , scanl1Note-  , scanr1Note-  , succNote-  , tailErr-  , tailNote-  , toEnumNote-  )-import Safe.Exact as Export hiding-  ( dropExact-  , dropExactNote-  , splitAtExact-  , splitAtExactNote-  , takeExact-  , takeExactNote-  , zip3Exact-  , zip3ExactNote-  , zipExact-  , zipExactNote-  , zipWith3Exact-  , zipWith3ExactNote-  , zipWithExact-  , zipWithExactNote-  )-import Safe.Foldable as Export hiding-  ( findJust-  , findJustNote-  , foldl1Note-  , foldr1Note-  , maximumByNote-  , maximumNote-  , minimumByNote-  , minimumNote-  )---- aeson系には被りそうな関数名が多いので、hidingしたり、シンボルを個別importします。-import Data.Aeson as Export hiding-  ( decode-  , decode'-  , decodeFileStrict-  , decodeFileStrict'-  , decodeStrict-  , decodeStrict'-  , decodeStrictText-  , eitherDecode'-  , eitherDecodeFileStrict'-  , eitherDecodeStrict'-  , throwDecode'-  , throwDecodeStrict'-  , (.=)-  )-import Data.Aeson.Encode.Pretty as Export-  ( encodePretty-  , encodePretty'-  , encodePrettyToTextBuilder-  , encodePrettyToTextBuilder'-  )-import Data.Aeson.QQ.Simple as Export-import Deriving.Aeson as Export---- Type only.--import Control.Monad.Catch as Export (MonadCatch, MonadMask, MonadThrow)-import Data.ByteString (ByteString, StrictByteString)-import Data.ByteString.Lazy (LazyByteString)-import Data.ByteString.Short (ShortByteString)-import Data.HashMap.Strict (HashMap)-import Data.HashSet (HashSet)-import Data.IntMap.Strict (IntMap)-import Data.IntSet (IntSet)-import Data.List (List)-import Data.List.NonEmpty (NonEmpty)-import Data.Map.Strict (Map)-import Data.Sequence (Seq)-import Data.Set (Set)-import Data.Text (StrictText, Text)-import Data.Text.Lazy (LazyText)-import Data.Tree (Tree)-import Data.Vector (MVector, Vector)
+ src/Himari/Prelude/Aeson.hs view
@@ -0,0 +1,30 @@+-- | "Data.Aeson", "Data.Aeson.Encode.Pretty", "Data.Aeson.QQ.Simple", and "Deriving.Aeson" re-exports for JSON handling.+module Himari.Prelude.Aeson+  ( module Export+  ) where++-- aeson has many functions with common names that may conflict,+-- so we hide some and selectively import others.+import Data.Aeson as Export hiding+  ( decode+  , decode'+  , decodeFileStrict+  , decodeFileStrict'+  , decodeStrict+  , decodeStrict'+  , decodeStrictText+  , eitherDecode'+  , eitherDecodeFileStrict'+  , eitherDecodeStrict'+  , throwDecode'+  , throwDecodeStrict'+  , (.=)+  )+import Data.Aeson.Encode.Pretty as Export+  ( encodePretty+  , encodePretty'+  , encodePrettyToTextBuilder+  , encodePrettyToTextBuilder'+  )+import Data.Aeson.QQ.Simple as Export+import Deriving.Aeson as Export
+ src/Himari/Prelude/Category.hs view
@@ -0,0 +1,6 @@+-- | "Control.Category" re-exports, hiding symbols that conflict with "Prelude".+module Himari.Prelude.Category+  ( module Export+  ) where++import Control.Category as Export hiding (id, (.))
+ src/Himari/Prelude/FilePath.hs view
@@ -0,0 +1,6 @@+-- | "System.FilePath" re-exports, hiding symbols that conflict with "Control.Lens".+module Himari.Prelude.FilePath+  ( module Export+  ) where++import System.FilePath as Export hiding ((<.>))
+ src/Himari/Prelude/Generics.hs view
@@ -0,0 +1,6 @@+-- | "GHC.Generics" re-exports, hiding symbols that conflict with "Control.Lens".+module Himari.Prelude.Generics+  ( module Export+  ) where++import GHC.Generics as Export hiding (from, to)
+ src/Himari/Prelude/Safe.hs view
@@ -0,0 +1,88 @@+-- | "Safe", "Safe.Exact", and "Safe.Foldable" re-exports.+-- Only total functions are exported; partial functions are hidden.+-- "Safe.Foldable" is preferred for more generic versions, so conflicting functions are hidden from "Safe".+module Himari.Prelude.Safe+  ( module Export+  ) where++import Safe as Export hiding+  ( abort+  , assertNote+  , at+  , atNote+  , cycleNote+  , elemIndexJust+  , elemIndexJustNote+  , findIndexJust+  , findIndexJustNote+  , findJust+  , findJustDef+  , findJustNote+  , foldl1Def+  , foldl1May+  , foldl1Note+  , foldl1Note'+  , foldr1Def+  , foldr1May+  , foldr1Note+  , fromJustNote+  , headErr+  , headNote+  , indexNote+  , initNote+  , lastNote+  , lookupJust+  , lookupJustNote+  , maximumBound+  , maximumBoundBy+  , maximumBounded+  , maximumByDef+  , maximumByMay+  , maximumByNote+  , maximumDef+  , maximumMay+  , maximumNote+  , minimumBound+  , minimumBoundBy+  , minimumBounded+  , minimumByDef+  , minimumByMay+  , minimumByNote+  , minimumDef+  , minimumMay+  , minimumNote+  , predNote+  , readNote+  , scanl1Note+  , scanr1Note+  , succNote+  , tailErr+  , tailNote+  , toEnumNote+  )+import Safe.Exact as Export hiding+  ( dropExact+  , dropExactNote+  , splitAtExact+  , splitAtExactNote+  , takeExact+  , takeExactNote+  , zip3Exact+  , zip3ExactNote+  , zipExact+  , zipExactNote+  , zipWith3Exact+  , zipWith3ExactNote+  , zipWithExact+  , zipWithExactNote+  )+import Safe.Foldable as Export hiding+  ( findJust+  , findJustNote+  , foldl1Note+  , foldr1Note+  , maximumByNote+  , maximumNote+  , minimumByNote+  , minimumNote+  )
+ src/Himari/Prelude/Type.hs view
@@ -0,0 +1,56 @@+-- | Type-only re-exports from various modules.+--+-- Includes types from "Control.Monad.Catch", "Data.ByteString", "Data.HashMap.Strict",+-- "Data.HashSet", "Data.IntMap.Strict", "Data.IntSet", "Data.List", "Data.List.NonEmpty",+-- "Data.Map.Strict", "Data.Sequence", "Data.Set", "Data.Text", "Data.Tree", and "Data.Vector".+module Himari.Prelude.Type+  ( -- * Exception handling+    MonadCatch+  , MonadMask+  , MonadThrow++    -- * ByteString+  , ByteString+  , StrictByteString+  , LazyByteString+  , ShortByteString++    -- * Containers+  , HashMap+  , HashSet+  , IntMap+  , IntSet+  , List+  , NonEmpty+  , Map+  , Seq+  , Set+  , Tree++    -- * Text+  , StrictText+  , Text+  , LazyText++    -- * Vector+  , MVector+  , Vector+  ) where++import Control.Monad.Catch (MonadCatch, MonadMask, MonadThrow)+import Data.ByteString (ByteString, StrictByteString)+import Data.ByteString.Lazy (LazyByteString)+import Data.ByteString.Short (ShortByteString)+import Data.HashMap.Strict (HashMap)+import Data.HashSet (HashSet)+import Data.IntMap.Strict (IntMap)+import Data.IntSet (IntSet)+import Data.List (List)+import Data.List.NonEmpty (NonEmpty)+import Data.Map.Strict (Map)+import Data.Sequence (Seq)+import Data.Set (Set)+import Data.Text (StrictText, Text)+import Data.Text.Lazy (LazyText)+import Data.Tree (Tree)+import Data.Vector (MVector, Vector)