Safe Haskell | Safe |
---|---|
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 NameMap = Map (Namespace, Name) (QualName VName) Source #
A mapping from names (which always exist in some namespace) to a unique (tagged) name.
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.