clash-lib-1.8.4: Clash: a functional hardware description language - As a library

Copyright | (C) 2012-2016 University of Twente 2016-2017 Myrtle Software Ltd 2017-2018 Google Inc. 2021 QBayLogic B.V.
License | BSD2 (see the file LICENSE)
Maintainer | QBayLogic B.V. <devops@qbaylogic.com>
Safe Haskell | None
Language | Haskell2010

Clash.Normalize.Transformations.SeparateArgs

Description

The separating arguments transformation

Synopsis

- separateArguments :: HasCallStack => NormRewrite

# Documentation

separateArguments :: HasCallStack => NormRewrite Source #

Split apart (global) function arguments that contain types that we want to separate off, e.g. Clocks. Works on both the definition side (i.e. the lambda), and the call site (i.e. the application of the global variable). e.g. turns

    f :: (Clock System, Reset System) -> Signal System Int

into

    f :: Clock System -> Reset System -> Signal System Int