packages feed

liquidhaskell-0.7.0.0: tests/pos/ClassKind.hs

{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE PolyKinds #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE StandaloneDeriving #-}

-- | Implements key mechanisms of Awake.Data.Struct without
-- any additional bounds checking beyond what is documented.
module ClassKind where

import           Data.Proxy
class Member a where

  {-@ class Member a where
       sizeOfMember :: Proxy a -> Nat 
    @-}

  sizeOfMember :: Proxy a -> Int