Safe Haskell | None |
---|---|
Language | Haskell2010 |
Definitions of various semantic objects (*not* the Futhark semantics themselves).
Synopsis
- data ImportName
- mkInitialImport :: FilePath -> ImportName
- mkImportFrom :: ImportName -> String -> SrcLoc -> ImportName
- includeToFilePath :: ImportName -> FilePath
- includeToString :: ImportName -> String
- data FileModule = FileModule {}
- type Imports = [(String, FileModule)]
- data Namespace
- data Env = Env {}
- type TySet = Map (QualName VName) Liftedness
- data FunSig = FunSig {}
- type NameMap = Map (Namespace, Name) (QualName VName)
- data BoundV = BoundV [TypeParam] StructType
- data Mod
- data TypeBinding = TypeAbbr Liftedness [TypeParam] StructType
- data MTy = MTy {}
Documentation
data ImportName Source #
Canonical reference to a Futhark code file. Does not include the
.fut
extension. This is most often a path relative to the
current working directory of the compiler.
Instances
Eq ImportName Source # | |
Defined in Language.Futhark.Semantic (==) :: ImportName -> ImportName -> Bool # (/=) :: ImportName -> ImportName -> Bool # | |
Ord ImportName Source # | |
Defined in Language.Futhark.Semantic compare :: ImportName -> ImportName -> Ordering # (<) :: ImportName -> ImportName -> Bool # (<=) :: ImportName -> ImportName -> Bool # (>) :: ImportName -> ImportName -> Bool # (>=) :: ImportName -> ImportName -> Bool # max :: ImportName -> ImportName -> ImportName # min :: ImportName -> ImportName -> ImportName # | |
Show ImportName Source # | |
Defined in Language.Futhark.Semantic showsPrec :: Int -> ImportName -> ShowS # show :: ImportName -> String # showList :: [ImportName] -> ShowS # | |
Located ImportName Source # | |
Defined in Language.Futhark.Semantic locOf :: ImportName -> Loc # locOfList :: [ImportName] -> Loc # |
mkInitialImport :: FilePath -> ImportName Source #
Create an import name immediately from a file path specified by the user.
mkImportFrom :: ImportName -> String -> SrcLoc -> ImportName Source #
We resolve '..' paths here and assume that no shenanigans are going on with symbolic links. If there is, too bad. Don't do that.
includeToFilePath :: ImportName -> FilePath Source #
Create a .fut
file corresponding to an ImportName
.
includeToString :: ImportName -> String Source #
Produce a human-readable canonicalized string from an
ImportName
.
data FileModule Source #
The result of type checking some file. Can be passed to further invocations of the type checker.
type Imports = [(String, FileModule)] Source #
A mapping from import names to imports. The ordering is significant.
The space inhabited by a name.
Instances
Enum Namespace Source # | |
Defined in Language.Futhark.Semantic succ :: Namespace -> Namespace # pred :: Namespace -> Namespace # fromEnum :: Namespace -> Int # enumFrom :: Namespace -> [Namespace] # enumFromThen :: Namespace -> Namespace -> [Namespace] # enumFromTo :: Namespace -> Namespace -> [Namespace] # enumFromThenTo :: Namespace -> Namespace -> Namespace -> [Namespace] # | |
Eq Namespace Source # | |
Ord Namespace Source # | |
Defined in Language.Futhark.Semantic | |
Show Namespace Source # | |
Pretty Namespace Source # | |
Modules produces environment with this representation.
Env | |
|
type TySet = Map (QualName VName) Liftedness Source #
A mapping of abstract types to their liftedness.
A parametric functor consists of a set of abstract types, the environment of its parameter, and the resulting module type.
Type parameters, list of parameter types (optinally named), and return type. The type parameters are in scope in both parameter types and the return type. Non-functional values have only a return type.
Representation of a module, which is either a plain environment, or a parametric module ("functor" in SML).
data TypeBinding Source #
A binding from a name to its definition as a type.
Instances
Eq TypeBinding Source # | |
Defined in Language.Futhark.Semantic (==) :: TypeBinding -> TypeBinding -> Bool # (/=) :: TypeBinding -> TypeBinding -> Bool # | |
Show TypeBinding Source # | |
Defined in Language.Futhark.Semantic showsPrec :: Int -> TypeBinding -> ShowS # show :: TypeBinding -> String # showList :: [TypeBinding] -> ShowS # |
Representation of a module type.