Haskell でいくつかの算術演算子を再定義して、拡張性と汎用性を高めたいと考えています。
例えば
class Mul a b c | a b -> c where
(*) :: a -> b -> c
これと組み合わせて動作するようです
import Prelude hiding ((*))
標準*演算子を非表示にします。もちろん、通常の乗算もすべて機能する必要があるため、次のように定義する必要があります。
instance (Num t) => Mul t t t where
(*) = ??
*ここで元の演算子にアクセスするにはどうすればよいですか(機能しません)、 Monomopism Restrictionと競合しないPrelude.(*)ようにインスタンス タイプを定義するにはどうすればよいですか?1 * 1
編集-
import qualified
良いヒントです、ありがとう。
しかし残念ながら、これにより、すべての標準メソッドを明示的にスコープに入れる必要がありました。特定のバインディングを再定義して、残りを変更しないようにしたいだけです。
では、両方の組み合わせはありますか?何かのようなもの
import Prelude qualified ((*))