Buck: haskell_binary()
Support Ukraine. Help Provide Humanitarian Aid to Ukraine.


This is liable to change in the future.

A haskell_binary() rule represents a groups of Haskell sources and deps which build an executable.


  • name (required) #

    The short name for this build target.

  • main (defaults to None) #

    The main module serving as the entry point into the binary. If not specified, the compiler default is used.

  • srcs (defaults to []) #

    A list of Haskell sources to be built by this rule.

  • compiler_flags (defaults to []) #

    Flags to pass to the Haskell compiler when compiling this rule's sources.

  • deps (defaults to []) #

    Either haskell_library or prebuilt_haskell_library rules from which this rules sources import modules or native linkable rules exporting symbols this rules sources call into.

  • platform_deps (defaults to []) #

    Platform specific dependencies. These should be specified as a list of pairs where the first element is an un-anchored regex (in java.util.regex.Pattern syntax) against which the platform name is matched, and the second element is a list of dependencies (same format as deps) that are exported if the platform matches the regex. See deps for more information.

  • visibility (defaults to []) #

    List of build target patterns that identify the build rules that can include this rule as a dependency, for example, by listing it in their deps or exported_deps attributes. For more information, see visibility.

  • licenses (defaults to []) #

    Set of license files for this library. To get the list of license files for a given build rule and all of its dependencies, you can use buck query.

  • labels (defaults to []) #

    Set of arbitrary strings which allow you to annotate a build rule with tags that can be searched for over an entire dependency tree using buck query attrfilter().


  name = 'foo',
  srcs = [