Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
This module provides facilities for obtaining the types of
various Futhark constructs. Typically, you will need to execute
these in a context where type information is available as a
Scope
; usually by using a monad that is an instance of
HasScope
. The information is returned as a list of ExtType
values - one for each of the values the Futhark construct returns.
Some constructs (such as subexpressions) can produce only a single
value, and their typing functions hence do not return a list.
Some representations may have more specialised facilities enabling even more information - for example, Futhark.IR.Mem exposes functionality for also obtaining information about the storage location of results.
Synopsis
- expExtType :: (HasScope lore m, TypedOp (Op lore)) => Exp lore -> m [ExtType]
- expExtTypeSize :: (Decorations lore, TypedOp (Op lore)) => Exp lore -> Int
- subExpType :: HasScope t m => SubExp -> m Type
- primOpType :: HasScope lore m => BasicOp -> m [Type]
- mapType :: SubExp -> Lambda lore -> [Type]
- module Futhark.IR.RetType
- module Futhark.IR.Prop.Scope
- class TypedOp op where
Documentation
expExtType :: (HasScope lore m, TypedOp (Op lore)) => Exp lore -> m [ExtType] Source #
The type of an expression.
expExtTypeSize :: (Decorations lore, TypedOp (Op lore)) => Exp lore -> Int Source #
The number of values returned by an expression.
mapType :: SubExp -> Lambda lore -> [Type] Source #
mapType f arrts
wraps each element in the return type of f
in
an array with size equal to the outermost dimension of the first
element of arrts
.
Return type
module Futhark.IR.RetType
Type environment
module Futhark.IR.Prop.Scope
Extensibility
class TypedOp op where Source #
Any operation must define an instance of this class, which describes the type of the operation (at the value level).