himari 1.1.4.1 → 1.1.5.0
raw patch · 7 files changed
+90/−1 lines, 7 filesdep +casingdep +heredep +uuidPVP ok
version bump matches the API change (PVP)
Dependencies added: casing, here, uuid
API changes (from Hackage documentation)
+ Himari.Prelude.Casing: Identifier :: [a] -> Identifier a
+ Himari.Prelude.Casing: [unIdentifier] :: Identifier a -> [a]
+ Himari.Prelude.Casing: camel :: String -> String
+ Himari.Prelude.Casing: fromAny :: String -> Identifier String
+ Himari.Prelude.Casing: fromHumps :: String -> Identifier String
+ Himari.Prelude.Casing: fromKebab :: String -> Identifier String
+ Himari.Prelude.Casing: fromSnake :: String -> Identifier String
+ Himari.Prelude.Casing: kebab :: String -> String
+ Himari.Prelude.Casing: newtype Identifier a
+ Himari.Prelude.Casing: pascal :: String -> String
+ Himari.Prelude.Casing: quietSnake :: String -> String
+ Himari.Prelude.Casing: screamingSnake :: String -> String
+ Himari.Prelude.Casing: snake :: String -> String
+ Himari.Prelude.Casing: toCamel :: Identifier String -> String
+ Himari.Prelude.Casing: toKebab :: Identifier String -> String
+ Himari.Prelude.Casing: toPascal :: Identifier String -> String
+ Himari.Prelude.Casing: toQuietSnake :: Identifier String -> String
+ Himari.Prelude.Casing: toScreamingSnake :: Identifier String -> String
+ Himari.Prelude.Casing: toSnake :: Identifier String -> String
+ Himari.Prelude.Casing: wordify :: String -> String
+ Himari.Prelude.Here: here :: QuasiQuoter
+ Himari.Prelude.Here: hereFile :: QuasiQuoter
+ Himari.Prelude.Here: hereLit :: QuasiQuoter
+ Himari.Prelude.Here: iTrim :: QuasiQuoter
+ Himari.Prelude.UUID: data UUID
+ Himari.Prelude.UUID: fromASCIIBytes :: ByteString -> Maybe UUID
+ Himari.Prelude.UUID: fromByteString :: ByteString -> Maybe UUID
+ Himari.Prelude.UUID: fromLazyASCIIBytes :: ByteString -> Maybe UUID
+ Himari.Prelude.UUID: fromWords64 :: Word64 -> Word64 -> UUID
+ Himari.Prelude.UUID: nil :: UUID
+ Himari.Prelude.UUID: toASCIIBytes :: UUID -> ByteString
+ Himari.Prelude.UUID: toByteString :: UUID -> ByteString
+ Himari.Prelude.UUID: toLazyASCIIBytes :: UUID -> ByteString
+ Himari.Prelude.UUID: toWords64 :: UUID -> (Word64, Word64)
Files
- CHANGELOG.md +23/−0
- fourmolu.yaml +13/−0
- himari.cabal +7/−1
- src/Himari/Prelude.hs +3/−0
- src/Himari/Prelude/Casing.hs +10/−0
- src/Himari/Prelude/Here.hs +10/−0
- src/Himari/Prelude/UUID.hs +24/−0
CHANGELOG.md view
@@ -7,6 +7,29 @@ ## [Unreleased] +## [1.1.5.0] - 2026-06-14++### Added++- `casing` package (>=0.1.4.1) as a dependency for identifier case conversion+- `Himari.Prelude.Casing`: `Text.Casing` re-exports from the `casing` package+ (hiding the overly general `dropPrefix`, `toWords`, and `fromWords` to avoid name conflicts)+- `here` package (>=1.2.14) as a dependency for here documents and string interpolation+- `Himari.Prelude.Here`: `Data.String.Here` re-exports from the `here` package+ (hiding the overly general `i` and `template` to avoid name conflicts)+- `uuid` package (>=1.3.16.1) as a dependency for UUID values and their generation+- `Himari.Prelude.UUID`: `Data.UUID` and `Data.UUID.V4` re-exports+ from the `uuid` package+ (hiding the overly general:+ `null`,+ `toString`,+ `fromString`,+ `toText`,+ `fromText`,+ `fromWords`,+ `toWords`,+ to avoid name conflicts)+ ## [1.1.4.1] - 2026-06-13 ### Changed
fourmolu.yaml view
@@ -28,8 +28,11 @@ - module Himari.Prelude exports "unliftio" UnliftIO.IO.File # Himari.Prelude → 内部サブモジュール - module Himari.Prelude exports "himari" Himari.Prelude.Aeson+ - module Himari.Prelude exports "himari" Himari.Prelude.Casing+ - module Himari.Prelude exports "himari" Himari.Prelude.Here - module Himari.Prelude exports "himari" Himari.Prelude.Process - module Himari.Prelude exports "himari" Himari.Prelude.TypeLevel+ - module Himari.Prelude exports "himari" Himari.Prelude.UUID - module Himari.Prelude exports "himari" Himari.SafePrelude # Himari.SafePrelude → 外部モジュール@@ -103,6 +106,12 @@ - module Himari.Prelude.Aeson exports "aeson-pretty" Data.Aeson.Encode.Pretty - module Himari.Prelude.Aeson exports "deriving-aeson" Deriving.Aeson + # Himari.Prelude.Casing → 外部モジュール+ - module Himari.Prelude.Casing exports "casing" Text.Casing++ # Himari.Prelude.Here → 外部モジュール+ - module Himari.Prelude.Here exports "here" Data.String.Here+ # Himari.Prelude.Category → 外部モジュール - module Himari.Prelude.Category exports "base" Control.Category @@ -154,6 +163,10 @@ # Himari.Prelude.TypeLevel → 外部モジュール - module Himari.Prelude.TypeLevel exports "base" Data.Type.Coercion - module Himari.Prelude.TypeLevel exports "base" Data.Type.Equality++ # Himari.Prelude.UUID → 外部モジュール+ - module Himari.Prelude.UUID exports "uuid" Data.UUID+ - module Himari.Prelude.UUID exports "uuid" Data.UUID.V4 # 利用者向けの汎用的なfixity設定 # hspecは既にfourmoluによってサポートされているため不要
himari.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.12 name: himari-version: 1.1.4.1+version: 1.1.5.0 synopsis: A standard library for Haskell as an alternative to rio description: A standard library for Haskell inspired by rio.@@ -84,6 +84,7 @@ aeson-pretty >=0.8.10 && <0.9, base >=4.19.2.0 && <4.23, bytestring >=0.12.2.0 && <0.13,+ casing >=0.1.4.1 && <0.2, containers >=0.7 && <0.9, convertible >=1.1.1.1 && <1.2, data-default >=0.8.0.0 && <0.9,@@ -92,6 +93,7 @@ exceptions >=0.10.9 && <0.11, filepath >=1.5.4.0 && <1.6, hashable >=1.5.0.0 && <1.6,+ here >=1.2.14 && <1.3, lens >=5.3.5 && <6, monad-logger >=0.3.42 && <0.4, mtl >=2.3.1 && <2.4,@@ -104,6 +106,7 @@ typed-process >=0.2.13.0 && <0.3, unliftio >=0.2.25.1 && <0.3, unordered-containers >=0.2.20 && <0.3,+ uuid >=1.3.16.1 && <1.4, vector >=0.13.2.0 && <0.14, library@@ -119,16 +122,19 @@ Himari.Prelude Himari.Prelude.Aeson Himari.Prelude.Arrow+ Himari.Prelude.Casing Himari.Prelude.Catch Himari.Prelude.Category Himari.Prelude.Data Himari.Prelude.FilePath Himari.Prelude.Generics+ Himari.Prelude.Here Himari.Prelude.Monoid Himari.Prelude.Process Himari.Prelude.Safe Himari.Prelude.Type Himari.Prelude.TypeLevel+ Himari.Prelude.UUID Himari.SafePrelude test-suite himari-test
src/Himari/Prelude.hs view
@@ -7,8 +7,11 @@ import Data.Coerce as Export import Debug.Pretty.Simple as Export import Himari.Prelude.Aeson as Export+import Himari.Prelude.Casing as Export+import Himari.Prelude.Here as Export import Himari.Prelude.Process as Export import Himari.Prelude.TypeLevel as Export+import Himari.Prelude.UUID as Export import Himari.SafePrelude as Export import UnliftIO as Export import UnliftIO.Concurrent as Export
+ src/Himari/Prelude/Casing.hs view
@@ -0,0 +1,10 @@+-- | Re-exports for case conversion of identifiers.+-- "Text.Casing".+module Himari.Prelude.Casing+ ( module Export+ ) where++-- casing exposes mostly safe pure conversion functions,+-- but @dropPrefix@, @toWords@, and @fromWords@ have names too generic and likely to conflict,+-- so we hide them.+import Text.Casing as Export hiding (dropPrefix, fromWords, toWords)
+ src/Himari/Prelude/Here.hs view
@@ -0,0 +1,10 @@+-- | Re-exports for here documents and string interpolation.+-- "Data.String.Here".+module Himari.Prelude.Here+ ( module Export+ ) where++-- here exposes compile-time QuasiQuoters that are safe at runtime,+-- but @i@ and @template@ have names too generic and likely to conflict, so we hide only them.+-- The hidden quasiquoters are still usable via "Data.String.Here.Interpolated".+import Data.String.Here as Export hiding (i, template)
+ src/Himari/Prelude/UUID.hs view
@@ -0,0 +1,24 @@+-- | Re-exports for UUID values and their generation.+-- "Data.UUID".+module Himari.Prelude.UUID+ ( module Export+ ) where++-- uuid exposes mostly safe total functions returning 'Maybe',+-- but some names are too generic and likely to conflict, so we hide only them.+-- @null@, @toString@, @fromString@, @toText@, @fromText@ conflict with the @base@ and @text@+-- ecosystem, and @toWords@, @fromWords@ are likewise too generic+-- (they are also hidden from 'Himari.Prelude.Casing').+-- The hidden conversions are still usable via a qualified import of "Data.UUID".+import Data.UUID as Export hiding+ ( fromString+ , fromText+ , fromWords+ , null+ , toString+ , toText+ , toWords+ )++-- We will only re-export UUID modules that are practical.+import Data.UUID.V4 as Export