flip runReaderT binds $ buildExpr body >>= ret
where params = zip (repeat Type.double) (map fromString paramStrs)
+buildAST (Extern (Prototype nameStr params)) =
+ extern (fromString nameStr) (replicate (length params) Type.double) Type.double
+
buildAST (TopLevelExpr x) = function "__anon_expr" [] Type.double $
const $ flip runReaderT mempty $ buildExpr x >>= ret