Copyright | (c) gspia 2023- |
---|---|
License | BSD |
Maintainer | gspia |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Fcf.Data.Reflect
Helpers to get results from type-level computations into the fromType-level.
Documentation
class KnownNats (ns :: [Nat]) where Source #
Deprecated: Replaced with KnownVal
Reflect a list of Nats
Note that you may also use the KnownVal methods given below.
This method is taken from https://hackage.haskell.org/package/numhask-array-0.10.1/docs/src/NumHask.Array.Shape.html#natVals
Example
:{
afun :: forall n. (n ~ '[1,2,3,4]) => [Int] afun = natVals @n Proxy :}
afun
- 1,2,3,4
class KnownVal val kind where Source #
Instances
(KnownNat n, Num a) => KnownVal a (n :: Nat) Source # | |
Defined in Fcf.Data.Reflect | |
KnownVal () '() Source # | |
Defined in Fcf.Data.Reflect | |
KnownVal Bool 'False Source # | |
KnownVal Bool 'True Source # | |
(IsString str, KnownSymbol s) => KnownVal str (s :: Symbol) Source # | |
Defined in Fcf.Data.Reflect | |
(IsString str, Typeable typ) => KnownVal str (typ :: Type) Source # | |
Defined in Fcf.Data.Reflect | |
(IsString str, KnownSymbol sym) => KnownVal str ('Text sym :: ErrorMessage) Source # | |
(IsString str, KnownSymbol sym) => KnownVal str ('Text sym :: Text) Source # | Text instance. Exampleimport qualified Data.Text as Txt :{ afun :: forall r. (r ~ 'FTxt.Text "hmm") => Txt.Text afun = fromType (Proxy @r) :} afun "hmm" |
(IsString str, KnownVal str err1, KnownVal str err2, Semigroup str) => KnownVal str (err1 :$$: err2 :: ErrorMessage) Source # | |
(IsString str, KnownVal str err1, KnownVal str err2, Semigroup str) => KnownVal str (err1 :<>: err2 :: ErrorMessage) Source # | |
(IsString str, Typeable typ) => KnownVal str ('ShowType typ :: ErrorMessage) Source # | |
KnownVal [(Int, val)] pairs => KnownVal (IntMap val) (pairs :: [(Nat, val')]) Source # | |
(Ord val, KnownVal [val] kind) => KnownVal (Set val) (kind :: [kind']) Source # | |
KnownVal (Maybe a1) ('Nothing :: Maybe a) Source # | |
KnownVal [a] ('[] :: [k]) Source # | |
Defined in Fcf.Data.Reflect | |
KnownVal [(Int, val)] pairs => KnownVal (IntMap val) ('NatMap pairs :: NatMap v) Source # | |
(Ord val, KnownVal [val] kind) => KnownVal (Set val) ('Set kind :: Set a) Source # | |
KnownVal a2 a3 => KnownVal (Maybe a2) ('Just a3 :: Maybe a1) Source # | |
(KnownVal val k, KnownVal (Forest val) trees) => KnownVal (Tree val) ('Node k trees :: Tree a) Source # | |
(KnownVal val x, KnownVal [val] xs) => KnownVal [val] (x ': xs :: [a]) Source # | |
Defined in Fcf.Data.Reflect | |
(Ord key, KnownVal [(key, val)] pairs) => KnownVal (Map key val) (pairs :: [(key', val')]) Source # | |
KnownVal b2 b3 => KnownVal (Either a1 b2) ('Right b3 :: Either a b1) Source # | |
KnownVal a2 a3 => KnownVal (Either a2 b1) ('Left a3 :: Either a1 b) Source # | |
(Ord key, KnownVal [(key, val)] pairs) => KnownVal (Map key val) ('MapC pairs :: MapC k v) Source # | |
(KnownVal a1 a, KnownVal b1 b) => KnownVal (a1, b1) ('(a, b) :: (k1, k2)) Source # | |
Defined in Fcf.Data.Reflect | |
(KnownVal a1 a, KnownVal b1 b, KnownVal c1 c) => KnownVal (a1, b1, c1) ('(a, b, c) :: (k1, k2, k3)) Source # | |
Defined in Fcf.Data.Reflect | |
(KnownVal a1 a, KnownVal b1 b, KnownVal c1 c, KnownVal d1 d) => KnownVal (a1, b1, c1, d1) ('(a, b, c, d) :: (k1, k2, k3, k4)) Source # | |
Defined in Fcf.Data.Reflect | |
(KnownVal a1 a, KnownVal b1 b, KnownVal c1 c, KnownVal d1 d, KnownVal e1 e) => KnownVal (a1, b1, c1, d1, e1) ('(a, b, c, d, e) :: (k1, k2, k3, k4, k5)) Source # | |
Defined in Fcf.Data.Reflect |