packages feed

conduit-combinators-0.3.0.1: fusion-macros.h

#define INLINE_RULE0(new,old)            ;\
    new = old                            ;\
    {-# INLINE [0] new #-}               ;\
    {-# RULES "inline new" new = old #-}

#define INLINE_RULE(new,vars,body)                          ;\
    new vars = body                                         ;\
    {-# INLINE [0] new #-}                                  ;\
    {-# RULES "inline new" forall vars. new vars = body #-}

#define STREAMING0(name, nameC, nameS)                   ;\
    name = nameC                                         ;\
    {-# INLINE [0] name #-}                              ;\
    {-# RULES "unstream name"                             \
      name = unstream (streamConduit nameC nameS)         \
      #-}

#define STREAMING(name, nameC, nameS, vars)                                 ;\
    name = nameC                                                            ;\
    {-# INLINE [0] name #-}                                                 ;\
    {-# RULES "unstream name" forall vars.                                   \
      name vars = unstream (streamConduit (nameC vars) (nameS vars))         \
      #-}