{-# OPTIONS_GHC -Wno-orphans #-}
module Procex.Shell.Labels () where
import Data.Functor
import Data.Proxy (Proxy (..))
import GHC.OverloadedLabels (IsLabel (..))
import GHC.TypeLits (KnownSymbol, symbolVal)
instance (a ~ String, KnownSymbol l) => IsLabel l a where
fromLabel :: a
fromLabel =
forall (n :: Symbol) (proxy :: Symbol -> *).
KnownSymbol n =>
proxy n -> String
symbolVal (forall {k} (t :: k). Proxy t
Proxy :: Proxy l) forall (f :: * -> *) a b. Functor f => f a -> (a -> b) -> f b
<&> \case
Char
'_' -> Char
'-'
Char
x -> Char
x