(copy_files generics/*.ml)
(copy_files generics/*.mli)
(library
  (name flow_typing_changeset)
  (wrapped false)
  (modules changeset)
  (libraries
    flow_typing_key
  )
  (preprocess (pps ppx_let))
)

(library
  (name flow_typing_key)
  (wrapped false)
  (modules key key_map)
  (libraries
    flow_common
    flow_common_utils
  )
  (preprocess (pps ppx_let))
)

(library
  (name flow_typing_scope)
  (wrapped false)
  (modules scope)
  (libraries
    flow_typing_key
    flow_typing_trust
    flow_typing_type
  )
  (preprocess (pps ppx_let))
)

(library
  (name flow_typing_trust)
  (wrapped false)
  (modules trust)
  (libraries
    flow_common_utils
  )
  (preprocess (pps ppx_let))
)

(library
  (name flow_typing_type)
  (wrapped false)
  (modules type typeUtil source_or_generated_id generic trust_constraint)
  (libraries
    flow_common
    flow_typing_changeset
    flow_typing_key
    flow_typing_polarity
    flow_typing_trust
  )
  (preprocess (pps ppx_let ppx_deriving.std))
)

(library
  (name flow_typing)
  (wrapped false)
  (modules (:standard \ changeset key key_map trust type typeUtil scope source_or_generated_id generic trust_constraint))
  (libraries
    flow_env_builder
    flow_name_resolver
    flow_file_sig
    flow_common
    flow_common_errors
    flow_common_modulename
    flow_common_monad
    flow_common_tarjan
    flow_type_sig
    flow_typing_errors
    flow_typing_polarity
    flow_typing_ty
    flow_typing_type
    worker_cancel ; hack
    xx
    build_mode
  )
  (modules_without_implementation partition )
  (preprocess (pps ppx_let))
)

(dirs (:standard __tests__))
