<div dir="ltr"><div><div><div>Hello. I'm new with Haskell and FP, so i wanted someone to give comments on the package i've made [1]. It's, actually, my first attempt to create something more or less real, so any feedback would be welcome.<br>

<br></div>I've used Free monad to create EDSL that allows writing LLVM IR code. Afterwards it could be converted into pure AST structure provided by llvm-general-pure[2] package. Currently, it supports almost every instruction, but i haven't yet come up with sensible defaults for them.<br>

<br></div>Another thing that bugs me is the ability to transform the code in syb way. I want take  a user-supplied function that would pattern-match instruction and produce another code block and apply this function everywhere in the code, but still can't get my head around it. I've come up with extF function, that unlike extM, would resort to wrap instead of return, but that's all i've managed to do.<br>

<br></div>Thanks in advance.<br><br>[1] <a href="https://bitbucket.org/arrowdodger/llvm-general-edsl">https://bitbucket.org/arrowdodger/llvm-general-edsl</a><br>[2] <a href="http://hackage.haskell.org/package/llvm-general-pure">http://hackage.haskell.org/package/llvm-general-pure</a><br>

<div><div><div><div><div><div id="dc_vk_code" style></div></div></div></div></div></div></div>