packages feed

conduit-1.2.2: 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)                                 ;\
    name = name/**/C                                     ;\
    {-# INLINE [0] name #-}                              ;\
    {-# RULES "unstream name"                             \
      name = unstream (streamConduit name/**/C name/**/S) \
      #-}

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