Documentation

Strata.DL.Imperative.PureExpr

Expected interface for pure expressions that can be used to specialize the Imperative dialect.

  • Ident : Type

    Kinds of identifiers allowed in expressions. We expect identifiers to have decidable equality; see EqIdent.

  • EqIdent : DecidableEq self.Ident
  • Expr : Type

    Expressions

  • Ty : Type

    Types

  • ExprMetadata : Type

    Expression metadata type (for use in function declarations, etc.)

  • TyEnv : Type

    Typing environment, expected to contain a map of variables to their types, type substitution, etc.

  • TyContext : Type

    Typing context, expected to contain information that does not change during type checking/inference (e.g., known types and known functions.)

  • EvalEnv : Type

    Evaluation environment

Instances For
    @[reducible, inline]
    Equations
    Instances For
      @[reducible, inline]
      Equations
      Instances For

        Type Classes for Expressions #

        Boolean expressions

        Instances
          Instances
            Instances
              Instances
                Instances
                  Instances
                    Instances

                      Substitution of free variables in expressions. Used for closure capture in function declarations.

                      • substFvar : P.ExprP.IdentP.ExprP.Expr

                        Substitute a single free variable with an expression

                      Instances

                        Substitute multiple free variables with expressions

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          @[reducible, inline]

                          A function declaration for use with PureExpr - instantiation of Func for any expression system that implements the PureExpr interface.

                          Equations
                          Instances For