logo
首页技术栈工具库讨论
proxy-kindness

proxy-kindness

It can be useful (especially with @PolyKinds@) to get the \"bare\" type (e.g. @Either@) of some parameterized type (e.g. @Either Char Int@). This library provides closed classes that can strip and reapply type arguments, as well as useful utility functions. Here are some examples: Force @Left 1@ to be of type @Either Float a@ using a partially-applied 'Proxy'. >>> let t = (Left 1) `asApplied` (Proxy :: Proxy (Either Float)) >>> :t t t :: Either Float a Do the same, but illustrating type application with @ap@ >>> let t0 = (Left 1) `asApplied` ((Proxy :: Proxy Either) `ap` (Proxy :: Proxy Float)) >>> :t t0 t0 :: Either Float a Force polymorphic @undefined@ to some polymorphic @Either@ type, the base type of @t@ defined above. >>> let u = undefined `asApplied` (unappliedOf t) >>> :t u u :: Either a a1
由 
bruceshi2021-01-13 收录
--
推荐
不推荐
更多信息
HACKAGE
carbal install proxy-kindness
查看
标签
根据用户添加的标签生成
暂无标签