type-constraints

    0

    3答えて

    問題を再考した後に感謝します。 WriteDataメソッドの私の正確な例のための最良の解決策は@Dogu Arslanによって提案されましたが、問題のタイトルの問題は実際に@InBetweenと@Fabioによって解決されました。 I. WriteDataメソッドを使用した私の正確な例では、変換ロジックをWriteDataメソッドから外す方が良いですが、無関係なタイプのロジックを抽象化するには、提

    3

    1答えて

    次のことを考えてみましょう: class (a ~ b) => Equal a b instance (a ~ b) => Equal a b は、私は後でデータ型考えてみましょう: data D (c :: * -> Constraint) where D :: Proxy c -> D c を次に、このようなものが有効である: D (Proxy :: (Proxy (Equ

    2

    1答えて

    このコードは、別のメンバがfmapをOptionとChoiceでコンパイルして完全に動作するように提案していますが、警告があります。 。 「Functor」の下の最終行: この構成では、コードが一般よりも小さくなります。型変数 'bはFunctorに制約されています。 type Functor = Functor with static member FMap (Functor

    0

    1答えて

    私は、その引数が順序付けられていれば意味をなさないデータ型を持っていますが、それを動作させるには複雑で潜在的にハッキリなものに深く関わる必要があるようです(主にGADT)。 私がやっていることは(制約付きのデータ型)悪いハズケルの習慣とみなされていますか?これを回避する方法はありますか?興味のある方のため は、ここに関連するコードです: {-# LANGUAGE GADTs #-} {-# LA

    1

    1答えて

    2つの部分インターフェースを作成する必要があります。制約付きワンなど、なしその他: public class CuteInterfaceImplementationBase { public static IMyCuteInterface<T> From<T>(T t) { return new CuteInterfaceImplementation<T>(t);

    0

    1答えて

    私は、マネージド・ネイティブ・コンバータをC++/cliに実装しようとしています。私はこのためにテンプレートを使用しようとしているので、変換する約20種類があります。 問題は、値の型と参照の型を別々に扱う必要があることです。ここで が(。このコードはOKである。少なくとも、それはコンパイル)私が実装しようとしているものです: #define val_t_constraint(T) std::ena

    15

    1答えて

    GHC 8.0.1を使用してすべての実験を行いました。 この質問は、RankNTypes with type aliases confusionのフォローアップです。問題はそこに... ...このような機能の種類に型チェッカーによって拒否され {-# LANGUAGE RankNTypes #-} sleight1 :: a -> (Num a => [a]) -> a sleight1 x

    4

    2答えて

    template styleに固有のコンパイル時のダックタイピングを使用する場合、テンプレート引数が特定のシグネチャを持つ特定のメソッドを実装するという要件を強制する方法はありますか?もちろん struct ProtocolT { void g() const; void h(); } // I want the compiler to check that T conf