packages feed

copilot-core 4.3 → 4.4

raw patch · 3 files changed

+6/−3 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Copilot.Core.Type: [uTypeType] :: UType -> Type a
- Copilot.Core.Expr: [Const] :: Typeable a => Type a -> a -> Expr a
+ Copilot.Core.Expr: [Const] :: forall a. Typeable a => Type a -> a -> Expr a
- Copilot.Core.Expr: [Drop] :: Typeable a => Type a -> DropIdx -> Id -> Expr a
+ Copilot.Core.Expr: [Drop] :: forall a. Typeable a => Type a -> DropIdx -> Id -> Expr a
- Copilot.Core.Expr: [ExternVar] :: Typeable a => Type a -> Name -> Maybe [a] -> Expr a
+ Copilot.Core.Expr: [ExternVar] :: forall a. Typeable a => Type a -> Name -> Maybe [a] -> Expr a
- Copilot.Core.Expr: [Label] :: Typeable a => Type a -> String -> Expr a -> Expr a
+ Copilot.Core.Expr: [Label] :: forall a. Typeable a => Type a -> String -> Expr a -> Expr a
- Copilot.Core.Expr: [Local] :: Typeable a => Type a -> Type b -> Name -> Expr a -> Expr b -> Expr b
+ Copilot.Core.Expr: [Local] :: forall a1 a. Typeable a1 => Type a1 -> Type a -> Name -> Expr a1 -> Expr a -> Expr a
- Copilot.Core.Expr: [Op1] :: Typeable a => Op1 a b -> Expr a -> Expr b
+ Copilot.Core.Expr: [Op1] :: forall a1 a. Typeable a1 => Op1 a1 a -> Expr a1 -> Expr a
- Copilot.Core.Expr: [Op2] :: (Typeable a, Typeable b) => Op2 a b c -> Expr a -> Expr b -> Expr c
+ Copilot.Core.Expr: [Op2] :: forall a1 b a. (Typeable a1, Typeable b) => Op2 a1 b a -> Expr a1 -> Expr b -> Expr a
- Copilot.Core.Expr: [Op3] :: (Typeable a, Typeable b, Typeable c) => Op3 a b c d -> Expr a -> Expr b -> Expr c -> Expr d
+ Copilot.Core.Expr: [Op3] :: forall a1 b c a. (Typeable a1, Typeable b, Typeable c) => Op3 a1 b c a -> Expr a1 -> Expr b -> Expr c -> Expr a
- Copilot.Core.Expr: [Var] :: Typeable a => Type a -> Name -> Expr a
+ Copilot.Core.Expr: [Var] :: forall a. Typeable a => Type a -> Name -> Expr a
- Copilot.Core.Operators: [Abs] :: Num a => Type a -> Op1 a a
+ Copilot.Core.Operators: [Abs] :: forall a. Num a => Type a -> Op1 a a
- Copilot.Core.Operators: [Acos] :: Floating a => Type a -> Op1 a a
+ Copilot.Core.Operators: [Acos] :: forall a. Floating a => Type a -> Op1 a a
- Copilot.Core.Operators: [Acosh] :: Floating a => Type a -> Op1 a a
+ Copilot.Core.Operators: [Acosh] :: forall a. Floating a => Type a -> Op1 a a
- Copilot.Core.Operators: [Add] :: Num a => Type a -> Op2 a a a
+ Copilot.Core.Operators: [Add] :: forall a. Num a => Type a -> Op2 a a a
- Copilot.Core.Operators: [Asin] :: Floating a => Type a -> Op1 a a
+ Copilot.Core.Operators: [Asin] :: forall a. Floating a => Type a -> Op1 a a
- Copilot.Core.Operators: [Asinh] :: Floating a => Type a -> Op1 a a
+ Copilot.Core.Operators: [Asinh] :: forall a. Floating a => Type a -> Op1 a a
- Copilot.Core.Operators: [Atan2] :: RealFloat a => Type a -> Op2 a a a
+ Copilot.Core.Operators: [Atan2] :: forall a. RealFloat a => Type a -> Op2 a a a
- Copilot.Core.Operators: [Atan] :: Floating a => Type a -> Op1 a a
+ Copilot.Core.Operators: [Atan] :: forall a. Floating a => Type a -> Op1 a a
- Copilot.Core.Operators: [Atanh] :: Floating a => Type a -> Op1 a a
+ Copilot.Core.Operators: [Atanh] :: forall a. Floating a => Type a -> Op1 a a
- Copilot.Core.Operators: [BwAnd] :: Bits a => Type a -> Op2 a a a
+ Copilot.Core.Operators: [BwAnd] :: forall a. Bits a => Type a -> Op2 a a a
- Copilot.Core.Operators: [BwNot] :: Bits a => Type a -> Op1 a a
+ Copilot.Core.Operators: [BwNot] :: forall a. Bits a => Type a -> Op1 a a
- Copilot.Core.Operators: [BwOr] :: Bits a => Type a -> Op2 a a a
+ Copilot.Core.Operators: [BwOr] :: forall a. Bits a => Type a -> Op2 a a a
- Copilot.Core.Operators: [BwShiftL] :: (Bits a, Integral b) => Type a -> Type b -> Op2 a b a
+ Copilot.Core.Operators: [BwShiftL] :: forall a b. (Bits a, Integral b) => Type a -> Type b -> Op2 a b a
- Copilot.Core.Operators: [BwShiftR] :: (Bits a, Integral b) => Type a -> Type b -> Op2 a b a
+ Copilot.Core.Operators: [BwShiftR] :: forall a b. (Bits a, Integral b) => Type a -> Type b -> Op2 a b a
- Copilot.Core.Operators: [BwXor] :: Bits a => Type a -> Op2 a a a
+ Copilot.Core.Operators: [BwXor] :: forall a. Bits a => Type a -> Op2 a a a
- Copilot.Core.Operators: [Cast] :: (Integral a, Num b) => Type a -> Type b -> Op1 a b
+ Copilot.Core.Operators: [Cast] :: forall a b. (Integral a, Num b) => Type a -> Type b -> Op1 a b
- Copilot.Core.Operators: [Ceiling] :: RealFrac a => Type a -> Op1 a a
+ Copilot.Core.Operators: [Ceiling] :: forall a. RealFrac a => Type a -> Op1 a a
- Copilot.Core.Operators: [Cos] :: Floating a => Type a -> Op1 a a
+ Copilot.Core.Operators: [Cos] :: forall a. Floating a => Type a -> Op1 a a
- Copilot.Core.Operators: [Cosh] :: Floating a => Type a -> Op1 a a
+ Copilot.Core.Operators: [Cosh] :: forall a. Floating a => Type a -> Op1 a a
- Copilot.Core.Operators: [Div] :: Integral a => Type a -> Op2 a a a
+ Copilot.Core.Operators: [Div] :: forall a. Integral a => Type a -> Op2 a a a
- Copilot.Core.Operators: [Eq] :: Eq a => Type a -> Op2 a a Bool
+ Copilot.Core.Operators: [Eq] :: forall a. Eq a => Type a -> Op2 a a Bool
- Copilot.Core.Operators: [Exp] :: Floating a => Type a -> Op1 a a
+ Copilot.Core.Operators: [Exp] :: forall a. Floating a => Type a -> Op1 a a
- Copilot.Core.Operators: [Fdiv] :: Fractional a => Type a -> Op2 a a a
+ Copilot.Core.Operators: [Fdiv] :: forall a. Fractional a => Type a -> Op2 a a a
- Copilot.Core.Operators: [Floor] :: RealFrac a => Type a -> Op1 a a
+ Copilot.Core.Operators: [Floor] :: forall a. RealFrac a => Type a -> Op1 a a
- Copilot.Core.Operators: [Ge] :: Ord a => Type a -> Op2 a a Bool
+ Copilot.Core.Operators: [Ge] :: forall a. Ord a => Type a -> Op2 a a Bool
- Copilot.Core.Operators: [GetField] :: KnownSymbol s => Type a -> Type b -> (a -> Field s b) -> Op1 a b
+ Copilot.Core.Operators: [GetField] :: forall (s :: Symbol) a b. KnownSymbol s => Type a -> Type b -> (a -> Field s b) -> Op1 a b
- Copilot.Core.Operators: [Gt] :: Ord a => Type a -> Op2 a a Bool
+ Copilot.Core.Operators: [Gt] :: forall a. Ord a => Type a -> Op2 a a Bool
- Copilot.Core.Operators: [Index] :: Type (Array n t) -> Op2 (Array n t) Word32 t
+ Copilot.Core.Operators: [Index] :: forall (n :: Nat) c. Type (Array n c) -> Op2 (Array n c) Word32 c
- Copilot.Core.Operators: [Le] :: Ord a => Type a -> Op2 a a Bool
+ Copilot.Core.Operators: [Le] :: forall a. Ord a => Type a -> Op2 a a Bool
- Copilot.Core.Operators: [Log] :: Floating a => Type a -> Op1 a a
+ Copilot.Core.Operators: [Log] :: forall a. Floating a => Type a -> Op1 a a
- Copilot.Core.Operators: [Logb] :: Floating a => Type a -> Op2 a a a
+ Copilot.Core.Operators: [Logb] :: forall a. Floating a => Type a -> Op2 a a a
- Copilot.Core.Operators: [Lt] :: Ord a => Type a -> Op2 a a Bool
+ Copilot.Core.Operators: [Lt] :: forall a. Ord a => Type a -> Op2 a a Bool
- Copilot.Core.Operators: [Mod] :: Integral a => Type a -> Op2 a a a
+ Copilot.Core.Operators: [Mod] :: forall a. Integral a => Type a -> Op2 a a a
- Copilot.Core.Operators: [Mul] :: Num a => Type a -> Op2 a a a
+ Copilot.Core.Operators: [Mul] :: forall a. Num a => Type a -> Op2 a a a
- Copilot.Core.Operators: [Mux] :: Type a -> Op3 Bool a a a
+ Copilot.Core.Operators: [Mux] :: forall b. Type b -> Op3 Bool b b b
- Copilot.Core.Operators: [Ne] :: Eq a => Type a -> Op2 a a Bool
+ Copilot.Core.Operators: [Ne] :: forall a. Eq a => Type a -> Op2 a a Bool
- Copilot.Core.Operators: [Pow] :: Floating a => Type a -> Op2 a a a
+ Copilot.Core.Operators: [Pow] :: forall a. Floating a => Type a -> Op2 a a a
- Copilot.Core.Operators: [Recip] :: Fractional a => Type a -> Op1 a a
+ Copilot.Core.Operators: [Recip] :: forall a. Fractional a => Type a -> Op1 a a
- Copilot.Core.Operators: [Sign] :: Num a => Type a -> Op1 a a
+ Copilot.Core.Operators: [Sign] :: forall a. Num a => Type a -> Op1 a a
- Copilot.Core.Operators: [Sin] :: Floating a => Type a -> Op1 a a
+ Copilot.Core.Operators: [Sin] :: forall a. Floating a => Type a -> Op1 a a
- Copilot.Core.Operators: [Sinh] :: Floating a => Type a -> Op1 a a
+ Copilot.Core.Operators: [Sinh] :: forall a. Floating a => Type a -> Op1 a a
- Copilot.Core.Operators: [Sqrt] :: Floating a => Type a -> Op1 a a
+ Copilot.Core.Operators: [Sqrt] :: forall a. Floating a => Type a -> Op1 a a
- Copilot.Core.Operators: [Sub] :: Num a => Type a -> Op2 a a a
+ Copilot.Core.Operators: [Sub] :: forall a. Num a => Type a -> Op2 a a a
- Copilot.Core.Operators: [Tan] :: Floating a => Type a -> Op1 a a
+ Copilot.Core.Operators: [Tan] :: forall a. Floating a => Type a -> Op1 a a
- Copilot.Core.Operators: [Tanh] :: Floating a => Type a -> Op1 a a
+ Copilot.Core.Operators: [Tanh] :: forall a. Floating a => Type a -> Op1 a a
- Copilot.Core.Operators: [UpdateArray] :: Type (Array n t) -> Op3 (Array n t) Word32 t (Array n t)
+ Copilot.Core.Operators: [UpdateArray] :: forall (n :: Nat) c. Type (Array n c) -> Op3 (Array n c) Word32 c (Array n c)
- Copilot.Core.Operators: [UpdateField] :: (Typeable b, KnownSymbol s, Show b) => Type a -> Type b -> (a -> Field s b) -> Op2 a b a
+ Copilot.Core.Operators: [UpdateField] :: forall b (s :: Symbol) a. (Typeable b, KnownSymbol s, Show b) => Type a -> Type b -> (a -> Field s b) -> Op2 a b a
- Copilot.Core.Type: [Array] :: forall n t. (KnownNat n, Typed t) => Type t -> Type (Array n t)
+ Copilot.Core.Type: [Array] :: forall (n :: Nat) t. (KnownNat n, Typed t) => Type t -> Type (Array n t)
- Copilot.Core.Type: [SArray] :: Type t -> SimpleType
+ Copilot.Core.Type: [SArray] :: forall t. Type t -> SimpleType
- Copilot.Core.Type: [Struct] :: (Typed a, Struct a) => a -> Type a
+ Copilot.Core.Type: [Struct] :: forall a. (Typed a, Struct a) => a -> Type a
- Copilot.Core.Type: accessorName :: forall a s t. (Struct a, KnownSymbol s) => (a -> Field s t) -> String
+ Copilot.Core.Type: accessorName :: forall a (s :: Symbol) t. (Struct a, KnownSymbol s) => (a -> Field s t) -> String
- Copilot.Core.Type: data Type :: * -> *
+ Copilot.Core.Type: data Type a
- Copilot.Core.Type: fieldName :: forall s t. KnownSymbol s => Field s t -> String
+ Copilot.Core.Type: fieldName :: forall (s :: Symbol) t. KnownSymbol s => Field s t -> String
- Copilot.Core.Type: typeLength :: forall n t. KnownNat n => Type (Array n t) -> Int
+ Copilot.Core.Type: typeLength :: forall (n :: Nat) t. KnownNat n => Type (Array n t) -> Int
- Copilot.Core.Type: typeOfDefault :: forall a. (Typed a, Struct a, Generic a, GTypedStruct (Rep a)) => Type a
+ Copilot.Core.Type: typeOfDefault :: (Typed a, Struct a, Generic a, GTypedStruct (Rep a)) => Type a
- Copilot.Core.Type: typeSize :: forall n t. KnownNat n => Type (Array n t) -> Int
+ Copilot.Core.Type: typeSize :: forall (n :: Nat) t. KnownNat n => Type (Array n t) -> Int
- Copilot.Core.Type.Array: array :: forall n t. KnownNat n => [t] -> Array n t
+ Copilot.Core.Type.Array: array :: forall (n :: Nat) t. KnownNat n => [t] -> Array n t
- Copilot.Core.Type.Array: arrayElems :: Array n a -> [a]
+ Copilot.Core.Type.Array: arrayElems :: forall (n :: Nat) a. Array n a -> [a]
- Copilot.Core.Type.Array: arrayUpdate :: Array n a -> Int -> a -> Array n a
+ Copilot.Core.Type.Array: arrayUpdate :: forall (n :: Nat) a. Array n a -> Int -> a -> Array n a

Files

CHANGELOG view
@@ -1,3 +1,7 @@+2025-05-07+        * Version bump (4.4). (#618)+        * Remove deprecated Copilot.Core.Type.uTypeType. (#615)+ 2025-03-07         * Version bump (4.3). (#604)         * Fix typo in documentation. (#587)
copilot-core.cabal view
@@ -1,6 +1,6 @@ cabal-version:       >=1.10 name:                copilot-core-version:             4.3+version:             4.4 synopsis:            An intermediate representation for Copilot. description:   Intermediate representation for Copilot.
src/Copilot/Core/Type.hs view
@@ -289,8 +289,7 @@   simpleType (Array t) = SArray t  -- | A untyped type (no phantom type).-data UType = forall a . Typeable a => UType { uTypeType :: Type a }-{-# DEPRECATED uTypeType "This field is deprecated in Copilot 4.1. Use pattern matching instead." #-}+data UType = forall a . Typeable a => UType (Type a)  instance Eq UType where   UType ty1 == UType ty2 = typeRep ty1 == typeRep ty2