Copyright | (C) 2021 QBayLogic B.V. |
---|---|

License | BSD2 (see the file LICENSE) |

Maintainer | QBayLogic B.V. <devops@qbaylogic.com> |

Safe Haskell | None |

Language | Haskell2010 |

Utility class to extract free variables from data which has variables.

# Documentation

class HasFreeVars a where Source #

freeVarsOf :: a -> VarSet Source #

isClosed :: a -> Bool Source #

Something is closed if it has no free variables. This function may be replaced with a more efficient implementation.

elemFreeVars :: Var a -> a -> Bool Source #

Check if a variable is free in the given value. This function may be replaced with a more efficient implementation.

notElemFreeVars :: Var a -> a -> Bool Source #

Check if a variable is not free in the given value. This function may be replaced with a more efficient implementation.

subsetFreeVars :: VarSet -> a -> Bool Source #

Check if all variables in a set are free in the given value. This function may be replaced with a more efficient implementation.

disjointFreeVars :: VarSet -> a -> Bool Source #

Check if no variables in a set are free in the given value. This function may be replaced with a more efficient implementation.

#### Instances

HasFreeVars Type Source # | |

Defined in Clash.Core.HasFreeVars | |

HasFreeVars Term Source # | |

Defined in Clash.Core.HasFreeVars | |

(Foldable f, HasFreeVars a) => HasFreeVars (f a) Source # | |

Defined in Clash.Core.HasFreeVars |