这个问题是关于功能alloca
和malloc
从Foreign.Marshal.Alloc
和newForeignPtr
和mallocForeignPtr
从Foreign.ForeignPtr
.分配的内存在哪里,垃圾收集器如何处理它?
你认为可以使用免费代理变压器吗?就像是
data FreePT f p a' a b' b m r = ....
instance (Proxy p,Functor f) => Proxy (FreePT f p) where
....
instance (Functor f) => ProxyTrans (FreePT f) where
....
Run Code Online (Sandbox Code Playgroud)
这不仅仅是好奇心我实际上会觉得这很有用.
在Control.Lens.Traversal
该beside
函数遍历的两个部分Bitraversable
.给出的例子是
>>> ("hello",["world","!!!"])^..beside id traverse
["hello","world","!!!"]
Run Code Online (Sandbox Code Playgroud)
我可以编写一个更明确的版本beside
(让我们称之为bothParts
)而不是Bitraversable
约束需要两个Traversal
s吗?我想它可以像这样使用:
>>> ("hello",["world","!!!"])^..bothParts _1 _2 id traverse
["hello","world","!!!"]
Run Code Online (Sandbox Code Playgroud)
这已经存在了吗?这样做是否太安全了?谢谢!
编辑:
或许类似于:
>>> ("hello",["world","!!!"])^..bothParts _1 (_2.traverse)
["hello","world","!!!"]
Run Code Online (Sandbox Code Playgroud)